2021-05
19

终于有了BLF的官方字幕

By xrspook @ 9:49:52 归类于: 烂日记

NBC到底有没有外挂字幕,从我的观察看来是有的,而且那个外挂字幕好像是西班牙语(虽然他们写的是英语,骗谁呢!),但是怎么下载呢?用什么工具下载呢?能在线下载NBC的网站上去很少,就更加不用说下载NBC字幕的了,既然youtube-dl可以下载NBC的视频,为什么就不能下载它的字幕呢?为了这个东西,我研究了一番要怎么在youtube-dl上下载字幕。理论上视频和字幕可以分开下载,但现在人们的新玩法是下载视频的同时,而且把本来是外挂的字幕内嵌到视频里,这个想法很新颖,这样就可以一次性做完两件事了,但我感觉这种内嵌估计不是硬压,因为如果硬压的话,会需要比较多的时间。下载视频如果网速不好非常的耗时间,但下载字幕就只是个文本,相当简单的一件事。

对我来说,youtube-dl其实最大的障碍是不能直接使用,怎么才能使用呢?这又花了我一点时间。某个东西的技术我又不是很成熟,不确定一定可以,所以翻来覆去搞不清是下载不了字幕,还是说在下载之前的某个步骤做得不好。

最终我的确做到了下载NBC上面的BLF官方西班牙语tt字幕。tt字幕(全称SMPTE-TT,tt是它的文件后缀)是一个XML结构的东西,看上去很像网页文件,它的结构也的确跟网页文件没什么区别。也不管到底这个是什么东西,反正能下载回来,肯定有转换的方式,一开始我想到的是用Subtitle Edit, 结果发现我存的那个软件太久远,所以要使用那个软件的话,需要我装Net Framework 3.5,对老电脑来说,那显然是要安装的,但是对win10来说,这个是不一定安装的存在,我担心安装了这个东西会影响到我的office,因为office的power系列功能很大程度都依赖这个net framework,我一直都用的好好的,如果装了个低版本的导致我出状况,那就真的很郁闷了。所以我尝试过用其它字幕软件,接着发现我最常用的那个Aegisub不行。怎么才可以把tt文件转化为很大路的srt呢?其实当我看到那个tt文件的时候,我就意识到用普通的srt不能解决问题,因为字幕是西班牙语的,有非常多的特殊字符,必须用UTF-8才能解决问题,而srt字幕通常对应的是用ANSI。所以其实转换为ass文件会更好。不知道为什么,网上到处都是vtt或者webtt字幕,却几乎没有tt字幕。 vtt字幕是油管自带的,而webtt字幕是HTML5视频里面很流行的字幕。这两种字幕都可以在网上直接找到转换的地方,但是tt却不行。

纠结了一大轮以后,我甚至有想过要自己写python脚本转换。正在这个时候,网友给我发来好消息,他的Subtitle Edit可以转换这个字幕。之所以我的那个不行,是因为我不想安装框架,无法打开软件。我赶紧又下了一个最新版本的Subtitle Edit,非常快速高效地就把我想要的东西转换了出来了,但是,总感觉转换出来的时间轴怪怪的,tt格式的字幕的毫秒设定到底是什么规则呢?他们的时间表达居然是“00:00:00:00”,一般字幕文件的时间表达是“00:00:00.000”

知道如何从NBC下载BLF的外挂字幕,也知道了如何把下载回来的tt字幕转化为ass以后,所有痛点全部都打通了,最后的问题只是NBC最后会不会把这部电视剧全部都免费放出来。

youtube-dl单纯下载NBC网站视频外挂字幕的批处理脚本(复制下面的东西,做适量修改[比如文件路径],然后保存为.bat文件)

盘符
cd\改这里\改这里
youtube-dl –all-subs –skip-download NBC视频网址1(你得去播放页确定那个视频有外挂字幕哦)
youtube-dl –all-subs –skip-download NBC视频网址2(你得去播放页确定那个视频有外挂字幕哦)

困扰我的字幕问题终于有了一个非常完美的结局,实在让人喜出望外。

2020-03
26

py2脚本改写为py3

By xrspook @ 13:06:29 归类于: 烂日记

昨天,我在电脑上部署了Python3.8,令我意外的是BlogBus转WordPress的脚本居然可以在这个东西上一次通过。我在家里试的时候,如果安装现行的最新版本的Python,会有语法错误,为什么在单位这台电脑上就没有这个烦恼呢?

晚上我再去研究的时候,发现原来单位这台电脑在2017年就已经装过Python2.7。中午运行那个脚本的时候,估计不知道为什么那个东西自动调用了老的版本,所以没有发生语法错误。Python2跟Python3的语法差异很多人都中过招。习惯用Python2的人写Python3脚本肯定会有很多毛病。几天前当我在电脑上运行不通的时候,我的做法是卸载了Python3,重新安装Python2,这个做法是对的,是最快捷的解决方式,但是昨天晚上,我却选择了一个故意撞墙的方式——我要修改10年前的代码,让它在Python3上面正常运行。理论上,如果我在电脑上部署好了Python的环境,我应该可以在多种模式下正常运行那个东西。但实际上,当我很笨拙地在命令行运行那个东西的时候,的确可以,但是如果我用批处理文件调用运行,即便我在用户跟全局都都设置好了环境,依然运行失败。为什么会这样?我不知道,但显然很多人都遭遇过这种失败,所以网上的解决办法有很多,为什么这个运行环境,不是设置好了就万事大吉呢?我不太清楚。

在电脑上运行过Python以后,我觉得这个东西实在太神奇了。如果是其他语言,脚本与运行之间还有一个编译的过程,C语言是这样的,JAVA把貌似也得这样,但Python直接写完代码就可以运行。当然,运行失败的时候,他们会告诉你哪里出了问题。哪里出了问题跟有提示教你怎么改才对完全是两码事。我还在跟网友吐槽为什么设置好了环境还是批处理失败的时候,他建议我在VSCode里写py,同时也装上Python的插件。VSCode的Python插件有很多,要装哪个我完全不知道。因为VSCode是微软的产品,搜索出来的第一个Python插件也是微软昨的,至于那个东西有什么用,我实在不知道,我迷迷糊糊就安装了。在VSCode里编辑py的时候,会有一个在终端运行的选项,那里就可以看到运行效果。当我打开py文件的时候,右下角不断弹出叫我安装另外一个插件。一开始的时候我没有装,但是后来我还是装了,当然我也可以设置它不再提醒。我在装那个插件之前,我就在第1个插件的终端运行过一次py,有错误代码,跟我在CMD命令行显示错误代码是一样的。但是当我安装了第2个插件以后,奇迹的事情发生了。运行同样的脚本,在同样的位置依然会报错,但是下面还多了一行告诉我这个错误是什么,同时也会建议我应该怎么改。格式上的问题插件会直接告诉我要怎么改,比如Pyhon3在print的时候,要比2多写一对括号。另外一些状况属于插件无法确切地告诉你这个错误到底意味着什么,是哪里出问题了,但问题被描述得比较明白了。在见识过这些东西之后,我真心觉得,英语不好的人千万不要学编程,又或者说学编程,而且编得好的人,英语烂不到哪里去,因为他们看到的满眼都是那些鬼。如果你遇到一个喜欢用拼音缩写去命名函数写脚本的人,就我个人而言,我会非常怀疑他的技术。

之前让我觉得可能要折腾一个晚上才能搞定的脚本改写,在VSCode以及那两个插件的帮助之下,大概15分钟就搞定了,真的让人非常有成就感!

我不知道,我是不是天生是编程的料,但是一定程度上,我喜欢那些东西。我喜欢那些严格的逻辑,也喜欢那些在我印象之中或者意料之外的效果。

© 2004 - 2024 我的天 | Theme by xrspook | Power by WordPress