Skip to content
md ~/projects/youtube-indirici
Project archive

2026

YouTube Downloader

  • Python
  • Tkinter
  • yt-dlp
  • Deno
  • FFmpeg
  • Pillow
  • unittest
  • PyInstaller
  • Inno Setup

Overview

A desktop app built with Python and Tkinter that downloads YouTube videos (MP4), audio (MP3/M4A) and playlists with yt-dlp. It has a queue with thumbnails, quality choice, progress with speed and time left, stopping, automatic link pasting from the clipboard, light/dark themes and a Turkish/English interface. It keeps working after release by updating yt-dlp and the JavaScript runtime YouTube requires from PyPI, verified with SHA-256. Verified by 33 unit tests and shipped as a Windows installer with FFmpeg included.

01 · Problem

Because YouTube changes often, download tools break every few weeks. A desktop downloader frozen at release may already be broken by the time someone installs it, forcing them to wait for a new version and reinstall.

02 · Solution

At startup the app reads the latest yt-dlp version from PyPI's JSON API, downloads the package, verifies its SHA-256 hash and imports it straight from the zip. Deno, which YouTube now requires, arrives the same way. Links are limited to YouTube domains, downloads run in background threads, and technical errors become readable messages.

03 · Outcome

A downloader that can keep working for months without a new release and falls back to its installed version when offline. Real-world cases such as playlists, stopping and cleanup, duplicate titles and region locks are covered by tests. The installer is 78 MB and needs no Python.