explaingit

soimort/you-get

56,853PythonAudience · vibe coderComplexity · 2/5ActiveLicenseSetup · moderate

TLDR

Command-line tool to download videos, audio, and images from websites like YouTube, Bilibili, and Niconico by extracting the actual media URLs.

Mindmap

mindmap
  root((you-get))
    What it does
      Download videos
      Download audio
      Download images
      Extract media URLs
    How to use
      Paste URL
      Run command
      Choose quality
      Stream to player
    Supported sites
      YouTube
      Bilibili
      Niconico
      Youku
      Many others
    Tech stack
      Python 3
      FFmpeg optional
      RTMPDump optional
    Use cases
      Offline viewing
      Bulk image download
      Ad-free playback
      Archive content

Things people build with this

USE CASE 1

Download videos from YouTube or Bilibili to watch offline without internet.

USE CASE 2

Bulk-download images from gallery websites and save them locally.

USE CASE 3

Extract and play raw media streams in a standalone player to skip ads.

USE CASE 4

Archive personal or public videos before they are deleted from the original site.

Tech stack

Python 3FFmpegRTMPDump

Getting it running

Difficulty · moderate Time to first run · 30min

Requires FFmpeg and RTMPDump binaries installed on system PATH in addition to Python dependencies.

Use freely for any purpose, including commercial use, as long as you keep the copyright notice and license text.

In plain English

You-Get is a lightweight Python command-line utility for downloading media, videos, audio, and images, from websites when there is no other convenient way to save them locally. You paste a URL from a supported platform like YouTube, Niconico, Bilibili, Youku, or dozens of others, run you-get <url>, and the file is saved to your current directory. The problem it addresses is simple: many websites deliberately prevent you from saving content you are watching, even though nothing technically stops you from doing so. You-Get bypasses this by scraping the page's source, locating the actual media stream URLs that the browser would have fetched anyway, and downloading them directly. How it works is that you-get sends HTTP requests to the target page, parses the HTML and JavaScript to extract video or audio stream URLs, and then downloads those streams to disk. For videos that come in multiple quality levels, you can run you-get -i <url> first to see all available formats and resolutions before choosing which to download. Some sites require authentication (like downloading your own private videos), which you can pass via cookies or login options. You can also stream directly to a media player like mpv or VLC instead of saving to disk. You would use you-get when you want to keep a local copy of a video for offline viewing, when you want to avoid ads by playing the raw stream in a standalone media player, or when you want to bulk-download images from a gallery page. It also handles downloading arbitrary binary files from URLs. The tech stack is Python 3 and it optionally depends on FFmpeg for merging video and audio streams that are delivered separately (common on YouTube) and RTMPDump for flash-based streams. It is distributed via pip and also available via Homebrew on macOS.

Copy-paste prompts

Prompt 1
Show me how to use you-get to download a video from YouTube and choose the best quality before downloading.
Prompt 2
I want to bulk-download all images from a gallery page using you-get. What command should I run?
Prompt 3
How do I set up you-get with FFmpeg so it can merge separate video and audio streams?
Prompt 4
Can you show me how to use you-get to stream a video directly to mpv instead of saving it to disk?
Prompt 5
I need to download a private video that requires login. How do I pass authentication cookies to you-get?
Open on GitHub → Explain another repo

Generated 2026-05-18 · Model: sonnet-4-6 · Verify against the repo before relying on details.