媒体资讯视频数据采集-yt-dlp-python实际使用-下载视频

对于视频二创等一些业务场景,可能要采集youtube等的相关媒体视频资源,使用[yt-dlp](https://github.com/yt-dlp/yt-dlp)是一个不错的选择,提供的命令比较丰富,场景比较全面

yt-dlp 是一个用 Python 编写的命令行工具,主要用于从视频网站下载视频和音频。它是 youtube-dl 的一个分支,提供了一些额外的功能和增强。翻译后的详细的说明: GitHub上的 yt-dlp 的 GitHub 页。

下面是一些简易的使用说明(需要有python环境,可以使用conda的python环境)

安装 yt-dlp

你可以通过 pip 安装 yt-dlp

pip install -U yt-dlp

或者,你也可以直接从 GitHub 克隆最新版本:

git clone https://github.com/yt-dlp/yt-dlp.git
cd yt-dlp
python -m pip install .

基本用法

  1. 下载视频
   yt-dlp <视频网址>

例如:

   yt-dlp https://www.youtube.com/watch?v=dQw4w9WgXcQ
  1. 下载音频

    如果你只想下载音频,可以使用 -x 选项:

   yt-dlp -x --audio-format mp3 <视频网址>
  1. 指定下载格式

    默认情况下,yt-dlp 会选择最佳视频/音频格式,但你可以手动指定:

   yt-dlp -f "bestvideo[height<=720]+bestaudio" <视频网址>
  1. 下载整个播放列表

    如果视频网址是一个播放列表,你可以直接下载整个列表:

   yt-dlp <播放列表网址>
  1. 设置输出文件名

    你可以使用 -o 选项来指定下载的文件名格式:

   yt-dlp -o "%(title)s.%(ext)s" <视频网址>

高级用法

  1. 代理设置

    如果你需要使用代理,可以使用 --proxy 选项:

   yt-dlp --proxy "socks5://user:pass@host:port" <视频网址>
  1. 下载进度条

    默认情况下,yt-dlp 会显示下载进度。如果你希望以简洁模式下载,使用 --no-progress

   yt-dlp --no-progress <视频网址>
  1. 下载字幕

    如果视频有字幕,你可以选择下载它们:

   yt-dlp --write-sub --sub-lang "zh-Hans" <视频网址>

帮助和选项

要查看所有可用选项和帮助信息,可以使用:

yt-dlp --help

python中使用

pip安装yt-dlp

pip install -U yt-dlp

如果是Linux服务器上使用yt-dlp,需要有FFmpeg的支持

Ubuntu 上

使用包管理器 APT

  1. 更新软件包列表:

    sudo apt update

  2. 安装 FFmpeg:

    sudo apt install ffmpeg

    安装完成后,您可以在终端中输入 ffmpeg -version 来验证安装是否成功。

本地能翻qian的情况下,只能小量的采集数据;不然会报错

在这里插入图片描述

如果是大批量的采集某个网站的视频数据,最好是部署到服务器上,并且使用代理, 没有代理,采集量大了会报错提示(海外代理能只能使用海外服务器

``

import yt_dlpdef download_youtube_video(url, output_path):"""下载youtube视频:param url: 视频url:param output_path: 视频保存路径:return:"""format = Noneif 'shorts' in url:# 采集横版视频format = 'bestvideo[width=720]+bestaudio/best[width=720]'else:# 采集竖版视频format = 'bestvideo[height=720]+bestaudio/best[height=720]'options = {'format': format,'merge_output_format': 'mp4','outtmpl': output_path,# 使用代理(大批量下载需要使用代理-静态代理IP就行,动态的不太靠谱,静态代理IP失效了就换一批)# 'proxy': ''}try:with yt_dlp.YoutubeDL(options) as ydl:ydl.download([url])except yt_dlp.utils.DownloadError as e:print(f'下载失败-{e}')if __name__ == '__main__':# 竖版视频video_url = "https://www.youtube.com/shorts/cjTvuE9yCMo"print(f'获取竖版视频-{video_url}')output_path = "cjTvuE9yCMo.mp4"download_youtube_video(video_url, output_path)# 横版视频video_url = "https://www.youtube.com/watch?v=wojgbTK4_jU"output_path = "wojgbTK4_jU.mp4"download_youtube_video(video_url, output_path)print(f'获取竖版视频-{video_url}')

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/394939.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux部署python3.0版本——及基本操作

&#xff08;一&#xff09;部署环境 首先查看列表&#xff0c;找到python3.0的包 yum list installed|grep python 如果没有&#xff0c;是因为yum源的问题&#xff0c;可部署阿里云镜像然后下载epel包&#xff0c;这里的内容可参考前面的阿里云镜像部署 然后进行下载 yum…

React 用户点击某个元素后只执行一次操作

React开发中经常会遇到需求&#xff1a;用户点击某个元素后只执行一次特定操作。比如&#xff0c;用户点击按钮后弹出提示框&#xff0c;但希望再次点击按钮不再触发提示框。针对这种需求&#xff0c;可以封装一个自定义Hooks来实现只允许点击一次的功能。 import {useCallbac…

Mysql,用户名重复,无法调用问题

问题描述&#xff1a; 我电脑的数据库用户名是&#xff0c;root。 因为经常需要帮别人封装程序&#xff0c;所以需要在我本机跑通别人的程序。有的程序里面也涉及到数据库&#xff0c;用户名也是&#xff0c;root&#xff0c;但是密码与我本机的不同。 之前我会修改我用户名…

MySQL —— 表的设计

表的设计 在设计表之前&#xff0c;我们需要从需求中获得实体&#xff08;实体就是一张张表&#xff09;&#xff0c;实体的属性就是表中的字段&#xff08;列&#xff09;&#xff0c;然后确定实体与实体之间的关系&#xff0c;最后使用 SQL 语句去创建具体的表 在设计表的时…

Unity Console 窗口输出对齐

起因&#xff1a;做了个工具在console窗口罗列一些信息&#xff0c;基本结构是 [ 文件名 &#xff1a;行号 ]&#xff0c;因为文件&#xff0c;行号长度不一&#xff0c;想要做到如下效果。 初步尝试&#xff0c;用以下方法&#xff1a; string format "{0,-10} …

python自动化笔记:配置文件.ini及yml文件

目录 一、.ini配置文件1.1、ini编写格式1.2、读取.ini配置文件的数据1.3、编辑&#xff1a;写入和删除&#xff08;了解即可&#xff09; 二、yaml文件2.1、yaml编写语法规则2.2、yaml三种数据结构2.3、yaml文件的读取和写入 一、.ini配置文件 后缀名.ini 用于存储项目全局配置…

[独家原创] CPO-RBF多特征分类预测 优化宽度+中心值+连接权值 (多输入单输出)Matlab代码

[独家原创] CPO-RBF多特征分类预测 优化宽度中心值连接权值 &#xff08;多输入单输出&#xff09;Matlab代码 目录 [独家原创] CPO-RBF多特征分类预测 优化宽度中心值连接权值 &#xff08;多输入单输出&#xff09;Matlab代码效果一览基本介绍程序设计参考资料 效果一览 基本…

java学习day016

API 1.Number 数字格式化 : # 任意数字&#xff0c;0-9任意单个数字 , 千分位 . 小数点 0 补位 //四位小数 DecimalFormat df new DecimalFormat("###,###.####"); System.out.println(df.format(1234567.312));//1,234,567.312 //四位小数,不够补0 df new Deci…

前缀和处理数组区间之和问题

1.什么是区间和问题 “区间和问题”通常指的是涉及计算或处理数组或数列某个子区间&#xff08;即一段连续元素&#xff09;的总和的类型问题。这类问题可能有多种变体和不同的复杂度&#xff0c;但基本思想都是在给定的区间内快速计算总和或处理与区间和相关的操作。 2.例题…

常见的框架漏洞

ThinkPHP 首先我们打开一个环境 然后进行远程命令执行代码 然后进行远程代码执行 ?sindex/think\app/invokefunction&functioncall_user_func_array&vars[0]phpinfo&vars[1][]-1 在网页中输出phpinfo getshell ?sindex/think\app/invokefunction&function…

c语言基础知识

ASCII码 字符A~Z的ASCII码值从65~90 • 字符a~z的ASCII码值从97~122 • 对应的⼤⼩写字符(a和A)的ASCII码值的差值是32 • 数字字符0~9的ASCII码值从48~57 • 换⾏ \n 的ASCII值是&#xff1a;10 • 在这些字符中ASCII码值从0~31这32个字符是不可打印字符&#xff0c;⽆法打印在…

sql实战cmseasy

环境搭建 这里我们用phpstady搭建 版本是cmseasy5.5 未授权访问 这里ip的方法获取客户端的ip 这里的意思是当你的server ip等于 客户端ip并且get传参 get(ishtml)1的情况下他会直接return 他就不会检查后面是不是admin&#xff0c;而他这个IP是从X_FORWARDED_FOR获取&…

Spring Boot 3.x Rest API统一异常处理最佳实践

上一篇&#xff1a;Spring Boot 3.x Rest API最佳实践之统一响应结构 在Spring MVC应用中&#xff0c;要对web表示层所抛出的异常进行捕获处理有多种方式&#xff0c;具体的可参考著名国外Spring技术实战网站baeldung上的相关话题。Spring Boot对Spring MVC应用中抛出的异常以…

RNN循环网络层

文章目录 1、简介2、RNN 网络原理3、PyTorch RNN 层的使用3.1、RNN送入单个数据3.2、RNN层送入批量数据 4、RNN三个维度4.1、解释4.2、输入数据的组织4.3、示例4.4、为什么需要这种格式&#xff1f;4.5、小结 &#x1f343;作者介绍&#xff1a;双非本科大三网络工程专业在读&a…

苹果手机数据被抹除还能恢复吗?这两个方法强烈推荐

苹果手机数据被抹除还能恢复吗&#xff1f;我们在使用苹果手机时&#xff0c;有时由于误操作、系统故障或升级失败等原因&#xff0c;导致手机照片、备忘录、视频、联系人等数据被意外抹除。 面对这类情况&#xff0c;我们应该怎么办&#xff1f;下面牛小编给大家的分享2个方法…

记录使用FlinkSql进行实时工作流开发

使用FlinkSql进行实时工作流开发 引言Flink SQL实战常用的Connector1. MySQL-CDC 连接器配置2. Kafka 连接器配置3. JDBC 连接器配置4. RabbitMQ 连接器配置5. REST Lookup 连接器配置6. HDFS 连接器配置 FlinkSql数据类型1. 基本数据类型2. 字符串数据类型3. 日期和时间数据类…

论文解读,神经网络全梯度表示《Full-Gradient Representation for Neural Network Visualization》

导语 这篇论文介绍了一种新的工具&#xff0c;称为全梯度&#xff0c;用于解释神经网络的响应。这个全梯度的概念将神经网络的响应分解为两个部分&#xff1a;输入灵敏度和每个神经元的灵敏度分量。 输入灵敏度&#xff1a;输入灵敏度指的是对于神经网络输出的影响程度。它反…

Python试讲

Python试讲 导语Python简介Python及其特点如何使用Python Python与计算计算变量 导语 本次试讲内容如下&#xff1a;Python简介与使用&#xff0c;Python与基本运算 辅助教材为 《趣学Python编程》和《Python编程从入门到实践》 Python简介 Python是目前入门最简单最好学的…

NSSCTF练习记录:[SWPUCTF 2021 新生赛]jicao

题目&#xff1a; 这段PHP代码的意思是&#xff1a; 对index.php文件进行语法高亮显示&#xff0c;插入flag.php文件&#xff0c;变量id的值为POST传递的值&#xff0c;变量json的值为GET传递的json类型的值。当id值为wllmNB且json中含有键为“x”&#xff0c;值为“wllm”的时…

数据结构:栈与队列OJ题

目录 前言 一、用栈实现队列 二、用队列实现栈 三、括号匹配问题 前言 前面讲了栈和队列的基础知识&#xff0c;今天来巩固一下加深理解&#xff0c;这里说明一下&#xff0c;因为现在都是在用C语言写&#xff0c;这些OJ题里都要用到前面实现栈和队列的代码&#xff0c;每道题…