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, 云资产清单, 信息安全, 内容保护, 多媒体开发, 媒体处理, 数字取证, 数字版权管理, 无后门, 流媒体, 网络信息收集, 网络安全审计, 自动化脚本, 视频加密, 逆向工具, 逆向工程