Skip to content

rodddevs/youtube-merger

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

██████╗  ██████╗ ██████╗ ██████╗ ███████╗██╗   ██╗███████╗██████╗ 
██╔══██╗██╔═══██╗██╔══██╗██╔══██╗██╔════╝██║   ██║██╔════╝╚════██╗
██████╔╝██║   ██║██║  ██║██║  ██║█████╗  ██║   ██║███████╗ █████╔╝
██╔══██╗██║   ██║██║  ██║██║  ██║██╔══╝  ╚██╗ ██╔╝╚════██║ ╚═══██╗
██║  ██║╚██████╔╝██████╔╝██████╔╝███████╗ ╚████╔╝ ███████║██████╔╝
╚═╝  ╚═╝ ╚═════╝ ╚═════╝ ╚═════╝ ╚══════╝  ╚═══╝  ╚══════╝╚═════╝ 

YouTube Merger v1.1.0

A Windows desktop app that downloads multiple YouTube videos and merges them into a single video or audio file.

Features

  • Bulk paste links — Drop in as many YouTube URLs as you want
  • Visual preview — Thumbnails, titles, and durations of every video before processing
  • Toggle on/off & reorder — Click checkboxes to include/exclude, drag to reorder
  • Quality selection — Best available, 4K, 1440p, 1080p, 720p, or audio-only (MP3 320kbps)
  • Single output file — All selected videos merged into one MP4 (or MP3)
  • Custom save folder — Pick where to save, changeable per download
  • Hardware acceleration — Uses Intel Quick Sync (when available) for 3-5× faster 1080p encoding
  • Persistent diagnostic logs — Every run writes a detailed log file for troubleshooting
  • Smart auth — Reads your Firefox cookies to authenticate with YouTube's bot challenges

Build Setup (One-Time, ~10 minutes)

Prerequisites

You need Node.js LTS installed: https://nodejs.org

That's the only thing you install yourself. The build script handles Python, Deno, FFmpeg, and yt-dlp.

IMPORTANT: Install Firefox before using the app

YouTube has bot-protection that requires authenticated cookies. On Windows, only Firefox's cookie database can be reliably read by yt-dlp. Chrome and Edge use App-Bound Encryption that blocks third-party access entirely.

  1. Install Firefox: https://www.mozilla.org/firefox
  2. Open Firefox → go to https://youtube.com → sign in with your Google account
  3. You can leave Firefox open or closed during merges (Firefox doesn't lock its DB)

Build Steps

  1. Unzip the project folder somewhere convenient
  2. Open the folder in File Explorer
  3. Double-click build.bat — runs through 7 steps:
    • Check Node.js
    • Install Node dependencies
    • Download portable Python (~10MB)
    • Install latest yt-dlp (with EJS plugin for YouTube challenges)
    • Download Deno (~40MB) — JavaScript runtime for YouTube challenge solving
    • Download FFmpeg (~80MB)
    • Build the installer with electron-builder
  4. When done, you'll find the installer at dist\YouTube Merger Setup 1.1.0.exe
  5. Double-click it to install

If the build window closes unexpectedly, run build.bat from a Command Prompt instead (cd to the project folder, then build.bat) — that way you can see any error.


How to Use

1. Paste links

Open the app and paste any number of YouTube links. Format doesn't matter — newlines, commas, spaces all work:

https://www.youtube.com/watch?v=abc123
https://youtu.be/def456
https://www.youtube.com/watch?v=ghi789&list=PL...

Playlist URLs are automatically converted to single-video URLs.

Click Load Videos.

2. Arrange & select

  • Each video appears as a card with thumbnail, title, and duration
  • Uncheck videos to exclude them from the merge
  • Drag cards by the handle to reorder
  • Pick Video or Audio (MP3) format
  • Pick quality
  • Pick save folder (last used is remembered)
  • Pick output filename (no extension — added automatically)

Click Download & Merge.

3. Wait, then enjoy

Watch the progress bar through download → merge → done. When done, you can:

  • Show in Folder — opens the file's location
  • Open File — plays in your default video player
  • New Merge — start over

Troubleshooting

Where to find diagnostic logs

Every run writes a timestamped log to:

%LOCALAPPDATA%\YouTubeMerger\logs\run_YYYYMMDD_HHMMSS.log

To open this folder instantly: press Win + R, paste %LOCALAPPDATA%\YouTubeMerger\logs, hit Enter.

The log contains:

  • Environment info (Python version, yt-dlp version, OS)
  • The complete input job config
  • Every progress event with timestamps
  • Full FFmpeg command line and complete stderr output
  • Python tracebacks for any uncaught exceptions

When something errors out, the error screen shows the exact log path. You can also click "Show full session log" on the error screen to expand a panel with all log lines, and "Copy log" puts the entire session log on your clipboard.

Common errors & fixes

"Sign in to confirm you're not a bot"

  • Cause: yt-dlp couldn't authenticate.
  • Fix: Open Firefox, sign into youtube.com, then try again.

"Could not copy Chrome cookie database" or "DPAPI failed"

  • Cause: Chrome/Edge encrypt cookies in a way yt-dlp can't decrypt (App-Bound Encryption).
  • Fix: Install Firefox and sign into YouTube there. The app prefers Firefox automatically.

"n challenge solving failed" or "Only images are available"

  • Cause: Deno (the JS runtime) isn't being detected.
  • Fix: Verify deno.exe exists at resources\python\python\deno.exe inside the installed app folder. If missing, the build didn't complete — re-run build.bat.

"Requested format is not available"

  • Cause: YouTube didn't return any downloadable formats. Often means yt-dlp needs updating.
  • Fix: Update yt-dlp:
    "C:\Program Files\YouTube Merger\resources\python\python\python.exe" -m pip install --upgrade --pre yt-dlp[default]
    

FFmpeg "Conversion failed" or "Nothing was written into output file"

  • Cause: Usually one input video has unusual audio properties.
  • Fix: The current version handles this automatically by injecting silent audio for missing tracks. If it still fails, check the log file — search for FFMPEG STDERR for the exact error.

Merge takes hours

  • Cause: Software encoding at 4K is genuinely slow on older hardware.
  • Fix: Drop to 1080p — Intel Quick Sync hardware encoding kicks in automatically, ~3-5× faster.

Build fails at "downloading Deno" or "downloading FFmpeg"

  • Cause: Network/firewall blocking github.com downloads.
  • Fix: Check your connection and any corporate firewall.

"Build seems to finish but no installer appears"

  • Check dist\. If you only see win-unpacked\ but no .exe, electron-builder failed at the NSIS step. You can still run the app directly from dist\win-unpacked\YouTube Merger.exe — works exactly the same.

Antivirus warnings about deno.exe

Some antivirus products (AVG, Avast) flag Deno as suspicious because it's an unsigned executable that launches subprocesses. This is a false positive. Deno is a legitimate JavaScript runtime from the original creator of Node.js, downloaded from its official GitHub releases. If your AV quarantines it:

  1. Open AV → Quarantine/Virus Chest → restore deno.exe
  2. Add it to your AV's exception list

Without Deno, YouTube downloads will fail with "n challenge solving failed."


Performance Notes

Quality selection impact

  • "Best available" picks the highest resolution YouTube offers and merges at max input height
  • Specific qualities cap each download at that resolution
  • Lower-res sources can't be magically upscaled

Merge time (approximate, for 30 minutes of total content)

  • 720p: 5-15 min software, 2-5 min with Intel QSV
  • 1080p: 15-30 min software, 5-10 min with Intel QSV
  • 4K: 60-120+ min (no hardware acceleration on most older Intel iGPUs)

Failed videos

Private, deleted, age-restricted, or geo-blocked videos show in red on the preview screen. Proceed without them.

Updates to yt-dlp

YouTube changes things periodically. If downloads start failing months from now, run:

"C:\Program Files\YouTube Merger\resources\python\python\python.exe" -m pip install --upgrade --pre yt-dlp[default]

Project Structure

youtube-merger/
├── src/                    Electron app (UI + IPC)
│   ├── main.js
│   ├── preload.js
│   ├── index.html
│   ├── styles.css
│   └── renderer.js
├── python/
│   ├── worker.py           Download + merge worker
│   └── requirements.txt
├── assets/
│   └── icon.ico
├── build/                  (created during build)
├── dist/                   (created during build) Final installer
├── package.json
└── build.bat               One-click build script

License

MIT.

About

A free Windows desktop app that downloads multiple YouTube videos and merges them into a single MP4 or MP3. Built with Electron + Python + yt-dlp + FFmpeg + Deno. Personal/community use only — not for commercial use.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors