当前位置: 首页 > news >正文

媒体资讯视频数据采集-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.lryc.cn/news/418627.html

相关文章:

  • MySQL 8
  • Android进阶之路 - app后台切回前台触发超时保护退出登录
  • 论文阅读笔记:Semi-supervised Semantic Segmentation with Error Localization Network
  • Flink开发语言选择:Java vs Scala,哪种更适合你的项目?
  • 轻空间成功完成陕西渭南砂石料场气膜仓项目
  • pikachu~文件下载漏洞
  • MTK Android12 关机界面全屏展示
  • 初识云计算
  • golang sync.Cond实现读写锁
  • 从通用到定制:营销Agent如何跨越数据鸿沟,实现对话SOP的个性化飞跃
  • 设计模式-单例设计模式
  • 23_windows 使用sqlmap、kali使用sqlmap,SQL注入、sqlmap自动注入
  • WPF学习(12)-Image图像控件+GroupBox标题容器控件
  • 【Linux】基础IO认知
  • 7. Kubernetes核心资源之Service服务实战
  • 《向量数据库指南》——企业采用非结构化数据的场景及其深远影响
  • Linux内核编程(十二)热插拔
  • 七夕警示:探索社工库与网络搜索下的个人隐私泄露与保护策略
  • Redis-哨兵监控(sentinel)
  • RISC-V反汇编调试记录分享
  • python上下文管理器 with的使用
  • 24/8/8算法笔记 决策树构建鸢尾花
  • 数据库扩展新篇章:主流分库分表中间件全解析
  • python看图片猜价格游戏,frame 和PhotoImage的使用
  • 未来展望:等保测评在网络安全领域的持续创新与发展
  • 构建深度学习驱动的多目标检测系统:YOLO模型及应用
  • 算法刷题笔记 染色法判定二分图(染色法例题 C++实现)
  • 在Ubuntu上安装OpenBLAS和Eigen
  • Vue前端面试基础(一)
  • 使用Gitlab实现monorepo多项目CICD