因为 GF 有的时候让我给她提取微博上某个视频的文件,然后再发布到她们的网站上去,所以一开始考虑的是做一个 weibo 的 app ,通过 at 某个号就可以得到视频文件的地址,这样用起来也很方便,然而 weibo 的开放平台真的很不开放, API 也不那么好用:
最终做出来了,由于上面的原因,又删掉了代码,现在是主动提交地址解析,访问地址: https://lab.youth2009.org,提交视频地址后等几秒就可以了,支持直接写 t.cn 那样的短网址。
微博上的视频主要是秒拍
主要出现在
后两种提取方法一样,得到的都是在 gslb ( global server load balance)上的地址,当你请求的时候可以得到最快的 cdn 上的地址。这个地址可以自己拼也可以模拟秒拍调用他们 api 获取,我是模拟获取的。
第一种的视频地址来自 m3u8 文件, m3u8 文件的地址在页面中有,很容易找到,只是从一个视频页面到提取出视频文件链接需要经过几次请求,在 nodejs 中不好写,改成 promise 的写法可能会好。
目前部署在树莓派上,由于最近在搞前端的工作所以就学了点 nodejs 来做做熟悉熟悉,大约用了 express , kue , redis 等。
树莓派上官方库的 redis 是 2.4 版本的, kue 这个 job queue 要求最少需要 2.6 ,因为用了 script load 这个命令,所以最好自己在树莓派上编译最新的 redis ,稍微有点慢,但可以用。
虽然知道 js 中的异步无处不在,但写 nodejs 才体会到,用 kue 常遇到某个 job 卡在那里不动,主要原因就是 job handler 没有正确运行 done 来标记任务做完。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.