You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用OpenSubtitles API批量下载字幕遇连接重置错误求调试

问题:使用OpenSubtitles API批量下载电影字幕时遭遇连接重置错误

我需要编写Python脚本,为指定文件夹内的电影自动下载字幕,计划通过OpenSubtitles API实现字幕的搜索与下载。

以下是我的代码片段:

import os
import requests
import json

# 搜索并下载字幕的函数
def download_subtitles(movie_folder, movie_name):
    # API端点和凭证
    url = "https://api.opensubtitles.com/api/v1/subtitles"
    user_agent = "USER_AGENT_NAME"
    token = "API_KEY"

    # 准备请求头
    headers = {
        "Api-Key": token,
        "User-Agent": user_agent
    }

    # 准备请求参数
    payload = {
        "query": movie_name,
        "languages": "eng",  # 可根据需求修改语言代码
        "limit": 1
    }

    # 发送API请求
    response = requests.post(url, json=payload, headers=headers)

    # 检查响应状态
    if response.status_code == 200:
        try:
            # 解析响应JSON
            data = response.json()
            # 检查是否找到字幕
            if data.get("data") and data["data"].get("attributes"):
                subtitle_url = data["data"]["attributes"]["files"][0]["download_link"]
                subtitle_filename = f"{movie_name}.srt"

                # 下载字幕文件
                response = requests.get(subtitle_url)
                if response.status_code == 200:
                    # 将字幕保存到电影所在文件夹
                    subtitle_path = os.path.join(movie_folder, subtitle_filename)
                    with open(subtitle_path, "wb") as subtitle_file:
                        subtitle_file.write(response.content)
                    print(f"字幕已下载: {subtitle_filename}")
            else:
                print(f"未找到《{movie_name}》的字幕")

        except json.JSONDecodeError:
            print(f"解析《{movie_name}》的响应JSON时出错")
    else:
        print(f"请求《{movie_name}》的字幕时发生错误")

# 电影所在文件夹路径
movies_folder = "C:/Users/abhis/Videos"

# 遍历电影文件夹下的每个子文件夹
for movie_folder in os.listdir(movies_folder):
    movie_folder_path = os.path.join(movies_folder, movie_folder)
    if os.path.isdir(movie_folder_path):
        # 从文件夹名获取电影名称
        movie_name = movie_folder

        # 搜索并下载该电影的字幕
        download_subtitles(movie_folder_path, movie_name)

运行时出现如下错误:

requests.exceptions.ConnectionError: ('Connection aborted.', ConnectionResetError(10054, 'An existing connection was forcibly closed by the remote host', None, 10054, None))

我已将代码中的USER_AGENT_NAME和API_KEY替换为实际有效值,但怀疑请求头或API URL存在问题,恳请帮忙调试。

内容的提问来源于stack exchange,提问作者Abhishek Rathore

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 22:05:25