A command-line tool for downloading and merging m3u8 .ts video segments into a single MP4 file.
Project description
m3u8-getpack
m3u8-getpack (also m3gp) is a fast command-line tool and Python library.
It gets video segments (.ts files) from .m3u8 playlists and packs them into a single .mp4 video file.
Perfect for handling HLS (HTTP Live Streaming) content, m3u8-getpack provides both a streamlined CLI for easy use and a modular API for integration into your own projects.
✨ Features
⚡ Fast and simple CLI for quick use directly from the terminal.
🧩 Modular Python API for seamless integration into your own scripts and tools.
🚀 Multithreaded downloading for high-speed performance.
🎞️ Uses ffmpeg-python as a backend for accurate video merging.
📡 Designed to handle HLS (HTTP Live Streaming) content efficiently.
📌 Currently supports only static HLS playlists — direct .m3u8 files .containing segment .ts links (not master playlists or nested CDN manifests).
📦 Installation
⚙️ Requirements
Make sure python3 and pip are installed:
python3 --version
pip --version
If needed:
sudo apt install python3
sudo apt install python3-pip
✅ Install via pip (Recommended-CLI)
pip install m3u8-getpack
🛠️ Install via GitHub (dev mode)
For development or direct usage from source:
git clone https://github.com/yourusername/m3u8-getpack.git
cd m3u8-getpack
pip install -e .
Running
✅ Recommended-CLI
m3u8-getpack -i video.m3u8 -o myvideo.mp4
# Or alternatively:
m3gp -i video.m3u8 -o myvideo.mp4
mgp -i video.m3u8 -o myvideo.mp4
🛠️ Run the package directly from source (without installation, live changes reflected):
python3 -m m3u3-getpack -i video.m3u8 -o myvideo.mp4
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file m3u8_getpack-0.0.1.tar.gz.
File metadata
- Download URL: m3u8_getpack-0.0.1.tar.gz
- Upload date:
- Size: 8.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9d388c4463cfd9bcc63ef5f79f4bcd69b5d69e0f80af100c641a41546eb0917b
|
|
| MD5 |
f5a608bdfac78a61943872619b1885cb
|
|
| BLAKE2b-256 |
b3041f56fb11644b516f30fc3205f9f6f4bf83d13681755c238def93e1c1be46
|
Provenance
The following attestation bundles were made for m3u8_getpack-0.0.1.tar.gz:
Publisher:
python-publish.yml on fabiocastrodias/m3u8-getpack
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
m3u8_getpack-0.0.1.tar.gz -
Subject digest:
9d388c4463cfd9bcc63ef5f79f4bcd69b5d69e0f80af100c641a41546eb0917b - Sigstore transparency entry: 197266469
- Sigstore integration time:
-
Permalink:
fabiocastrodias/m3u8-getpack@38f1de8143239c282eab58a859643b86e5cde15d -
Branch / Tag:
refs/tags/v0.0.1 - Owner: https://github.com/fabiocastrodias
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
python-publish.yml@38f1de8143239c282eab58a859643b86e5cde15d -
Trigger Event:
release
-
Statement type:
File details
Details for the file m3u8_getpack-0.0.1-py3-none-any.whl.
File metadata
- Download URL: m3u8_getpack-0.0.1-py3-none-any.whl
- Upload date:
- Size: 9.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
31f5ef9fad5d9aeafc638ffbb69911d039737fdd2ec054de5368fcb4bb4a55c4
|
|
| MD5 |
8a3b9b5c44b3c1f52aec5edd665c1935
|
|
| BLAKE2b-256 |
c24ea3ff4f0bd55ca354b4e830ac76065e635e381abced6ec5fa4b1445e32696
|
Provenance
The following attestation bundles were made for m3u8_getpack-0.0.1-py3-none-any.whl:
Publisher:
python-publish.yml on fabiocastrodias/m3u8-getpack
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
m3u8_getpack-0.0.1-py3-none-any.whl -
Subject digest:
31f5ef9fad5d9aeafc638ffbb69911d039737fdd2ec054de5368fcb4bb4a55c4 - Sigstore transparency entry: 197266473
- Sigstore integration time:
-
Permalink:
fabiocastrodias/m3u8-getpack@38f1de8143239c282eab58a859643b86e5cde15d -
Branch / Tag:
refs/tags/v0.0.1 - Owner: https://github.com/fabiocastrodias
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
python-publish.yml@38f1de8143239c282eab58a859643b86e5cde15d -
Trigger Event:
release
-
Statement type: