之前用xx下载视频经常遇到网络报错,于是使用 yt-dlp 这个新的yt下载工具。
安装教程
安装方法1:pip安装
可以使用pip安装yt-dlp,然后可以全局使用
使用pip快速安装如下:
python3 -m pip install -U yt-dlp
不安装其他依赖的安装命令如下:
python3 -m pip install --no-deps -U yt-dlp
更新yt-dlp的命令如下:
python3 -m pip install -U yt-dlp
安装方法2:windows exe软件
把yt-dlp.exe所在的文件夹添加到环境变量的path中即可,可参考该链接
使用yt-dlp
使用yt-dlp下载yt视频的前提是能访问外网
1. 快速下载
默认格式,高于720P的格式一般是 webm 格式
命令:yt-dlp url
yt-dlp https://www.youtube.com/watch?v=----meyKR48
2. 保存为指定文件格式
命令:yt-dlp --merge-output-format 格式 url
支持的格式为:avi, flv, mkv, mov, mp4, webm
yt-dlp --merge-output-format mp4 https://www.youtube.com/watch?v=----meyKR48
3. 用-F参数查看有哪些分辨率
yt-dlp -F https://www.youtube.com/watch?v=----meyKR48
下载上图中指定id的视频(包含音频)
yt-dlp -f247 https://youtu.be/sKrT6mBrosc
4.下载最佳视频和音频并转为mp4
yt-dlp -f ‘bv[ext=mp4]+ba[ext=m4a]’ –embed-metadata –merge-output-format mp4 https://www.youtube.com/watch?v=----meyKR48
5.指定文件名下载(用-o参数)
默认下载的文件格式如下
-o 自定义文件名.%(ext)s
其中%(ext)s表示使用默认或者用户提前制定好的文件名后缀
yt-dlp --merge-output-format mp4 -o ----meyKR48.%(ext)s https://www.youtube.com/watch?v=----meyKR48
6.指定路径下载(上一步的进阶版)
-o “自定义文件名.%(ext)s”
yt-dlp --merge-output-format mp4 -o "E:/you_save_dir/filename.mp4" https://www.youtube.com/watch?v=----meyKR48
工程实现如下,其中yt_video_ids
包含youtube视频的id号,subprocess是执行命令行的模块
import os
import subprocess
for video_id in tqdm(yt_video_ids):
# 这里使用yt-dlp下载youtube视频并保存为mp4格式,路径为'./workdir/download_videos/*.mp4'
video_temp_path = os.path.join(self.workdir, 'download_videos', video_id)+'.mp4'
video_temp_url = f'https://www.youtube.com/watch?v={video_id}'
cmd_str = f'yt-dlp --merge-output-format mp4 -o \"{video_temp_path}\" {video_temp_url}'
print(cmd_str)
subprocess.run(cmd_str, encoding="utf-8", shell=True) # 在命令行中执行yt-dlp