V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
ins
V2EX  ›  问与答

以下连接地址怎么找出视频播放地址(本帖不是广告,谢谢)

  •  
  •   ins · 2016-03-02 11:54:56 +08:00 · 3446 次点击
    这是一个创建于 3172 天前的主题,其中的信息可能已经有所发展或是发生改变。

    RT :先贴上地址
    <embed src="http://img.sn.vp.autohome.com.cn/play/ahplayer.swf?v=1.3.0.20160111" width="100%" height="100%" name="ahplayer_194A04CA5349642E_0" flashvars="vid=194A04CA5349642E&amp;autostart=undefined" wmode="opaque" allowfullscreen="true" allowscriptaccess="always" pluginspage="http: //www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash">

    以上的代码是 某视频站的地址 我在网页使用 F12 后 找到此代码但是本人纯属菜鸟
    不能找出视频播放的 简短地址连接 例如 http://www.xxx.com.swf 之类的 地址,恳亲大神
    帮忙谢谢.

    11 条回复    2016-03-03 13:06:35 +08:00
    182247236
        1
    182247236  
       2016-03-02 12:27:11 +08:00
    只看到了个播放器啊。。。。。没看到什么视频
    paradoxs
        2
    paradoxs  
       2016-03-02 12:28:08 +08:00
    f12 network 看缓冲
    ucaime
        4
    ucaime  
       2016-03-02 12:50:17 +08:00   ❤️ 1
    思路基本都是一样的啊,我记得我之前写过, PO 主应该是想通过代码分析来拿到视频。
    先说结果:
    你上面贴的代码是 flash 播放器的代码,重要的地方在于 `flashvars="vid=194A04CA5349642E&amp;autostart=undefined"`这段中的`vid=`后面的这串东西,这是视频的 ID 。然后请求如下接口:`http://p.vp.autohome.com.cn/api/gvf?vid=194A04CA5349642E&divid=ahplayer_container_194A04CA5349642E_0&width=1440&useragent=iPhone6P&callback=window.AHVP.manager.onServerResponse&r=0.0868007792159915`,注意更换两处 vid 参数,就可以得到 m3u8 的视频播放地址了。这几个不同清晰度的地址可以直接用 video 标签在 html5 页面中播放。如果还不满足,可以修改拿到的地址的几个部分得到 flv 视频真实地址,下载下来。例如:
    `http://m8.play.vp.autohome.com.cn/flvs/0A4648B7CEAD844D/2016-03-01/194A04CA5349642E-200.m3u8?key=6D224F6242B7C27C1987F911A28E4C5C&time=1456901080`,把 m8 改为 p8 ,-200.m3u8 改为 -30.flv 应该就是真实地址了。为什么会这样我找找之前整理的规则有空贴回来。

    这类规则尝试几次就能发现规律,甚至能拼出各类码流出来。
    ucaime
        5
    ucaime  
       2016-03-02 12:51:48 +08:00
    @ucaime 另外可能有人会问那个接口怎么发现的,试试更改 user-agent 为 iPhone 你就知道了。
    ins
        6
    ins  
    OP
       2016-03-02 13:46:43 +08:00
    @ucaime 感谢大神.终于明白各种意思..谢谢
    ins
        7
    ins  
    OP
       2016-03-02 14:01:10 +08:00
    @ucaime 如果把这 [http://m8.play.vp.autohome.com.cn/flvs/0A4648B7CEAD844D/2016-03-01/194A04CA5349642E-200.m3u8?key=6D224F6242B7C27C1987F911A28E4C5C&time=1456901080`,把 m8 改为 p8 ,-200.m3u8 改为 -30.flv ] 这段地址用在网站上的视频上 该怎么修改啊..意思就是 把这个视频的地址 粘贴到 网上的帖子里显示 而不是下载到本地
    ucaime
        8
    ucaime  
       2016-03-02 15:22:59 +08:00
    @ins 得看发到哪,如果能用 video 标签,就直接用 m3u8 的地址放到 video 标签里。如果能发 flash ,就搞个 flash 播放器,地址写在 flash 的配置里,如果能发 script 标签,就找个能直接 script 单链接播放的播放器,还可以考虑 iframe 之类的,反正对方的那个域名下允许了跨域请求。
    Aquamarine
        9
    Aquamarine  
       2016-03-02 20:07:34 +08:00
    @ucaime 我之前一个视频也发现这样的问题,切换 UA 成手机浏览器,就能看到视频的真实下载地址,这是为什么?
    ucaime
        10
    ucaime  
       2016-03-03 13:05:13 +08:00
    @Aquamarine 大部分手机上无法使用 flash ,隐藏地址的方法要么交给 flash 黑盒转换成视频地址,要么服务端验证,后者用的很少。手机上要么直接 mp4 要么 hls ,要么稍微严格一点的用 rtmp 之类的流媒体协议配合 html5 的某些特性播放,总之绝大多数手机上隐藏不了真实地址。
    ucaime
        11
    ucaime  
       2016-03-03 13:06:35 +08:00
    @Aquamarine 绝大多数的 vms 视频管理系统都有针对不通终端的调用方式,但原理大同小异,如果要彻底加密和授权只能选择 drm 之类的版权保护方案,但互联网上实现还是难度较大。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1523 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 23:57 · PVG 07:57 · LAX 15:57 · JFK 18:57
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.