Python中如何自动批量下载指定目录下电影剧集字幕?求推荐项目
万能的 v 友请推荐~,也就是自动实现 KODI 的字幕插件功能。
Python中如何自动批量下载指定目录下电影剧集字幕?求推荐项目
2 回复
对于批量下载字幕,推荐使用 subliminal 这个库,它专门干这个的。首先安装:
pip install subliminal
然后写个脚本,让它扫描你的视频目录,自动匹配并下载字幕。下面是个完整示例:
import os
import logging
from subliminal import download_best_subtitles, save_subtitles, scan_videos
from subliminal.core import refine
# 设置日志,方便看过程
logging.basicConfig(level=logging.INFO)
def download_subs_for_directory(directory, languages=['zh', 'en']):
"""
扫描指定目录下的视频文件,并下载最佳字幕。
:param directory: 要扫描的视频目录路径
:param languages: 需要的字幕语言列表,默认中英文
"""
# 1. 扫描目录中的所有视频文件
videos = scan_videos(directory)
if not videos:
print(f"在目录 {directory} 中未找到视频文件。")
return
# 2. 增强视频信息(比如从文件名推断剧集信息)
refine(videos)
# 3. 为每个视频下载最佳字幕
for video in videos:
print(f"处理视频: {video.name}")
try:
# 下载最佳字幕
subtitles = download_best_subtitles([video], {lang for lang in languages})
if subtitles[video]:
# 保存字幕到视频同目录
save_subtitles(video, subtitles[video])
print(f" 已下载字幕: {[sub.language for sub in subtitles[video]]}")
else:
print(f" 未找到匹配的字幕。")
except Exception as e:
print(f" 处理 {video.name} 时出错: {e}")
if __name__ == "__main__":
# 设置你的视频目录路径
video_dir = "/path/to/your/movies"
download_subs_for_directory(video_dir)
这个脚本会递归扫描目录,自动匹配字幕并下载。subliminal 支持多个字幕源,默认配置就够用。如果需要更多控制,可以配置 providers 或设置 cache。
另外,也可以看看 subsync 项目,它除了下载还能同步时间轴,不过 subliminal 对于批量下载更直接。
总结:用 subliminal 写个脚本最省事。


