Skip to content

Latest commit

 

History

37 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

YTm3 — YouTube Audio Converter & Downloader

A lightweight web application to download audio from YouTube videos in maximum available quality. Built with Flask, yt-dlp, and vanilla HTML/CSS/JS.

YTm3 Logo

Features

  • Max Quality Extraction — Automatically streams the highest available bitrate audio from YouTube.
  • MP3 Output — Audio is transcoded to a real MP3 using a bundled FFmpeg binary.
  • Universal Link Support — Videos, shorts, live streams, and music.youtube.com.
  • Audio Preview — Built-in HTML5 player for previewing before download.
  • Download History — Recent conversions saved in browser localStorage.
  • Minimal UI — Clean, light-mode interface.

Architecture

Your Browser  ──►  Flask + yt-dlp  ──►  YouTube
localhost:5000        (runs locally)       Home IP

The entire app runs locally on your machine. When you request a download, the local server extracts and downloads the audio from YouTube with yt-dlp, then streams the finished file to your browser. All YouTube requests originate from your home IP — no cookies, tokens, or cloud accounts required.


Tech Stack

  • Backend: Python, Flask, Flask-CORS, yt-dlp
  • Frontend: HTML5, CSS3, JavaScript (ES6+)
  • Icons & Typography: Font Awesome 6, Google Fonts (Poppins)

Setup

1. Clone and install

git clone https://github.com/aluukill/YTm3.git
cd YTm3
python -m venv venv
venv\Scripts\activate          # Windows
pip install -r requirements.txt

2. Run the app

python app.py

3. Open in your browser

Visit http://localhost:5000 — paste a YouTube URL and download the audio. The app serves both the frontend and the API from the same local server.


API

Method Endpoint Description
GET /api/status Health check
POST /api/info Fetch video metadata (title, author, duration, thumbnail)
POST /api/download Download the audio server-side and register a file token
GET /api/file/<id> Stream the prepared audio (?download=1 forces a download)

The server downloads the audio with yt-dlp (handling YouTube's signature, PO-token, and SABR checks automatically), transcodes it to MP3 with a bundled FFmpeg binary (imageio-ffmpeg), and streams it straight to the browser. No proxying through third parties.


Project Structure

YTm3/
├── app.py              # Flask app: API server, yt-dlp wrapper & static frontend
├── index.html          # Frontend
├── style.css           # Styles
├── script.js           # Client-side logic
├── logo.png            # Logo
├── requirements.txt    # Python dependencies
├── .gitignore
└── README.md

License

MIT

About

YTm3 — High-quality YouTube to MP3 converter. Extract 320kbps MP3 audio from videos, Shorts & streams. Built with Flask, yt-dlp & FFmpeg — fast, private, no registration.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Contributors

Languages