使用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
相关产品推荐
相关产品推荐

