Skip to content

Repository files navigation

Zutu Engine

The engine behind modern media tools.

Created by Yuzzo The Creator · GitHub

Zutu Engine is a high-performance, modular media processing engine written in Go. It powers analysis, extraction, downloading, conversion, and storage — designed as reusable core technology for CLI tools, APIs, desktop apps, and SDKs.

This repository is a backend engine/library, not a website or dashboard.

Screenshots

List resolutions

zutu i https://youtu.be/jNQXAC9IVRw

zutu info — list available resolutions

Download with creator credit

zutu https://youtu.be/jNQXAC9IVRw -f 240p

zutu download — progress and creator credit

Features

  • Clean architecture with clear domain boundaries
  • Plugin-based extractors (YouTube, Instagram, TikTok, generic HTTP)
  • Concurrent downloads with resume, retry, and progress hooks
  • FFmpeg processing pipeline (audio extract, convert)
  • Safe path handling and secure subprocess invocation
  • Production CLI (zutu) built on Cobra
  • Docker, Makefile, GoReleaser, and CI-ready layout

Requirements

  • Go 1.24+
  • FFmpeg (for audio/conversion)
  • yt-dlp (optional fallback if native extraction fails)

Install

Go

go install github.com/yuzzothecreator/zutu-engine/cmd/zutu@v0.1.1
zutu version

Make sure $(go env GOPATH)/bin is on your PATH.

Binaries

Download Windows / macOS / Linux builds from Releases.

Scoop and Homebrew formulas are planned for a later release.

Full install guide: docs/install.md

Quick start

# From a release binary or go install
zutu version

# Or build from source
git clone https://github.com/yuzzothecreator/zutu-engine.git
cd zutu-engine
make deps
make build
./bin/zutu version

CLI

# Download best quality
zutu https://youtu.be/jNQXAC9IVRw

# List resolutions / format ids
zutu i https://youtu.be/jNQXAC9IVRw

# Download a preferred resolution
zutu https://youtu.be/jNQXAC9IVRw -f 720p
zutu https://youtu.be/jNQXAC9IVRw -f 1080p
zutu https://youtu.be/jNQXAC9IVRw -f 18        # by format id from `zutu i`

# Audio
zutu a https://youtu.be/jNQXAC9IVRw

# Custom folder
zutu https://youtu.be/jNQXAC9IVRw -f 720p -o ./videos

Library

package main

import (
    "context"
    zutu "github.com/yuzzothecreator/zutu-engine"
    _ "github.com/yuzzothecreator/zutu-engine/plugins"
)

func main() {
    eng, err := zutu.New()
    if err != nil {
        panic(err)
    }

    info, err := eng.Analyze(context.Background(), "https://example.com/a.mp4")
    if err != nil {
        panic(err)
    }

    _, err = eng.Download(context.Background(), info)
    if err != nil {
        panic(err)
    }
}

Architecture

URL
 │
 ▼
Extractor Registry ──► Matching Plugin ──► MediaInfo
                                              │
                                              ▼
                                         Downloader
                                              │
                                              ▼
                                         Processor (FFmpeg)
                                              │
                                              ▼
                                          Storage
Package Role
engine/ Public façade, lifecycle, orchestration
core/media Domain models
core/extractor Plugin interface + registry
core/downloader HTTP download, queue, workers
core/processor FFmpeg pipeline
core/storage Filesystem persistence
plugins/ Source integrations
cmd/zutu Reference CLI
pkg/ Config, logger, utils

Plugins

Built-in extractors register via init() when blank-imported:

import _ "github.com/yuzzothecreator/zutu-engine/plugins"
Plugin Matching Extraction
youtube youtube.com / youtu.be Native InnerTube → yt-dlp → oEmbed
instagram instagram.com Native page/embed parse → yt-dlp → oEmbed
tiktok tiktok.com / vm.tiktok.com Native rehydration JSON → yt-dlp → oEmbed
generic any http(s) URL HTTP HEAD/GET probe (fallback)

Platform plugins prefer native stream extraction (no yt-dlp required). yt-dlp remains an optional fallback.

Custom plugins implement extractor.Extractor and call extractor.Register.

Configuration

File: zutu.yaml (or ZUTU_* env vars)

output_dir: ./downloads
temp_dir: ./.zutu-tmp
workers: 4
max_retries: 3
timeout: 5m
ffmpeg_path: ffmpeg
log_level: info
allow_overwrite: false

Development

make test
make lint
make build
make docker

See docs/ for API notes, plugin guide, and roadmap.

License

MIT © 2026 Yuzzo The Creator — see LICENSE.

About

Zutu is a modern, high-performance command-line media downloader written in Go. It provides a fast, extensible architecture for retrieving metadata and downloading publicly accessible media from supported sources, with support for plugins, concurrent downloads, resumable transfers, and cross-platform binaries.

Resources

Security policy

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages