媒体资讯视频数据采集-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 <视频网址>
  2. 指定下载格式

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

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

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

    复制代码
    yt-dlp <播放列表网址>
  4. 设置输出文件名

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

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

高级用法

  1. 代理设置

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

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

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

    复制代码
    yt-dlp --no-progress <视频网址>
  3. 下载字幕

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

    复制代码
    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的情况下,只能小量的采集数据;不然会报错

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

``

python 复制代码
import yt_dlp

def download_youtube_video(url, output_path):
    """
    下载youtube视频
    :param url: 视频url
    :param output_path: 视频保存路径
    :return:
    """
    format = None
    if '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}')
相关推荐
喵手9 小时前
Python爬虫实战:针对Python官网,精准提取出每一个历史版本的版本号、发布日期以及对应的文档/详情页链接等信息,并最终清洗为标准化的CSV文件!
爬虫·python·爬虫实战·零基础python爬虫教学·python官方数据采集·采集历史版本版本号等信息·导出csv文件
databook9 小时前
像搭积木一样思考:数据科学中的“自下而上”之道
python·数据挖掘·数据分析
luoluoal9 小时前
基于python的医疗问句中的实体识别算法的研究(源码+文档)
python·mysql·django·毕业设计·源码
啊阿狸不会拉杆9 小时前
《机器学习导论》第 9 章-决策树
人工智能·python·算法·决策树·机器学习·数据挖掘·剪枝
喵手9 小时前
Python爬虫实战:城市停车收费标准自动化采集系统 - 让停车费透明化的技术实践(附CSV导出 + SQLite持久化存储)!
爬虫·python·爬虫实战·零基础python爬虫教学·城市停车收费标准·采集城市停车收费数据·采集停车数据csv文件导出
无水先生9 小时前
python函数的参数管理(01)*args和**kwargs
开发语言·python
py小王子9 小时前
dy评论数据爬取实战:基于DrissionPage的自动化采集方案
大数据·开发语言·python·毕业设计
Pyeako9 小时前
opencv计算机视觉--LBPH&EigenFace&FisherFace人脸识别
人工智能·python·opencv·计算机视觉·lbph·eigenface·fisherface
小陶的学习笔记9 小时前
python~基础
开发语言·python·学习
多恩Stone9 小时前
【3D AICG 系列-9】Trellis2 推理流程图超详细介绍
人工智能·python·算法·3d·aigc·流程图