Skip to main content

Thumbnail + preview tools for media folders (ffmpeg + pillow helpers).

Project description

Librifygen

High-performance thumbnail & preview generator for videos and images.

Librifygen is a cross-platform media processing toolkit that generates:

  • Image thumbnails
  • Video thumbnails (single-frame extraction)
  • Video preview clips (random segments stitched together)
  • Full CLI tool + clean Python API
  • Designed for automation, content pipelines, and library indexing tools.

Uses ffmpeg for video operations and Pillow for image processing.


🚀 Features

  • Extract thumbnails from videos at midpoint or a provided timestamp
  • Resize images intelligently (crop or letterbox)
  • Batch-scan directories recursively
  • Create multi-clip video previews
  • CLI + Python module
  • Works on Linux, Windows, macOS
  • Safe and predictable processing (temp dirs, logging, error handling)

📦 Installation

Requires:

Python 3.8+
Pillow
ffmpeg-python
ffmpeg (system binary)

Install Librifygen:

pip install librifygen

🔧 Installing ffmpeg (Required)

Librifygen depends on the ffmpeg binary being present in your system PATH. Here are the easiest installation methods per OS:


🟦 Windows

Option A — Use Chocolatey (recommended)

choco install ffmpeg

Option B — Use Scoop

scoop install ffmpeg

Option C — Manual Download

  1. Download from: https://www.gyan.dev/ffmpeg/builds/
  2. Extract the folder
  3. Add the bin/ directory to your PATH environment variable

Verify:

ffmpeg -version

🍎 macOS

Using Homebrew (recommended)

brew install ffmpeg

Using MacPorts

sudo port install ffmpeg

Verify:

ffmpeg -version

🐧 Linux

Debian / Ubuntu

sudo apt update
sudo apt install ffmpeg

Fedora

sudo dnf install ffmpeg

Arch Linux

sudo pacman -S ffmpeg

Verify:

ffmpeg -version

🖥️ CLI Usage

After installation, the librifygen command becomes available:

librifygen <command> [options]

Available commands:

  • thumbs — generate thumbnails for images/videos in a directory
  • preview — generate multi-clip preview videos

▶️ Generate Thumbnails

Basic usage

librifygen thumbs /path/to/media /path/to/output

With workers & custom size

librifygen thumbs ~/Pictures ~/Thumbs --workers 8

🎬 Generate Preview Videos

librifygen preview ./videos ./previews

Custom clips, duration, audio, transitions

librifygen preview ./videos ./previews \
    --num-clips 4 \
    --clip-duration 3 \
    --workers 4

A preview is generated like:

input.mp4 → previews/input_preview.mp4

🐍 Python API Usage

Use Librifygen directly in your Python code:


✔ Generate image thumbnail

from librifygen.thumbnail import generate_image_thumbnail

output = generate_image_thumbnail(
    "media/photo.png",
    "thumbnails/photo.jpg"
)

print(output)

✔ Generate video thumbnail

from librifygen.thumbnail import generate_video_thumbnail

thumb = generate_video_thumbnail(
    "media/video.mp4",
    "thumbnails/video.jpg"
)
print("Thumbnail:", thumb)

✔ Generate preview video

from librifygen.preview import generate_video_preview

preview = generate_video_preview(
    "media/video.mp4",
    "previews",
    num_clips=4,
    clip_duration=5,
)
print(preview)

✔ Batch processing

from librifygen.thumbnail import generate_thumbnails

results = generate_thumbnails(
    input_dir="media",
    output_dir="thumbs",
    max_workers=6
)

for src, out in results:
    print(src, "->", out)

📂 Example Project Structure

You can integrate Librifygen into your own project like:

project/
│
├── media/
│   ├── images/
│   ├── videos/
│
├── thumbs/
│
├── previews/
│
└── generate_media_assets.py

Example script:

from librifygen.thumbnail import generate_thumbnails
from librifygen.preview import batch_create_previews

generate_thumbnails("media", "thumbs", max_workers=8)
batch_create_previews("media/videos", "previews", num_clips=4)

⚙️ Supported Formats

Images

jpg, jpeg, png, bmp, tiff, webp

Videos

mp4, mov, mkv, webm, avi, flv, m4v

Formats are customizable using:

from librifygen.config import set_extensions
set_extensions(video_exts=[".mp4", ".mov"], image_exts=[".jpg"])

🧩 Roadmap

  • GPU-accelerated previews (via CUDA / Vulkan / Metal)
  • Progress bars & verbose CLI
  • Config file support
  • Parallel image-resizing via ProcessPool optimization
  • WebAssembly build (ffmpeg-wasm) for browser-based pipelines

📝 License

MIT License © Me


🤝 Contributing

Pull requests welcome. Please open issues for bugs, feature requests, or ffmpeg compatibility questions.


🧪 Testing your installation

pip install librifygen
librifygen --help

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

librifygen-0.2.0.tar.gz (11.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

librifygen-0.2.0-py3-none-any.whl (11.6 kB view details)

Uploaded Python 3

File details

Details for the file librifygen-0.2.0.tar.gz.

File metadata

  • Download URL: librifygen-0.2.0.tar.gz
  • Upload date:
  • Size: 11.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.14

File hashes

Hashes for librifygen-0.2.0.tar.gz
Algorithm Hash digest
SHA256 a63bd30a4a7283ceb812f5e481d90d4ac5bdd3227fc4d03636ab32044309ffd9
MD5 83faa2436b5c67c2a155aff0388468b7
BLAKE2b-256 849ccd283ffba11ff27b4946412ce121ef9dff643e9c6dda3e67b3143902f81a

See more details on using hashes here.

File details

Details for the file librifygen-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: librifygen-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 11.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.14

File hashes

Hashes for librifygen-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 f5b798065383a83558f68f1738d49f69ca98b6c016cfca727771bb5522e3cb9d
MD5 32d4523cb8ded09c0c045d71bbf0d9a1
BLAKE2b-256 2d1f2e416e4e1941711be4eed89dfc70c4b8e970363193cce44c3e1b9bcbf875

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page