Mac下使用AppleScript与系统服务自动从射手获取字幕(转载)

之前射手播放器(SPlayerX)在App Store上架,而且是收费软件,这件事算是引起了一场风波(详情可以看这里),因为射手播放器本来是用的MPlayerX的代码,而MPlayerX是开源的。不过这件事也让Mac用户爽了一把,因为射手为了规避GPL协议把字幕获取模块(sscl)用二进制文件的方式放出,作为一个插件调用,这使得使用各种脚本来自动获取字幕成为可能,Windows底下据我所知还没有能从射手调用字幕的软件。其实这种软件之前网友也发过不少,实现方式多种多样,我最早是使用一阁Blog的这篇文章中的代码,但总觉得不太爽,每次用都要开终端虽然感觉比较geek,不过还是不是很方便。另外本文代码也是参考了这篇文章里的。
想了下还是觉得用服务的方式获取会比较方便,集成到系统自带的右键菜单,并且通过设置能只在影片文件的右键菜单出现。

我的脚本只针对文件,不能获取文件夹内的内容,主要是因为现在射手在服务器端做了一个限制,如果短时间内获取的字幕太多,获取到的都将是一个只会告诉你“你使用的版本过旧”的假srt文件,得过一段时间或者换个IP才能重新获取。
所以大家还是看一片获取一次字幕,我试了下三四片一起获取没什么问题,再多就不行了。
而且如果支持文件夹的话就没法象我预想的只在影片的右键菜单中出现,而是随便点什么都会有。

支持多文件处理,多选文件后执行脚本即可。
执行后状态栏会有一个齿轮在转,执行完成后会有窗口告诉你是否获取成功。

下面上附件和代码

获取sscl

首先你需要sscl,这个文件你可以从SPlayer的BitBucket中获取,不过已经很久没有更新了,还能不能用我没有试过,下载地址:
http://hg.splayer.org/splayerx/raw/0b9e84441210/binaries/x86_64/sscl
我用的是Mac App Store中的SPlayerX 1.1.4中提取的文件。这里也附上下载地址:
http://fduo.org/wordpress/wp-content/uploads/2012/11/sscl.zip

修改路径并赋予执行权限

打开终端chmod +x,然后把下回来的sscl拖到终端窗口中回车
sscl放在哪里随便你,我是放在~/Applications/的 (注意这里我选择的路径是~打头的,就是当前用户目录的意思,也就是/Users/你的用户名/Applications,不是根目录下的那个应用程序文件夹)

添加服务

这里提供我做好的workflow,在这里下载:

获取字幕.workflow
放在~/Applications/下的直接点安装就可以用了,如果放别的地方就点”用Automator打开”,把一开始set SSCL to "~/Applications/sscl"改成你的路径就好了。
这样就完成了,现在在Finder里右键点影片文件,在服务菜单里点“获取字幕”就可以了。

代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
on run {input, parameters}
set SSCL to “~/Applications/sscl”
set theList to input as list
set theLog to “”
do shell script “rm -rf ~/Library/Application\\ Support/SPlayerX/SVPSub/”
repeat with theItem in theList
set theFile to theItem as alias
set thePath to POSIX path of theFile as string
tell application “Finder”
set theName to the name of theFile
set theFolder to POSIX path of ((container of theFile) as alias)
end tell
try
do shell script SSCL & ” –video-file ” & quoted form of thePath & ” –pull >/dev/null 2>&1″
set theLog to ((theLog) & “[成功]: ” & theName & ”
“)
do shell script “mv ~/Library/Application\\ Support/SPlayerX/SVPSub/* ” &quoted form of theFolder
on error
set theLog to ((theLog) & “[失败]: ” & theName & ”
“)
end try
end repeat
display dialog theLog buttons “好” default button “好” giving up after 60
end run

这脚本其实稍微改一改,配合OS X自带的文件夹操作,做成监视下载文件夹,一旦发现新的视频文件自动获取字幕也很容易,不过我没这个需求,就不写了。

 

来源地址:http://fduo.org/use-applescript-to-fetch-subtitles-from-shooter-cn/

发表评论

电子邮件地址不会被公开。

This site uses Akismet to reduce spam. Learn how your comment data is processed.