Loading page...Загружаем страницу...正在加载页面...
AtlasRepo

Offline YouTube Playlist Downloader & Merger with FastAPI, React, and FFmpeg

说明与用途

TubeMerger 是一个本地桌面应用,下载 YouTube 播放列表,规范化视频,合并为单个 MP4 并添加章节,并通过 SSE 实时显示进度。

问题

Web‑based video downloaders limit duration, show pop‑ups, and produce many unsorted files, making offline playlist handling cumbersome.

结果

TubeMerger delivers a lightweight, cross‑platform desktop app that downloads YouTube playlists locally, normalizes heterogeneous clips, merges them into a single MP4 with chapters, and provides real‑time progress via SSE—all without cloud dependencies or privacy leaks.

工作流

  • 1. User selects a YouTube playlist URL in the React UI.
  • 2. FastAPI backend uses yt‑dlp to download each video clip locally.
  • 3. Each clip is passed through an FFmpeg normalization command (scale, pad, set SAR, fps, re‑encode audio to 44.1 kHz AAC).
  • 4. Normalized clips are listed in a concat list file.
  • 5. FFmpeg concatenates the clips using the concat demuxer, attaching a generated metadata file to inject MP4 chapter atoms.
  • 6. The merged MP4 is saved locally and opened in the user’s media player.
  • 7. Throughout the process, FastAPI streams progress events via SSE to the React frontend, updating download speed, encoding status, and ETA.

证据

TubeMerger uses a decoupled, local‑first stack: React 19 + TypeScript + Vite + Tailwind CSS, PyWebView, FastAPI, yt‑dlp, and FFmpeg.

来源

By enforcing a locked frame rate, consistent canvas size, and uniform audio, the downstream concat demuxer runs seamlessly without audio drops or stuttering.

来源

The FastAPI backend pushes live progress metrics to the React frontend using Server‑Sent Events.

来源

  • 记录日期: 2026-09-16T10:15:38.411Z