Python采集课堂视频教程, m3u8视频解密

前言

嗨喽,大家好呀~这里是爱看美女的茜茜呐

环境使用:

  • Python 3.8 解释器

  • Pycharm 编辑器

模块使用:

  • requests >>> pip install requests

  • pycryptodome --> pip install pycryptodome

  • re

第三方模块安装方法:

win + R 输入cmd 输入安装命令 pip install 模块名

(如果你觉得安装速度比较慢, 你可以切换国内镜像源)


👇 👇 👇 更多精彩机密、教程,尽在下方,赶紧点击了解吧~

素材、视频教程、完整代码、插件安装教程我都准备好了,直接在文末名片自取就可


I. 普通视频 / M3U8视频普通视频 --> 可以直接选择 media 可以获取视频链接地址M3U8视频 --> 把整体视频内容, 分割N个视频片段 <ts文件>所有视频片段, 都在 m3u8 的文件里面可以找到直接搜  M3U8 --> 给你返回相应数据内容II. M3U8视频 加密 / 没有加密没有加密 --> ts链接, 可以直接下载视频片段加密 --> ts链接, 下载视频片段是没有办法进行播放的加密规则:AES解密:key 密钥iv 偏移量

代码实现步骤

  1. 发送请求, 模拟浏览器对于url地址发送请求

    请求: m3u8地址

  2. 获取数据, 获取服务器返回响应数据

  3. 解析数据, 提取我们想要的内容

    • key 密钥

    • iv 偏移量

    • ts文件链接

  4. 保存数据, 把视频内容保存本地

    • 解密

    • 进行视频保存

代码展示

# 导入数据请求模块 --> 需要安装 pip install requests
import requests
# 导入正则表达式模块
import re
# pycryptodome --> pip install pycryptodome
from Cryptodome.Cipher import AES# 请求链接
url = '*****/fb8e6c92vodtranscq1258712167/8303440a3701925925244987800/drm/voddrm.token.dWluPTM0NTIyNjQ2Njk7ZXh0PTI2NWQyZTRiNTdjOWRhMWE3YjhmMjA0NjM3NGNmYjExNWFiODk3Nzk1NTg2OWE5MDVkZjVhMmQxYmFhYTMyY2RjOWNjMDY0NzdhMjEzMjdlNDMyNzgxYzcwMjUzOTBjMWZmMGFkMTNiNTJhMWNjMmZmODNkNDdlZTNjOWNmZGYxM2Q5OTM2NTRjMzM1NmI0NDt1aWRfdHlwZT0wO3VpZF9vcmlnaW5fdWlkX3R5cGU9MDt1aWRfb3JpZ2luX2F1dGhfdHlwZT0xMDAzO2NpZD0zOTk5MTY0O3Rlcm1faWQ9MTA0MTQ5OTg4O3ZvZF90eXBlPTA7cGxhdGZvcm09Mw%3D%3D.v.f30742.m3u8?exper=0&sign=3cd8b1abe5b71d364288823f4e744ed3&t=64413061&us=1167437249564802181'
# 伪装 headers
headers = {# User-Agent 用户代理 表示浏览器基本身份信息'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.0.0 Safari/537.36'
}
# 发送请求
response = requests.get(url=url, headers=headers)
# 密钥
key_url = re.findall('URI="(.*?)"', response.text)[0]
# 偏移量
iv = re.findall('IV=(.*)', response.text)[0].replace('0x', '')[:16].encode()
# 解密器 获取密钥的内容
源码、解答、教程、资料加V:qian97378 免费获取
key = requests.get(key_url).content
ci = AES.new(key, AES.MODE_CBC, iv)
# ts链接
m3u8_data = re.sub('#E.*', '', response.text).split()
# for循环遍历
for ts in m3u8_data:ts_url = '******/fb8e6c92vodtranscq1258712167/8303440a3701925925244987800/drm/' + tsts_content = requests.get(ts_url).content# 内容解密# content = ci.decrypt(ts_content)# 保存数据with open('安装教程超清.mp4', mode='ab') as f:f.write(ts_content)print(ts)

尾语

感谢你观看我的文章呐~本次航班到这里就结束啦 🛬

希望本篇文章有对你带来帮助 🎉,有学习到一点知识~

躲起来的星星🍥也在努力发光,你也要努力加油(让我们一起努力叭)。

最后,宣传一下呀~👇👇👇更多源码、资料、素材、解答、交流皆点击下方名片获取呀👇👇

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/19471.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Prompt本质解密及Evaluation实战与源码解析(三)

9.5 Evaluation for QA源码解析 如图9-4所示,我们看一下LangChain框架对问答评估的(Evaluation for QA)的源代码。 图9- 5 LangChain的evaluation qa目录 在eval_prompt.py文件里面,主要定义了三个类 PromptTemplate,它们都是用于生成题目的模板。 Gavin大咖微信:NLP_Mat…

python离线安装ibm_db

下载离线包ibm_db以及clidriver 下载imb_db 在pypi官方网站https://pypi.org/project/ibm-db/#files下载离线安装包ibm_db-3.0.2.tar.gz。下载clidriver 下载地址&#xff1a;https://public.dhe.ibm.com/ibmdl/export/pub/software/data/db2/drivers/odbc_cli/nt32_odbc_cli.…

java后端开发环境搭建 mac

在mac pro上搭建一套java 后端开发环境&#xff0c;主要安装的内容有&#xff1a;jdk、maven、git、tomcat、mysql、navicat、IntelliJ、redis。 本人mac pro的系统为mac OS Monterey 12.6.7&#xff0c;主机的硬件架构为x86_64。 左上角关于本机查看系统版本&#xff1b;终端…

Django搭建图书管理系统04:View视图初探

数据库虽然已经有了&#xff0c;但是用户通常只需要这个庞大数据库中的很小一部分进行查看、修改等操作。为此还需要代码来恰当的取出并展示数据&#xff0c;这一部分代码就被称为视图。 Django 中视图的概念是**「一类具有相同功能和模板的网页的集合」**。 Hello World! 首…

HarmonyOS/OpenHarmony应用开发-程序包多HAP机制(上)

一、多HAP机制设计目标 方便开发者模块化的管理应用&#xff0c;好的应用一般都是模块化管理&#xff0c;模块之间属于松耦合关系。多HAP方便了开发者将业务划分成多个模块&#xff0c;每个模块放到独立的HAP中。例如支付类应用&#xff0c;有统一的主界面&#xff0c;主界面管…

图论之寻找桥边

目录 ①基准法 ②并查集 ③逆向思维之标记环边 ④并查集压缩路径 ①基准法 在图论中&#xff0c;一条边被称为“桥”代表这条边一旦被删除&#xff0c;这张图的连通块数量会增加。等价地说&#xff0c;一条边是一座桥当且仅当这条边不在任何环上。一张图可以有零或多座桥。…

golang数据库操作相应内容--推荐【比较全】

Go为开发数据库驱动定义了一些标准接口&#xff0c;开发者可以根据定义的接口来开发相应的数据库驱动&#xff0c;只要是按照标准接口开发的代码&#xff0c; 以后需要迁移数据库时&#xff0c;不需要任何修改。 一、database/sql接口 1.1sql.Register 这个存在于database/s…

Java新特性:Lambda表达式

Java新特性&#xff1a;Lambda表达式 Lambda 表达式&#xff08;Lambda expression&#xff09;&#xff0c;也可称为闭包&#xff08;Closure&#xff09;&#xff0c;是 Java&#xff08;SE&#xff09;8 中一个重要的新特性。Lambda 表达式允许我们通过表达式来代替功能接口…

Django_haystack全文搜索

haystack是全文搜索的框架&#xff0c;支持whoosh、solr、Xapian、Elasticsearc四种全文检索引擎&#xff0c;点击查看官方网站。 whoosh是用纯Python编写的全文搜索引擎&#xff0c;虽然性能比不上sphinx、xapian、Elasticsearc等&#xff0c;但是无二进制包&#xff0c;程序…

一百二十八、Kettle——从Hive增量导入到ClickHouse

一、目标 用Kettle把Hive的DWS层数据增量导入到ClickHouse中 工具版本&#xff1a;Kettle&#xff1a;8.2 Hive:3.1.2 ClickHouse21.9.5.16 全量导入请访问拙作链接 http://t.csdn.cn/Rqvuvhttp://t.csdn.cn/Rqvuv 二、前提准备 &#xff08;一&#xff09;kettl…

Vue3 +Echarts5 可视化大屏——屏幕适配

项目基于Vue3 Echarts5 开发&#xff0c;屏幕适配是使用 scale 方案 Echarts组件按需引入&#xff0c;减少打包体积 地图组件封装&#xff08;全国&省份地图按需加载&#xff09; 效果图&#xff1a; 屏幕适配 大屏适配常用的方案有 rem vw/vh 和 scale 。 rem vw/vh …

vue 使用 npm run dev命令后 自动打开浏览器为谷歌

文章目录 需求分析 需求 vue 启动后&#xff0c;想要其自动打开指定浏览器&#xff08;谷歌&#xff09;并设置要打开的IP地址和端口号 分析 package.json 打开package.json文件加上 --open chrome index.js 打开index.js文件&#xff0c;将浏览器设置为自动打开