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 写个脚本最省事。


kodi 的插件就是 python 写的吧,拿来改改?

回到顶部