[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
```
如下例子:
测试时发现有两种情况,其它的我也不深究了。
感谢分享,这2天正在弄这个,卡在IV那里,不是一串数组么?怎么想到用key的前16个字符?
IV=
[
1667511908,
1684170038,
758134840,
1697461298,
845426017,
842163501,
859387748,
909719606
] 自有志在 发表于 2024-4-27 19:22
最近只要能下,播放都是花屏
请给我视频的播放页链接,我来看看。
我并没有测试很多视频(毕竟是个人简单的使用,没有大范围的采集等等),所以我只见过两种链接:
1. `https://v3 . . .` 开头,这个能直接播放。
2. `https://v9 . . .` 开头,这个无法播放,我也没有多纠结,不在意视频的清晰度,直接用的第 1 种链接。 大佬厉害,跟着学习 好好好,我会多老的 厉害了大佬!
大佬厉害,跟着学习
大佬厉害,跟着学习 大佬厉害,跟着学习 大佬出个成品
这个很有用,非常好啊! 大佬厉害,跟着学习