使用函数计算解析视频地址

最近工作上的事情比较忙,于是不得不花些时间追剧分散一下注意力。因为之前听过一期高晓松与亲王马伯庸《晓说》,因此追的是很多人已经看完的根据马伯庸小说改编的《长安十二时辰》。

然而,独播该剧的优酷动辄120秒的广告,实在是太影响观影体验。于是花了点时间搞了今天这个小创造:视频地址解析。严格来讲,这个小工具其实不算是什么创造,因为类似的工具其实有很多。只是正好之前一直关注serverless,因此这个工具其实是使用阿里云的函数计算来完成。方案如下:

使用函数计算来做这个功能其实并不是“锤子思维”,而是因为在github找的一些视频地址解析工具命令行方式提供,而我为了在几分钟以为快速解决自己问题,不想花时间使用代码来调用工具中的执行函数。因此每个函数计算其实是开了一个进程去执行视频地址解析命令,然后向前端返回结果。函数计算因为是按照调用计费,非常适合这种场景。一来不用对进程未正常退出进行容错处理;二来频繁创建和销毁进程是非常昂贵的,不适合放在我的小vps上处理这种任务;第三,阿里云函数计算提供每个月100W次的免费调用额度(都是贫穷惹的祸呀?)

为了快速完成这个小工具,我选择 Python 作为自己函数计算的开发语言。阿里云的函数计算也支持 Java, Node.js, C#, PHP 等其他语言,挑选一个自己趁手的就行。整体上,函数计算这个产品非常简单,基本跟着引导就能做完。其中有几个点比较常见也很重要,在这里简单记录一下。

1. 函数的调试

函数计算有 Web IDE, 你可以直接在上面编写和调试代码。但是,如果你习惯使用 VS Code在本地调试的话,推荐你使用函数计算的VSCode 插件

2. 添加外部依赖

函数计算的 Python 环境默认配置了标准库以及几个常用的的包依赖。如果需要添加其他依赖,你需要使用 fun 这个工具来管理和添加语言依赖

对于 Python, 只需要使用如下命令安装包依赖即可:

fun install –runtime python3 –package-type pip flask

该命令会将依赖包安装在项目目录的 .fun 目录下:

3. 使用 flask 封装 web server

函数计算有好几种触发方式,最常规的肯定是通过 HTTP API 调用方式触发。这个场景,当时是 fask 与 Python 最搭:

有时候,我们折腾事情可能会因为过程而忘记了初心。对于追剧这件小事这种情况是肯定不允许发生的。愉快的追剧去吧

Enjoy!