LinkedIn Learning 字幕中文翻译脚本
< 脚本LinkedIn Learning 字幕中文翻译的反馈
字幕下载功能我之后有空了加一下吧🌝
暂时的话视频和字幕可以用这个工具下载 r0oth3x49/lynda-dl字幕翻译的话需要对 _extract.py
稍作修改,这是一个比较粗糙的实现:
# 添加两个方法并修改 _fix_subtitles 方法def _fix_subtitles(self, subs):srt = ''seq_counter = 0t = []i = 0for pos in range(0, len(subs) - 1):seq_current = subs[pos]text = seq_current['Caption'].strip()if text:i += 1text = re.sub(r'\r?\n|\r', ' ', text).strip()t.append(text)r = self._translate('\n'.join(t)).strip().split('\n')for pos in range(0, len(subs) - 1):seq_current = subs[pos]m_current = re.match(self._TIMECODE_REGEX, seq_current['Timecode'])if m_current is None:continueseq_next = subs[pos + 1]m_next = re.match(self._TIMECODE_REGEX, seq_next['Timecode'])if m_next is None:continueappear_time = m_current.group('timecode')disappear_time = m_next.group('timecode')text = seq_current['Caption'].strip()if text:seq_counter += 1text = re.sub(r'\r?\n|\r', ' ', text).strip()srt += '%s\r\n%s --> %s\r\n%s\r\n%s\r\n\r\n' % (seq_counter, appear_time, disappear_time, r[seq_counter], text)if srt:return srtdef _translate(self, text):textArr = ['']resArr = ['']if(len(text) > 5000):strArr = text.split("\n")i = 0for str in strArr:textArr[i] = textArr[i] or ''if(len(textArr[i] + str) > (i + 1) * 5000):i=i+1textArr.append('')textArr[i] += str + "\n"else:textArr[0] = textfor en in textArr:resArr.append(self._caiyun(en))r###lt = '\n'.join(resArr)return r###ltdef _caiyun(self, text):data = json.dumps({"source": text.split("\n"),"trans_type": "en2zh","request_id": "web_fanyi","media": "text","os_type": "web","dict": 1,"cached": 1,"replaced": 1})headers = {"accept": "application/json","content-type": "application/json; charset=UTF-8","X-Authorization": "token:cy4fgbil24jucmh8jfr5"}r = requests.post("https://api.interpreter.caiyunai.com/v1/translator", headers=headers, data=data)r###lt = json.loads(r.text)return "\n".join(r###lt['target'])
字幕下载功能已在 0.3.0 版本中加入
感谢@journey_ad 这么快就实现了下载功能!使用中发现一个小问题,下载的字幕文件中的时间格式有误,秒后边应该是逗号而不是句号如应该是00:00:00,006 --> 00:00:01,005,现在是00:00:00.06 --> 00:00:01.05否则播放器不认望能修复,谢谢!
0.3.2 版本中修复了时间格式
逗号的问题修复了,不过怪我疏忽,还有一个格式问题上次没发现,就是秒的小数位应该是3位而不是2位,否则播放器还是不认 :p
什么播放器,这么严格的🌝
@journey_ad 说道:0.3.2 版本中修复了时间格式
大佬你好哇,非常感谢你的脚本啊。非常非常非常好用。
@journey_ad 说道:什么播放器,这么严格的🌝
Mac##的movist,其他播放器还没试过
因为从上一个版本开始,插件在我这里就不能正常运行了,这个问题我另开一帖吧
macOS 推荐使用 IINA
@journey_ad 说道:macOS 推荐使用 IINA
好的,谢谢!
有没有可能导出字幕文件供离线使用
脚本当前已经非常好用,感谢开发付出的辛苦!国内访问lynda的速度不稳定,慢的时候很卡。希望脚本未来能够支持翻译后的字幕下载,这样就能供视频下载后离线使用了。期待越来越好。