SmugglerJPG
Store your photos (galleries) on youtube or any other video hosting or messenger (rutube / telegram / max) for free! (You can use "unlisted"/"private" visibility or even drafts to keep it private from public)
# create a slideshow (with music!)
smugglerjpg create /path/to/images -o output.mp4 -a /path/to/music_folder -d 4.0
# upload to youtube
# download (use yt-dlp or just studio.youtube.com)
# extract images from video
smugglerjpg extract /tmp/video_from_youtube.webm -o /tmp/extracted
Warning
Vibe-coded for personal purpose. Do not expect much quality from this project. (I do not trust LLM as programmers). But it works for me.
Installation
Method 1: Installing via pipx (Recommended for CLI)
You can install the CLI tool globally and safely in an isolated environment directly from the Git repository:
pipx install git+https://github.com/yaroslaff/smugglerjpg.git
Method 2: Installing from source
Clone the repository and install it in editable mode:
git clone https://github.com/yaroslaff/smugglerjpg.git
cd smugglerjpg
pip install -e .
Note: Video encoding and audio muxing require FFmpeg (including
ffprobe) installed on your system.
CLI Usage
The smugglerjpg command becomes globally accessible after installation.
1. Create a Slideshow (create)
Generate a slideshow video from a directory of images and overlay background music:
smugglerjpg create /path/to/images -o output.mp4 -a /path/to/music_folder -d 4.0
Add -v to inspect the exact ffmpeg commands used:
smugglerjpg create -v /path/to/images -o output.mp4 -d 4.0
2. Extract Slides Back from Video (extract)
Extract original slides cleanly from any slideshow video:
smugglerjpg extract output.mp4 -o /path/to/extracted_images
The extractor auto-detects slide duration by analyzing frame differences, then grabs the center frame of each segment. If OpenCV cannot decode the video (e.g. AV1 codec), it falls back to ffmpeg automatically. Use -v to see the ffmpeg/ffprobe commands.
Metadata
Release files for smugglerjpg 1.0.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| smugglerjpg-1.0.2.tar.gz | 12.9 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| smugglerjpg-1.0.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 25.9 kB
Release files / smugglerjpg-1.0.2.tar.gz
| Download URL | smugglerjpg-1.0.2.tar.gz |
|---|---|
| Size | 12.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
acb557c4499533ebe42881517d8c077add3a661acc82a72d42dea5967793af6c
|
|
BLAKE2b-256 checksum How to use checksums |
8fc479de1f091992b4c92b135ba7599e69f1b3b9966ba92de762c05fe1a12b71
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
Hatch/1.16.5 cpython/3.13.5 HTTPX/0.28.1
|
Release files / smugglerjpg-1.0.2-py3-none-any.whl
| Download URL | smugglerjpg-1.0.2-py3-none-any.whl |
|---|---|
| Size | 13.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
33c519df437a04d253184aea3cebd7ca322440d996c7a6e857c22add70f9c966
|
|
BLAKE2b-256 checksum How to use checksums |
64a7581b93e1687c4af9169ac86fe9fffc43ce00238df06591bd149c816672b2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
Hatch/1.16.5 cpython/3.13.5 HTTPX/0.28.1
|
Security for smugglerjpg 1.0.2
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.