python爬虫+ffmpeg批量下载ts文件,解密合并成mp4

本文介绍了如何使用python爬虫配合ffmpeg,批量下载经过加密的ts文件,并解密合并成mp4视频。首先分析了大鹏教育直播回放的m3u8和ts加密机制,接着找到了m3u8 URL的规律,最后展示了完整的爬虫代码,并对ffmpeg的使用进行了简单说明。

标题

python爬虫+ffmpeg批量下载ts文件,解密合并成mp4


前言

(第一次写博客,写的不好请见谅哈~~)
目标是大鹏教育里边的直播回放,他的回放是m3u8格式的,还有ts加密,这是分析过后才知道的,大家可以忽略哈,下边会有详细的过程!


一、分析目标

先进站点看看——大鹏教育拿一个免费的课程试试,

进视频F12看代码
在这里插入图片描述
可以看到video的链接是blob加密的,这个我查了一下,看不懂,就没在这方面下手,如果有大佬会可以指点一下小弟,嘿嘿~~~
在页面搜索mp4文件,并没有
在这里插入图片描述
去网络中查mp4
在这里插入图片描述
json数据格式化以后是这样的
在这里插入图片描述
这里有mp4文件,但是呢,打不开
在这里插入图片描述
果断换方向,在网络中搜索m3u8(一般都是这个套路,要有这个敏感性)
在这里插入图片描述
直接找URL的,别的300的表示响应为m3u8,是ts文件,
在这里插入图片描述
这里有两个url,先看下边那个,可以发现是表示清晰度
在这里插入图片描述
可以看到第一个url里边是ts文件,还有一个key,这说明ts加密了,你下载ts不解密是看不了的,ffmpeg有解密功能

二、寻找url规律

我们做的是批量爬取,一定要去找url的规律,然后写代码,批量爬取。
m3u8的url: https://hls.videocc.net/ef4825bc7e/f/ef4825bc7edbfa2d5669dc739da4743f_3.m3u8?pid=1627609329566X1284092&device=desktop
实测?后的可以删除,不影响,删除后为:
https://hls.videocc.net/ef4825bc7e/f/ef4825bc7edbfa2d5669dc739da4743f_3.m3u8
再去查看别的视频的m3u8视频,可以发现https://hls.videocc.net/ef4825bc7e/f/
是一样的,改变的是ef4825bc7edbfa2d5669dc739da4743f_3这个
还记得这个嘛
在这里插入图片描述
这个的url为: https://www.dapengjiaoyu.cn/dp-course/api/courses/stages/jxptdx8pvb/chapters?courseId=jxpjtxnsow&page=1&size=16

这个里边有课程的名称(title里边),有vid,所以先爬取这个页面,提取title和vid,然后用vid加上https://hls.videocc.net/ef4825bc7e/f/,构造我们的m3u8地址,思路理清楚了,上代码。

三、写代码

我直接上完整的代码了,在代码里边解释,QAQ

import requests
import re
import subprocess     #后续会用到,控制终端的库
import os
from tqdm import tqdm    #为了好看,加上进度条
from time import sleep
from multiprocessing.dummy import Pool    #多线程的

s = '这里是你的cookies,直接复制过来就行'

#处理cookies的方式
cookies = {
   
   }
s = s.encode('utf-8').decode('latin1')   #如果cookies有中文,这样处理编码就不会报错了
for k_v in s.split(';'):
    k,v = k_v.split('=',1)
    cookies
### 下载小红书直播回放的技术分析 下载小红书或其他社交媒体平台上的直播回放通常涉及网络请求抓取、数据解析和文件保存等多个技术环节。然而需要注意的是,任何未经授权的资源获取行为都可能违反服务条款甚至触犯法律[^1]。 #### 技术实现路径 以下是通过程序或工具实现这一目标的主要方法: 1. **网络协议分析** 使用浏览器开发者工具(F12)或者专门的抓包软件(如 Wireshark 或 Charles Proxy),可以捕获并分析客户端与服务器之间的通信过程。找到用于传输视频流的具体 URL 地址是关键一步。此过程中需注意 HTTPS 加密流量解码问题[^3]。 2. **API 探索** 如果存在公开可调用的小红书 API,则可以直接利用官方接口来访问相关内容;但在大多数情况下,这类敏感操作会被严格限制。此时就需要借助逆向工程技巧去研究非文档化的私有端点[^4]。 3. **脚本编写** 基于 Python 编写简单的爬虫脚本来完整个流程: ```python import requests def download_video(url, output_path): response = requests.get(url, stream=True) if response.status_code == 200: with open(output_path, 'wb') as f: for chunk in response.iter_content(1024): f.write(chunk) video_url = "https://example.com/path/to/video.mp4" output_file = "./downloaded_video.mp4" try: download_video(video_url, output_file) except Exception as e: print(f"Error occurred: {e}") ``` 上述代码片段展示了一个基本的 HTTP GET 请求示例,实际应用时还需加入异常处理机制以及更复杂的逻辑控制以应对各种可能出现的情况[^5]。 --- ### 法律合规提醒 尽管从技术角度出发确实可行,但务必尊重版权归属方权益,在合法范围内合理使用他人创作果才是正道。未经授权擅自传播受保护作品不仅侵犯个人隐私也可能构侵权违法行为,请谨慎行事!
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值