头条文章链接,详细页面里面的视频地址下载分析、提取下载

结论是

videoid = tt-videoid

video_json = f'https://i.snssdk.com/video/urls/1/toutiao/mp4/{videoid}'

分析步骤为

目标就是这个文章链接下面的,视频 下载下来。

抓包分析

看到了 video 标签, 但是源码里面没有这个标签,发现了有个很有标识的东西: tt-videoid 。
直接说 结果: src="https://i.snssdk.com/video/urls/1/toutiao/mp4/v0301fg10000csljvd7og65kf0m8ntq0?callback=tt__video__vdefy8"
直接请求 src 得到了,

看到这种 不要慌,解密一下。

好,结果就出来了

解析代码

python 复制代码
		videoid = tt-videoid
        video_json = f'https://i.snssdk.com/video/urls/1/toutiao/mp4/{videoid}'
        headers = {
            "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7",
            "accept-language": "zh-CN,zh;q=0.9",
            "cache-control": "no-cache",
            "pragma": "no-cache",
            "priority": "u=0, i",
            "sec-ch-ua": "\"Google Chrome\";v=\"129\", \"Not=A?Brand\";v=\"8\", \"Chromium\";v=\"129\"",
            "sec-ch-ua-mobile": "?0",
            "sec-ch-ua-platform": "\"Windows\"",
            "sec-fetch-dest": "document",
            "sec-fetch-mode": "navigate",
            "sec-fetch-site": "none",
            "sec-fetch-user": "?1",
            "upgrade-insecure-requests": "1",
            "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/129.0.0.0 Safari/537.36"
        }
        cookies = {
            "odin_tt": "a2d3ceea612f2780e30a937100bd7f046490e1444ea859921535a09461162ba4175263d58898dd877d347b78eb144dbd6cd7bb127969860c77836bbeca4e6fe5"
        }
        response = requests.get(video_json, headers=headers, cookies=cookies)
        json_data = json.loads(response.text)
        main_url = jsonpath(json_data, '$..video_3.main_url')[0] if jsonpath(json_data, '$..video_3.main_url') else None
        if main_url:
            decoded_bytes = base64.b64decode(main_url)
            video_url = decoded_bytes.decode('utf-8')

结束:

复制代码
	文章视频可以正常提取下载
相关推荐
zzzzzz3106 小时前
当产品经理说这个很简单:我用Python自动化处理奇葩需求的实战指南
python·pycharm·产品经理
雪隐7 小时前
个人电脑玩AI-06让5060 Ti给你打工——不光能画画,Qwen3-TTS还能学人说话,连我老板都信了!
人工智能·后端·python
兵慌码乱18 小时前
面向桌面端的资产管理系统分层架构设计与核心模块实现
python·系统架构·sqlite·pyqt5·数据库设计·桌面应用开发·mvc架构
hboot20 小时前
AI工程师第三课 - 机器学习基础
python·scikit-learn·kaggle
顾林海1 天前
Agent入门阶段-编程基础-Python:流程控制
python·agent·ai编程
呱呱复呱呱1 天前
Django CBV 源码解读:一个请求是怎么找到你的 get() 方法的
python·django
曲幽1 天前
刚部署的 LibreTranslate 频频翻车?我掏出了 20 年前的 StarDict 词典,用 FastAPI 搭了个本地词典翻译 API
python·fastapi·web·translate·goldendict·libretranslate·stardict·pystardict
荣码1 天前
用Streamlit给AI应用套个界面,10行代码出Web页面
java·python
兵慌码乱2 天前
基于Python+PyQt5+SQLite的药房管理系统实现:事务一致性与界面解耦全流程解析
python·sqlite·信号与槽·pyqt5·数据库设计·桌面应用开发·事务处理
金銀銅鐵2 天前
[Python] 体验用欧几里得算法计算最大公约数的过程
python·数学