Potplayer翻译插件


记得以前刷课一直用bing的翻译api来生成实时字幕,但是更了potplayer的某个版本之后不再提供免费的api了,可能是bing限制了使用额度,也也可能是播放器某种合规问题不再支持。

目前potplayer内置了bing和google的api,也有大佬们编写了插件支持了百度的api,然而免费的额度始终是不够用的,那么还是自己实现一个翻译api吧。(前提是得有英文字幕文件)

写完查询了下,市面上应该还没有基于aws给potplayer的翻译插件,我应该是全网第一人。

按照大微软一贯的作风没,免费是不可能的。

这么好的软件怎么能不支持aws呢?

如果这个功能aws没有,那么就托管一个。

如果某些东西不支持,那用aws的api开发一个。

Api的编写

选取了Flask来编写api,只需要一个简单的路由,这个需要足够小足够轻量,然后在api返回所需要的格式。

SDK的话使用使用boto3,实现很简单:

response = client.translate_text(
	Text=message,
	SourceLanguageCode=source_language,
	TargetLanguageCode=destination_language,
)

毕竟涉及到ak和sk,这些敏感信息建议放在环境变量或者使用secret manager托管起来。

播放器脚本

播放器使用的是angelscript,关于这个语言找到了资料很少,而且播放器也没有暴露出来任何api文档,所以姑且认为是覆盖angelscript的钩子函数。这个插件不再过多叙述,其实就是像我们的rest api发送一个HTTP的请求,然后对返回的格式进行处理。最后把值给ret这个变量。第一次接触angelscript,很多东西还不是很熟悉。插件后续还有挺大优化空间。

image-20231014200719638

这个原理其实很简单,主要是写了点实用的工具,所以写出来分享。

成品

这个是github的地址:
potplayer_translate_plug_in/translate_api at master · mengze-han/potplayer_translate_plug_in · GitHub


文章作者: AWS Learner
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 AWS Learner !
评论
  目录