Skip to content

Latest commit

 

History

37 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

TubeBurn

A cross-platform desktop application that downloads YouTube videos, authors a DVD-Video disc with interactive menus, and burns it to DVD-R.
Built with .NET 10, C#, and Avalonia UI.

Ko-fi MIT License

Features

  • YouTube integration — Paste URLs or playlist links; TubeBurn downloads videos, thumbnails, and channel artwork via yt-dlp
  • Native DVD authoring — Generates compliant DVD-Video structure (IFO, VOB, menus) entirely in C#. On macOS, mkisofs packages it into a burnable UDF ISO.
  • Interactive menus — Two-level menu system: Channel Select → Video Select, with pagination, button highlights, and subpicture overlays
  • Hardware-compatible output — Produces DVD-Video discs playable on standalone DVD players, not just software players
  • SkiaSharp menu rendering — Channel avatars, video thumbnails, banner backgrounds, configurable fonts
  • Smart transcoding — Hardware-accelerated MPEG-2 encoding via ffmpeg with configurable bitrate (2–6 Mbps), parallel workers, and cache-aware re-transcoding
  • Disc capacity validation — Pre-build estimates and post-transcode hard gates for DVD-5 (4.37 GB) and DVD-9 (7.95 GB)
  • Cross-platform burning — IMAPI2 on Windows and the built-in drutil utility on macOS. ImgBurn remains an opt-in Windows fallback.
  • Build-only mode — Author a VIDEO_TS folder and ISO without burning, then test with VLC
  • Web exportExport the DVD menu experience as a self-contained HTML/CSS/JS folder with working YouTube embeds (upload or zip-and-email)

Requirements

Optional:

  • VLC — test playback via dvd:/// protocol
  • dvdauthor — optional external authoring backend
  • ImgBurn — Windows burn fallback (opt-in via TB_ENABLE_IMGBURN_FALLBACK=1)

Platform-specific setup

Windows

Install ffmpeg and yt-dlp, make them available on PATH, or configure their paths in TubeBurn's Tool Paths panel. TubeBurn's Native author backend creates the DVD structure and ISO with Windows IMAPI2FS, and the Native (IMAPI2) burn backend writes it using Windows' built-in disc imaging APIs. No additional authoring or burning utility is required. ImgBurn is an optional fallback, enabled with TB_ENABLE_IMGBURN_FALLBACK=1.

The External author backend is also available when dvdauthor and mkisofs are installed and configured in the Tool Paths panel.

macOS

Install the required media tools with Homebrew:

brew install ffmpeg yt-dlp cdrtools

cdrtools provides mkisofs, which TubeBurn uses to create the UDF ISO required for DVD burning. macOS provides /usr/bin/drutil for burning and verification; connect a compatible DVD writer and insert a writable disc. The optional External author backend additionally requires dvdauthor to be installed or configured in the Tool Paths panel.

Both authoring backends work on macOS:

  • Native creates TubeBurn's menus and DVD structure, then packages only VIDEO_TS and AUDIO_TS into an ISO with mkisofs.
  • External (dvdauthor) delegates DVD structure creation to dvdauthor, then packages the same DVD directories with mkisofs.

The Burn Backend is Native (drutil) on macOS. It burns tubeburn.iso at the selected speed, verifies it, and ejects the disc.

Getting Started

# Build
dotnet build

# Run the app
dotnet run --project src/TubeBurn.App

# Run tests
dotnet test tests/TubeBurn.Tests

TubeBurn discovers ffmpeg and yt-dlp from your system PATH automatically. You can also configure tool paths manually in the app's Tool Paths panel.

How It Works

  1. Add videos — Paste YouTube URLs into the queue. TubeBurn fetches metadata (title, duration, channel, thumbnails) in the background.
  2. Configure — Choose NTSC/PAL, disc type, video bitrate, and output folder.
  3. Build — TubeBurn downloads videos, transcodes to DVD-compliant MPEG-2, generates interactive menus with channel/video artwork, authors the full VIDEO_TS structure, and creates an ISO.
  4. Burn — Write to DVD-R, or use build-only mode and test with VLC. On macOS, select DVD-9 when the post-transcode size exceeds the 4.37 GB DVD-5 limit.

Project Structure

src/
  TubeBurn.App/            Avalonia UI desktop application
  TubeBurn.Domain/         Domain models (no external dependencies)
  TubeBurn.DvdAuthoring/   Native DVD authoring engine (no external dependencies)
  TubeBurn.Infrastructure/  External tool wrappers (ffmpeg, yt-dlp, SkiaSharp, IMAPI2)
  TubeBurn.WebExport/      CLI exporter: DVD menu experience → self-contained HTML/CSS/JS folder
tests/
  TubeBurn.Tests/          xUnit integration and unit tests
  TubeBurn.WebExport.Tests/ xUnit tests for the web exporter
  TubeBurn.DesktopUiTests/ FlaUI desktop automation (Windows, opt-in)
reference/
  dvdauthor/               Original dvdauthor C source (porting reference)

The Domain and DvdAuthoring projects have zero external NuGet dependencies by design — all external tool interaction lives in Infrastructure.

DVD Menu System

TubeBurn generates a two-level interactive menu:

  • Level 1 — Channel Select (VMGM): One row per YouTube channel with circle avatar and channel name. Skipped automatically for single-channel projects.
  • Level 2 — Video Select (VTSM): One row per video with thumbnail and title. Paginated with Next/Prev navigation. Back button returns to Channel Select.

Menus use DVD subpicture overlays for button highlights with full remote control navigation (up/down/enter/back).

Testing

# All tests
dotnet test tests/TubeBurn.Tests

# Specific categories
dotnet test tests/TubeBurn.Tests --filter "FullyQualifiedName~DvdMenuSystem"
dotnet test tests/TubeBurn.Tests --filter "FullyQualifiedName~MenuBinary"

# VLC screenshot validation (requires tests/lib/vlc/)
dotnet test tests/TubeBurn.Tests --filter "FullyQualifiedName~VlcDvdnav_multi_channel_shows"

Support

TubeBurn was originally built for prison ministry — making it easy to put YouTube content onto DVDs for people without internet access. If you find it useful, consider supporting development:

Ko-fi

License

MIT — free to use, modify, and distribute with attribution.

About

Download YouTube videos and burn them to DVD with interactive menus

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages