[2024-04-22] 西瓜视频的视频下载链接变动

查看 118|回复 11
作者:LoveCode   
本次就不修仙了,也没什么好分析的(大都是运气)。另外,本文只给出思路,不提供程序。
前言
在 2024-04-22 西瓜视频的视频下载链接变化了。
  • 比如访问西瓜视频的视频播放页 https://www.ixigua.com/7360279127813063202。
  • 该视频的下载链接在 window._SSR_HYDRATED_DATA 对象中,它位于该播放页的 HTML 文档中。



    image-20240423233455697.png (585.77 KB, 下载次数: 0)
    下载附件
    2024-4-25 16:38 上传

    经过分析其表现为:
    [ol]
  • 在此之前,只需要进行 base64 decode 即可获取视频的下载链接。
    [/ol]


    image-20240424235101213.png (582.12 KB, 下载次数: 0)
    下载附件
    2024-4-25 16:38 上传
  • 现在多了一层 AES 解密,再进行 base64 decode 即可。
    [/ol]
    迅猛
    整个分析过程我觉得运气占了 90%。


    image-20240425161704776.png (222.13 KB, 下载次数: 0)
    下载附件
    2024-4-25 16:38 上传

    直接给结论:新增加的算法是 AES,其 key、iv 如下图所示,其 mode 为 CBC,pad 为 Pkcs7


    image-20240425003057989.png (84.21 KB, 下载次数: 0)
    下载附件
    2024-4-25 16:38 上传



    image-20240425152619715.png (149.38 KB, 下载次数: 0)
    下载附件
    2024-4-25 16:38 上传

    Python 代码如下,只专注于解密的部分!
  • 需要安装 pycryptodome 库。

    from Crypto.Cipher import AES
    from Crypto.Util.Padding import unpad
    import base64
    def aes_decrypt(data: str, key: str) -> str:
        data = base64.b64decode(data)
        key = key.encode()
        iv = key[:16]
        # mode 为 CBC、pad 为 PKcs7
        cipher = AES.new(key, AES.MODE_CBC, iv)
        res = cipher.decrypt(data)
        res = unpad(res, AES.block_size)
        res = base64.b64decode(res).decode()
        return res
    如下例子:


    image-20240425153025374.png (524.13 KB, 下载次数: 0)
    下载附件
    2024-4-25 16:52 上传

    测试时发现有两种情况,其它的我也不深究了。


    image-20240425160815041.png (166.72 KB, 下载次数: 0)
    下载附件
    2024-4-25 16:38 上传



    image-20240425161013942.png (85.13 KB, 下载次数: 0)
    下载附件
    2024-4-25 16:38 上传

    下载次数, 下载附件

  • LiNix   

    感谢分享,这2天正在弄这个,卡在IV那里,不是一串数组么?怎么想到用key的前16个字符?
    IV=
    [
        1667511908,
        1684170038,
        758134840,
        1697461298,
        845426017,
        842163501,
        859387748,
        909719606
    ]
    LoveCode
    OP
      


    自有志在 发表于 2024-4-27 19:22
    最近只要能下,播放都是花屏

    请给我视频的播放页链接,我来看看。
    我并没有测试很多视频(毕竟是个人简单的使用,没有大范围的采集等等),所以我只见过两种链接:
    1. `https://v3 . . .` 开头,这个能直接播放。
    2. `https://v9 . . .` 开头,这个无法播放,我也没有多纠结,不在意视频的清晰度,直接用的第 1 种链接。
    筱良i   

    大佬厉害,跟着学习
    zhangzheh   

    好好好,我会多老的
    字母   

    厉害了大佬!
    deffedyy   

    大佬厉害,跟着学习
    BigMon   

    大佬厉害,跟着学习
    zwmfyy   

    大佬厉害,跟着学习
    wakichie   

    大佬出个成品
    您需要登录后才可以回帖 登录 | 立即注册

    返回顶部