← 返回 Skills 市场
jyt2018

m3u8 video downloader

作者 unixsam · GitHub ↗ · v1.0.0 · MIT-0
cross-platform ⚠ suspicious
98
总下载
0
收藏
0
当前安装
1
版本数
在 OpenClaw 中安装
/install jyt-m3u8-downloader
功能描述
This skill should be used when the user wants to download videos from M3U8 streaming URLs. It handles parsing M3U8 playlists (including nested multi-bitrate...
使用说明 (SKILL.md)

\r \r

M3U8 Video Downloader\r

\r

Overview\r

\r Download videos from M3U8/HLS streaming URLs by parsing playlists, downloading TS segments with multi-threading,\r handling encrypted streams (AES-128), and merging all segments into a single MP4 file using ffmpeg.\r \r

Prerequisites\r

\r Before executing, ensure the following are available:\r \r

  1. Python 3 with requests library installed: pip install requests\r
  2. ffmpeg installed and added to system PATH (required for merging TS segments into MP4)\r
  3. Network access to the M3U8 URL\r \r

Workflow\r

\r

1. Understand the User's Request\r

\r Extract from the user:\r

  • M3U8 URL: The streaming playlist URL (required)\r
  • Output filename: Name for the saved MP4 file (required, without extension)\r
  • Base64 key (optional): For encrypted streams that require a manually provided AES-128 decryption key\r \r

2. Prepare the Environment\r

\r

  • Copy scripts/M3u8Download.py to the working directory\r
  • Ensure requests is installed in the Python environment\r
  • Verify ffmpeg is accessible from the command line: ffmpeg -version\r \r

3. Execute the Download\r

\r Use the M3u8Download class from scripts/M3u8Download.py:\r \r

from M3u8Download import M3u8Download\r
\r
M3u8Download(\r
    m3u8_url="\x3Cuser_provided_url>",\r
    file_path="\x3Coutput_name>",        # Without extension; TS temp dir and final MP4 use this name\r
    max_workers=64,                   # Concurrent download threads\r
    num_retries=10,                   # Retry count on download failure\r
    base64_key=None                   # Optional: base64-encoded AES-128 key for encrypted streams\r
)\r
```\r
\r
#### Key Parameters\r
\r
| Parameter | Description |\r
|-----------|-------------|\r
| `m3u8_url` | M3U8 playlist URL or local file path |\r
| `file_path` | Base name for temp folder and output MP4 file |\r
| `max_workers` | Max concurrent download threads (default: 64) |\r
| `num_retries` | Download retry count on failure (default: 10) |\r
| `base64_key` | Optional base64-encoded decryption key for AES-128 encrypted streams |\r
\r
### 4. What Happens During Download\r
\r
1. **Parse M3U8**: Fetches and parses the M3U8 playlist. If it is a master playlist (contains `EXT-X-STREAM-INF`), automatically follows the redirect to the media playlist.\r
2. **Download key**: If the playlist specifies `EXT-X-KEY`, the encryption key is downloaded (or uses the provided `base64_key`).\r
3. **Download segments**: All TS segments are downloaded concurrently with progress bar display.\r
4. **Merge**: ffmpeg merges all TS segments into a single MP4 file.\r
5. **Cleanup**: After verifying the MP4 file size matches the total TS size (within 10% tolerance), temporary TS files, key file, and M3U8 file are deleted automatically.\r
\r
### 5. Handle Errors\r
\r
- If ffmpeg is not found, inform the user to install it and add to PATH.\r
- If download fails due to network issues, the retry mechanism will attempt `num_retries` times.\r
- If the MP4 output size does not match the TS total size, temporary files are preserved for manual inspection.\r
- For encrypted streams without a provided key, the script attempts auto-download; if that fails, ask the user for the `base64_key`.\r
\r
## Scripts\r
\r
### `scripts/M3u8Download.py`\r
\r
Main download script containing the `M3u8Download` class. This is the primary script to use for all M3U8 download operations.\r
\r
## Notes\r
\r
- The script supports both URL-based and local file-based M3U8 inputs.\r
- Chinese filenames and paths are supported.\r
- On Windows, `os.startfile()` is used to open the output directory after download completes.\r
- Do NOT modify the source code in `scripts/` - use it as-is.\r
安全使用建议
This skill appears to do what it claims: download M3U8 playlists, fetch TS segments and keys, and merge them with ffmpeg. Before installing/run: 1) Review and run the script in an isolated environment (virtualenv or container) since it will download and write arbitrary remote content to disk. 2) Note the script disables TLS verification (requests verify=False) and suppresses warnings — this accepts invalid certs and could allow man-in-the-middle interceptions of downloads; only use with trusted sources or modify to enable verification. 3) The default max_workers is high (64) and could stress CPU/network; reduce if needed. 4) Ensure ffmpeg is installed and you comply with copyright/terms when downloading content. 5) The requirements.txt includes pyav and m3u8 even though SKILL.md doesn't mention them — install only the packages you need. If you need higher assurance, request the full untruncated script for a line-by-line audit and run it in a sandbox before use.
功能分析
Type: OpenClaw Skill Name: jyt-m3u8-downloader Version: 1.0.0 The skill bundle provides a functional M3U8 video downloader but contains security vulnerabilities and risky behaviors. Specifically, `scripts/M3u8Download.py` explicitly disables SSL certificate verification (`verify=False`) for all network requests and suppresses security warnings, exposing the agent to Man-in-the-Middle (MitM) attacks. The script also performs high-risk operations including executing external commands via `subprocess.run` (to call ffmpeg) and deleting files/directories based on user-provided input. Additionally, the use of `os.startfile` at the end of the script may cause unexpected GUI behavior on the host system.
能力评估
Purpose & Capability
The name/description match the included Python script and workflow. The requirements.txt lists pyav and m3u8 even though the SKILL.md only mentions requests and ffmpeg; this is a minor mismatch but not evidence of malicious intent. Overall the requested actions (HTTP fetches of m3u8/TS/key files and ffmpeg merging) are coherent with the stated purpose.
Instruction Scope
SKILL.md instructs copying/running the provided script, providing an M3U8 URL and optional decryption key, and ensuring ffmpeg and requests are available. The runtime instructions and the script confine themselves to downloading playlist/segments/keys, writing local temporary files, and calling ffmpeg to merge — they do not instruct reading unrelated system files or sending data to third-party endpoints beyond the media URLs.
Install Mechanism
There is no automated install step; this is effectively an instruction-plus-script bundle. No remote install URLs or archive extractions are present. The included requirements.txt refers to public Python packages (pyav, m3u8) which is reasonable for media handling.
Credentials
The skill does not request environment variables, credentials, or config paths. All network activity is limited to the user-supplied M3U8/TS/key URLs, which is proportional to a downloader's purpose.
Persistence & Privilege
The skill is not always-enabled and does not request elevated or persistent platform privileges. It writes temporary files only for the download/merge workflow and cleans them up according to the documented behavior.
如何使用
  1. 确保已安装 OpenClaw(本地或 Docker 部署)
  2. 在对话框中输入安装命令:/install jyt-m3u8-downloader
  3. 安装完成后,直接呼叫该 Skill 的名称或使用 /jyt-m3u8-downloader 触发
  4. 根据 Skill 的参数说明提供必要输入,即可获得结构化输出
版本历史
v1.0.0
multi-thread download
元数据
Slug jyt-m3u8-downloader
版本 1.0.0
许可证 MIT-0
累计安装 0
当前安装数 0
历史版本数 1
常见问题

m3u8 video downloader 是什么?

This skill should be used when the user wants to download videos from M3U8 streaming URLs. It handles parsing M3U8 playlists (including nested multi-bitrate... 它是一个面向 Claude Code / OpenClaw 的 AI Agent Skill 插件,目前累计下载 98 次。

如何安装 m3u8 video downloader?

在 OpenClaw 或 Claude Code 对话框中运行命令「/install jyt-m3u8-downloader」即可一键安装,无需额外配置。

m3u8 video downloader 是免费的吗?

是的,m3u8 video downloader 完全免费,采用 MIT-0 许可证,可自由下载、安装和使用。

m3u8 video downloader 支持哪些平台?

m3u8 video downloader 跨平台运行,可在任意部署了 OpenClaw / Claude Code 的环境中使用(cross-platform)。

谁开发了 m3u8 video downloader?

由 unixsam(@jyt2018)开发并维护,当前版本 v1.0.0。

💬 留言讨论