LoveCode 发表于 2024-4-25 16:41

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

本帖最后由 LoveCode 于 2024-4-25 16:54 编辑

本次就不修仙了,也没什么好分析的(大都是运气)。另外,本文只给出思路,不提供程序。

# 前言

在 `2024-04-22` 西瓜视频的视频下载链接变化了。

-   比如访问西瓜视频的视频播放页 `https://www.ixigua.com/7360279127813063202`。
-   该视频的下载链接在 `window._SSR_HYDRATED_DATA` 对象中,它位于该播放页的 `HTML` 文档中。




经过分析其表现为:

1.   在此之前,只需要进行 `base64 decode` 即可获取视频的下载链接。




2.   现在多了一层 `AES` 解密,再进行 `base64 decode` 即可。





---



# 迅猛

整个分析过程我觉得**运气**占了 `90%`。






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









`Python` 代码如下,只专注于解密的部分!

-   需要安装 `pycryptodome` 库。

```python
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
```



如下例子:







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





linix 发表于 2024-4-30 15:27

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

LoveCode 发表于 2024-4-27 22:38

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

请给我视频的播放页链接,我来看看。


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

筱良i 发表于 2024-4-25 17:58

大佬厉害,跟着学习

zhangzheh 发表于 2024-4-25 19:00

好好好,我会多老的

字母 发表于 2024-4-25 19:41

厉害了大佬!

deffedyy 发表于 2024-4-25 19:41


大佬厉害,跟着学习

BigMon 发表于 2024-4-25 19:48


大佬厉害,跟着学习

zwmfyy 发表于 2024-4-25 19:58

大佬厉害,跟着学习

wakichie 发表于 2024-4-25 21:14

大佬出个成品

bfyh 发表于 2024-4-25 21:28

这个很有用,非常好啊!

afti 发表于 2024-4-25 21:31

大佬厉害,跟着学习
页: [1] 2 3 4 5 6
查看完整版本: [2024-04-22] 西瓜视频的视频下载链接变动