import re import requests import json class SRT(): @classmethod # 定义函数去掉文字后的标点符号并添加换行符 def process_srt(cls, srt): lines = srt.strip().split('\n') processed_lines = [] for line in lines: # 匹配字幕编号行 if re.match(r'^\d+$', line): processed_lines.append(line) # 匹配时间戳行 elif re.match(r'^\d{2}:\d{2}:\d{2}\.\d{1,3}-->\d{2}:\d{2}:\d{2}\.\d{1,3}$', line): processed_lines.append(line.replace('-->', ' --> ')) # 处理字幕文本行 else: # 去掉末尾的标点符号 line = re.sub(r'[,。!?;、]$', '', line) # 添加换行符 processed_lines.append(line + '\n') return '\n'.join(processed_lines) @classmethod def getSrt(cls, mp3_id): url = "http://api-internal.piaoquantv.com/produce-center/srt/get/content" payload = json.dumps({ "params": { "resourceChannel": "inner", "videoId": mp3_id } }) headers = { 'User-Agent': 'Apifox/1.0.0 (https://apifox.com)', 'Content-Type': 'application/json', 'Accept': '*/*', 'Host': 'api-internal.piaoquantv.com', 'Connection': 'keep-alive' } response = requests.request("POST", url, headers=headers, data=payload) data_list = response.json() code = data_list["code"] if code == 0: srt = data_list["data"] if srt: srt = srt.replace("/n", "\n") # srt = re.sub(r'(\w+)([,。!?])', r'\n\n', srt) new_srt = cls.process_srt(srt) return new_srt else: return None else: return None