12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- 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
|