Skip to content

pratikaher88/SyncPod

Repository files navigation

Syncpod

Syncpod is a YouTube audio downloader that extracts audio from any YouTube video or playlist and saves it as a high-quality MP3. It's built around two modes: a web interface powered by Flask, and a terminal CLI for quick command-line use.

Both modes use the same core download engine under the hood (yt-dlp + ffmpeg), so you get the same 192kbps MP3 output either way.


Web UI

Syncpod Web UI


How it works

Syncpod accepts a YouTube URL, downloads the best available audio stream, and converts it to MP3 using ffmpeg. Files are saved to ~/Downloads by default, or to any path you specify.


How to Use

First, clone the repo and go into the folder:

git clone https://github.com/pratikaher88/SyncPod.git
cd SyncPod

Then follow the Setup steps below to install dependencies and make the syncpod command available.


Mode 1 — Web Interface

Start Syncpod as a local web server:

syncpod --server

Or just run it with no arguments:

syncpod

Then open your browser to:

http://localhost:5000
  1. Paste a YouTube URL into the input field
  2. Optionally enter a custom save path (defaults to ~/Downloads)
  3. Click Download
  4. The page shows a success or error message when the download completes

Good for one-off downloads when you don't want to type in a terminal.


Mode 2 — Terminal (CLI)

Pass a YouTube URL directly as an argument. Syncpod downloads and converts, then exits.

Download a single video to the default folder (~/Downloads):

syncpod "https://www.youtube.com/watch?v=9ZYjf3TC2LU"

Download to a custom folder:

syncpod "https://www.youtube.com/watch?v=9ZYjf3TC2LU" --path ~/Music
syncpod "https://www.youtube.com/watch?v=9ZYjf3TC2LU" -p ~/Music

Download a full playlist:

syncpod "https://www.youtube.com/playlist?list=RDEs4NrOnoNb4"

Show all options:

syncpod --help

Good for scripting, batch work, or when you want something fast without opening a browser.


Setup

1. Clone the repo

git clone https://github.com/pratikaher88/SyncPod.git
cd SyncPod

2. Install Python 3.9+

Check if you already have it:

python3 --version

If not, download it from python.org or via Homebrew:

brew install python

3. Install uv (package manager)

uv is used to manage the virtual environment and dependencies:

curl -LsSf https://astral.sh/uv/install.sh | sh

4. Install ffmpeg

ffmpeg handles the audio conversion to MP3. Install it via Homebrew:

brew install ffmpeg

5. Install Python dependencies

uv sync

This creates a .venv folder and installs everything needed.

6. Make the syncpod command available globally

Add it to your PATH so you can call syncpod from anywhere:

# Add this line to your ~/.zshrc or ~/.bashrc
export PATH="$PWD/bin:$PATH"

Then reload your shell:

source ~/.zshrc

7. Run it

Web interface:

syncpod --server

Then open http://localhost:5000 in your browser.

Terminal:

syncpod "https://www.youtube.com/watch?v=9ZYjf3TC2LU"

Requirements

  • Python 3.9+
  • ffmpeg (audio conversion)
  • uv (dependency management)
  • yt-dlp (YouTube extraction, installed via uv sync)
  • Flask (web server mode, installed via uv sync)

Feature Requests

Have an idea or a feature request? Reach out at pratikaher88@gmail.com.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages