V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
dawncold
V2EX  ›  分享创造

提取微博上视频的工具

  •  
  •   dawncold ·
    dawncold · 2015-12-11 21:20:16 +08:00 · 5805 次点击
    这是一个创建于 3271 天前的主题,其中的信息可能已经有所发展或是发生改变。

    因为 GF 有的时候让我给她提取微博上某个视频的文件,然后再发布到她们的网站上去,所以一开始考虑的是做一个 weibo 的 app ,通过 at 某个号就可以得到视频文件的地址,这样用起来也很方便,然而 weibo 的开放平台真的很不开放, API 也不那么好用:

    1. at 的评论数据有时有有时没有
    2. at 的微博数据直接没有,但能给你显示有多少条记录,邮件沟通无果

    最终做出来了,由于上面的原因,又删掉了代码,现在是主动提交地址解析,访问地址: https://lab.youth2009.org,提交视频地址后等几秒就可以了,支持直接写 t.cn 那样的短网址。

    解决方法

    微博上的视频主要是秒拍

    主要出现在

    1. video.weibo.com
    2. ent.v.sina.cn
    3. www.miaopai.com/show/

    后两种提取方法一样,得到的都是在 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 来标记任务做完。

    第 1 条附言  ·  2015-12-14 16:30:01 +08:00
    追加一个坑,我用了全局的 regexp 来搜索 response body ,但没有在每次搜索前重置 lastIndex ,也就会导致第一次可以,第二次搜不到,第三次又可以,因为第二次会从 lastIndex 开始搜索!!

    刚开始有个地方又忘记标记 job done ,挤压了几十个不能处理新的请求了。
    第 2 条附言  ·  2015-12-14 17:49:21 +08:00
    修改了一下 URL ,目前是: https://lab.youth2009.org/video
    8 条回复    2016-11-01 07:56:27 +08:00
    g5
        1
    g5  
       2015-12-12 03:12:37 +08:00 via Android
    考虑开源吗?
    gaody
        2
    gaody  
       2015-12-12 04:41:41 +08:00
    dawncold
        3
    dawncold  
    OP
       2015-12-12 13:10:11 +08:00
    @gaody 确实,不过这个只支持了 video.weibo.com ,我还能多支持两种:)
    dawncold
        4
    dawncold  
    OP
       2015-12-12 13:10:59 +08:00
    @g5 js 代码写的不好,这个原理不复杂,应该用不着开源吧
    ajan
        5
    ajan  
       2015-12-12 13:42:17 +08:00
    书签小工具: http://fulicat.com/lab/bookmarklet.html
    支持 秒拍,美拍,微录客 视频链接提取下载
    dawncold
        6
    dawncold  
    OP
       2015-12-13 00:29:51 +08:00
    @ajan 我试了下秒拍的小工具,不能用了, hard code 视频的 host 不一定能成功,除非所有视频都被推到了 cdn 上(当然应该是会的),最好直接拼 gslb 的地址,这样每次下载都能用最近 cdn
    ajan
        7
    ajan  
       2015-12-13 18:12:33 +08:00
    @dawncold ​打开类似这样的  http://www.miaopai.com/show/DU8a-PmvUrRYwWnykoTggw__.htm  网址时是可以下载的
    justyy
        8
    justyy  
       2016-11-01 07:56:27 +08:00
    用这个, 免费好用, 亲测好用。 https://weibomiaopai.com/#api
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1392 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 17:09 · PVG 01:09 · LAX 09:09 · JFK 12:09
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.