ytdl-sub
使用YoutubeDL自动下载和生成元数据。
ytdl-sub
是一个命令行工具,通过yt-dlp下载媒体,并为您喜爱的媒体播放器做好准备,包括Kodi、Jellyfin、Plex、Emby和现代音乐播放器。无需额外插件或外部抓取工具。
我们认识到每个人存储媒体的方式都不同。我们的文件和元数据格式化方法是在保持简单性的同时提供最大的灵活性。
将YouTube频道作为电视节目
Plex
Jellyfin
音乐视频和演唱会
Kodi
Jellyfin
SoundCloud唱片目录
通过beets API写入适当的音乐标签
Bandcamp唱片目录
工作原理
ytdl-sub
使用YAML文件定义订阅。每个订阅导入预设,这些预设定义了如何处理和输出媒体文件。ytdl-sub
打包了许多预构建预设,可以完成配置构建的工作,因此您可以立即开始下载。
# subscriptions.yaml:
# 此处的所有内容都可以使用以下命令下载:
# ytdl-sub sub subscriptions.yaml
# __preset__ 是为所有订阅定义全局覆盖的地方
__preset__:
overrides:
# 所有ytdl-sub电视节目的根文件夹
tv_show_directory: "/tv_shows"
# 所有ytdl-sub音乐的根文件夹
music_directory: "/music"
# 所有ytdl-sub音乐视频的根文件夹
music_video_directory: "/music_videos"
# 对于"仅最近"预设,只保留此范围内的视频并限制数量
only_recent_date_range: "2months"
only_recent_max_files: 30
# 直接将任何参数传递给yt-dlp的Python API
ytdl_options:
cookiefile: "/config/cookie.txt"
###################################################################
# 电视节目预设。可以用Plex/Jellyfin/Kodi替换Plex
Plex按日期排列的电视节目:
# 将流派标签设置为"纪录片"
= Documentaries:
"NOVA PBS": "https://www.youtube.com/@novapbs"
"国家地理": "https://www.youtube.com/@NatGeo"
"Cosmos - What If": "https://www.youtube.com/playlist?list=PLZdXRHYAVxTJno6oFF9nLGuwXNGYHmE8U"
# 将流派标签设置为"儿童",内容分级为"TV-Y"
= Kids | = TV-Y:
"Jake Trains": "https://www.youtube.com/@JakeTrains"
"Kids Toys Play": "https://www.youtube.com/@KidsToysPlayChannel"
= Music:
# 电视节目订阅可以支持多个URL,并存储在同一个电视节目中
"Rick Beato":
- "https://www.youtube.com/@RickBeato"
- "https://www.youtube.com/@rickbeato240"
# 将流派标签设置为"新闻",使用`仅最近`预设只存储最近上传的视频
= News | Only Recent:
"BBC新闻": "https://www.youtube.com/@BBCNews"
Plex电视节目合集:
= Music:
# 以~开头设置特定的覆盖变量
"~Beyond the Guitar":
s01_name: "视频"
s01_url: "https://www.youtube.com/c/BeyondTheGuitar"
s02_name: "翻唱"
s02_url: "https://www.youtube.com/playlist?list=PLE62gWlWZk5NWVAVuf0Lm9jdv_-_KXs0W"
###################################################################
# 音乐预设。可以用Plex/Jellyfin/Kodi替换Plex
YouTube发布:
= Jazz: # 将流派标签设置为"爵士乐"
"Thelonious Monk": "https://www.youtube.com/@theloniousmonk3870/releases"
YouTube完整专辑:
= Lofi:
"Game Chops": "https://www.youtube.com/playlist?list=PLBsm_SagFMmdWnCnrNtLjA9kzfrRkto4i"
SoundCloud唱片目录:
= Chill Hop:
"UKNOWY": "https://soundcloud.com/uknowymunich"
= Synthwave:
"Lazerdiscs Records": "https://soundcloud.com/lazerdiscsrecords"
"Earmake": "https://soundcloud.com/earmake"
Bandcamp:
= Lofi:
"Emily Hopkins": "https://emilyharpist.bandcamp.com/"
###################################################################
# 音乐视频预设
"Plex音乐视频":
= Pop: # 将流派标签设置为"流行"
"Rick Astley": "https://www.youtube.com/playlist?list=PLlaN88a7y2_plecYoJxvRFTLHVbIVAOoc"
"Michael Jackson": "https://www.youtube.com/playlist?list=OLAK5uy_mnY03zP6abNWH929q2XhGzWD_2uKJ_n8E"
所有这些都可以通过以下命令下载并准备导入到您喜欢的播放器中:
ytdl-sub sub subscriptions.yaml
查看我们的示例订阅获取更详细的示例和用例。
输出
ytdl-sub
运行后,最终结果将下载并格式化文件,使其可以被您喜欢的媒体播放器/服务器使用。
tv_shows/
Jake Trains/
Season 2021/
s2021.e031701 - Pattys Day Video-thumb.jpg
s2021.e031701 - Pattys Day Video.mp4
s2021.e031701 - Pattys Day Video.nfo
s2021.e031702 - Second Pattys Day Video-thumb.jpg
s2021.e031702 - Second Pattys Day Video.mp4
s2021.e031702 - Second Pattys Day Video.nfo
Season 2022/
s2022.e122501 - Merry Christmas-thumb.jpg
s2022.e122501 - Merry Christmas.mp4
s2022.e122501 - Merry Christmas.nfo
poster.jpg
fanart.jpg
tvshow.nfo
music/
Artist/
[2022] Some Single/
01 - Some Single.mp3
folder.jpg
[2023] Latest Album/
01 - Track Title.mp3
02 - Another Track.mp3
folder.jpg
music_videos/
Elton John/
Elton John - Rocketman.jpg
Elton John - Rocketman.mp4
自定义配置
通过使用自定义配置,可以修改此过程的任何部分。查看我们的入门指南,了解如何从头开始构建您的第一个配置。您可以在这里找到现成的示例配置,以及我们的readthedocs,获取所有配置字段的详细信息。
安装
ytdl-sub
可以在以下平台上安装:
Docker 安装
Docker 安装可以是无头模式或使用 Web-GUI 镜像,后者包含了 LSIO 的 code-server Docker 镜像,并预装了 ytdl-sub
。这是使用 ytdl-sub
的推荐方式。
贡献
有很多方式可以贡献,即使不编码也可以。请查看我们的 GitHub Issues 提交功能请求,或修复 bug。
支持
如果您有任何问题,我们在 Discord 频道 非常活跃。另外,请查看我们的 FAQ 获取常见问题解答。