YouTube播放列表下载工具
概述
youtube_playlist_downloader.py
是一个用于下载YouTube播放列表视频的Python脚本。该工具基于yt-dlp
库,支持自动安装依赖、检测已下载视频、选择性下载新视频等功能。
功能特点
- 自动检测并安装所需的
yt-dlp
库 - 支持下载整个YouTube播放列表
- 可选择只下载新视频或重新下载所有视频
- 自动记录已下载视频,避免重复下载
- 实时显示下载进度和详细信息
- 支持自定义下载目录
- 下载完成后提供下载统计信息
使用方法
基本用法
bash
python3 /Users/ka/python/youtube_playlist_downloader.py
这将使用默认参数下载示例播放列表中的新视频(未下载过的视频)。
命令行参数
脚本支持以下命令行参数:
-
--url
: 指定要下载的YouTube播放列表链接bashpython3 /Users/ka/python/youtube_playlist_downloader.py --url "https://www.youtube.com/playlist?list=YOUR_PLAYLIST_ID"
-
--output
: 指定下载文件的保存目录bashpython3 /Users/ka/python/youtube_playlist_downloader.py --output "/Users/ka/Downloads/youtube_videos"
-
--all
: 下载所有视频,包括已下载过的视频bashpython3 /Users/ka/python/youtube_playlist_downloader.py --all
输出文件结构
下载的视频将按照以下结构保存:
css
[output_dir]/[播放列表名称]/[序号]-[视频标题].[扩展名]
例如:
downloads/编程教程/01-Python基础入门.mp4
downloads/编程教程/02-Python进阶技巧.mp4
技术实现
依赖检测与安装
脚本会自动检测是否安装了yt-dlp
库,如果未安装,会尝试使用pip自动安装。
视频下载记录
脚本使用--download-archive
参数记录已下载的视频ID,保存在downloaded_videos.txt
文件中。当再次运行脚本时,会自动跳过已下载的视频,只下载新视频。
视频格式选择
默认使用best
格式下载视频,这通常会选择最佳质量的视频和音频组合。
故障排除
-
无法安装yt-dlp:
- 检查网络连接
- 尝试手动安装:
pip3 install yt-dlp
-
下载失败:
- 检查YouTube链接是否有效
- 检查是否有网络限制或代理问题
- 查看详细错误输出进行诊断
-
没有下载任何文件:
- 可能所有视频都已下载过,尝试使用
--all
参数重新下载 - 检查播放列表是否为空或私有
- 可能所有视频都已下载过,尝试使用
扩展与定制
可以通过修改脚本中的以下部分来定制下载行为:
- 修改
output_template
变量可以自定义文件命名格式 - 修改
download_cmd
中的格式参数可以选择特定质量或格式的视频