KnugiHK/PyPSSH
GitHub: KnugiHK/PyPSSH
从 MP4 初始化片段提取并编码 Widevine 和 PlayReady DRM PSSH 信息的轻量级 Python 工具。
Stars: 11 | Forks: 2
# PyPSSH
**PyPSSH** 是一个轻量级的 Python 工具,用于从 MP4 初始化片段中提取并进行 Base64 编码 Widevine 和 PlayReady PSSH 盒子。适用于 DRM 系统诊断、媒体工作流自动化以及安全测试和研究。
## ⚖️ 法律声明(使用前请阅读!)
**PyPSSH** 基于 [MIT 许可证](LICENSE) 提供,允许您自由使用、修改和分发本软件。但是,通过使用 **PyPSSH**,您确认以下内容:
### 🛡️ DRM 和版权合规性
**PyPSSH** 可能会与受 DRM 保护的内容交互,旨在用于诊断、研究和安全测试目的。它_不_提供绕过 DRM 保护的工具,而是帮助识别和处理媒体文件中的 DRM 信息。用户有责任确保其使用符合适用法律,包括 DRM 和版权法规,并且_不应_使用 **PyPSSH** 规避 DRM 保护或侵犯知识产权。
### ⚠️ 无担保与责任
**PyPSSH** 按“原样”提供,不提供任何形式的担保。作者对其使用产生的任何损害、滥用或法律后果不承担责任。
## 🚀 功能特性
- 从 MP4 初始化片段中提取 Widevine 和 PlayReady PSSH 盒子。
- 输出 Base64 编码的 PSSH 盒子,以便于使用。
- 可用于调试 DRM 工作流或从加密媒体文件中提取信息。
- 简单高效,依赖极少。
## 🧰 使用方法
### 命令行使用
要从 MP4 初始化片段中提取 Widevine 和 PlayReady PSSH 盒子,请按以下方式运行脚本:
```
python3 pypssh.py init.mp4
```
脚本将输出 Widevine 和 PlayReady(如果存在)的 Base64 编码 PSSH 盒子。
### 开发者使用
您也可以将脚本作为模块导入,并使用 `extract_pssh()` 函数以编程方式获取 PSSH 盒子。以下是如何在您自己的 Python 代码中使用该函数的示例:
```
from pypssh import PSSH
import logging
logging.basicConfig(level=logging.INFO, format='%(message)s')
logger = logging.getLogger(__name__)
# Specify the path to the video initialization segment
video_file_path = '/path/to/video_init.mp4' # Replace with the actual path
# Parse the PSSH data from the file
pssh = PSSH.parse(video_file_path)
logger.info("Extracted PSSH Data:")
logger.info("--------------------")
# Extract and log Widevine & PlayReady PSSH base64 data if available
widevine_b64 = pssh.get_widevine_b64()
playready_b64 = pssh.get_playready_b64()
if widevine_b64:
logger.info(f"Widevine PSSH: {widevine_b64}")
else:
logger.info("No Widevine PSSH found")
if playready_b64:
logger.info(f"PlayReady PSSH: {playready_b64}")
else:
logger.info("No PlayReady PSSH found")
```
标签:Base64, DRM, HTTP工具, meg, MP4, PlayReady, PSSH, Python, T1005, T1083, T1105, Widevine, 云资产清单, 信息安全, 内容保护, 多媒体开发, 媒体处理, 数字取证, 数字版权管理, 无后门, 流媒体, 网络信息收集, 网络安全审计, 自动化脚本, 视频加密, 逆向工具, 逆向工程