CharlesPikachu

videodl

A lightweight, pure-Python video downloader for Windows, macOS and Linux that parses and downloads videos from platforms such as Douyin, Kuaishou, Xiaohongshu, Bilibili, TikTok and YouTube via CLI or Python API, solving cross-platform high-quality video acquisition and batch downloading

checkvideodldaily
Published at
Apr 8, 2026
2,970
Stars
5,194
Download
Synced at
Oct 4, 2026

The author no longer ships through GitHub Releases, but the repository is still active (last push Oct 3, 2026). Get the latest version from: Project homepage

Latest release

checkvideodldailyApr 8, 2026, 03:33 PM
Downloads slow? Switch the source anytime above

README

Project Overview

VideoDL (installed as the videofetch package) is a lightweight video downloader written entirely in Python. It can parse and download videos from a large number of streaming platforms such as Douyin, Kuaishou, Xiaohongshu, Bilibili, TikTok and YouTube, aiming for high-quality, watermark-free results. It works both as a command-line tool and as a Python library that can be embedded into your own scripts. The project is intended for learning and research only, and commercial use is prohibited.

A pure-Python video parser and downloader that covers more than a hundred streaming platforms

Key Features

  • Broad platform support: A large set of platform-specific clients covers Douyin, Kuaishou, Xiaohongshu, Bilibili, Youku, Tencent, iQiyi, MGTV, Migu, YouTube, TikTok, Twitter and more
  • Generic parsers: Many general-purpose parsers let you attempt sites that are not in the dedicated list
  • Two usage modes: Ships both the videodl command-line tool and the videodl.VideoClient Python API
  • Parse then download: Parse a URL into video info, inspect it, and download afterwards
  • Download acceleration: Works with FFmpeg, N_m3u8DL-RE and aria2c for HLS streams, encrypted streams and resumable downloads
  • Flexible configuration: Supports custom headers, proxies, cookies, output directories and per-client thread counts

Target Audience

  • Developers: who need to integrate URL parsing and downloading into their own programs
  • Researchers: who need to collect and organize video data for dataset construction
  • Enthusiasts: who want to save online videos they are permitted to access for offline viewing

Quick Start

  1. Install the package: run pip install videofetch
  2. Install FFmpeg (required for HLS streams); optionally add N_m3u8DL-RE, aria2c, Node.js and Bento4 for extra capability
  3. Download a video directly: run videodl -i "https://www.acfun.cn/v/ac36491489"
  4. Run videodl without -i to enter interactive mode and paste a link at the prompt
  5. Or use Python: videodl.VideoClient().download(video_client.parsefromurl("URL"))

Core Advantages

  • Pure Python: No compilation step and clear dependencies make it easy to read, modify and embed
  • Wide coverage: Dedicated clients plus generic parsers handle more unconventional sites
  • Programmable: Parsing and downloading are decoupled, so workflows can be customized
  • Optional acceleration: External tools can speed up large files and streaming downloads

System Requirements

Item Requirement
OS Windows, macOS or Linux
Runtime Python 3
Architecture Cross-platform (x64 and ARM)
External tools FFmpeg recommended; N_m3u8DL-RE, aria2c, Node.js and Bento4 optional

Notes

  • Learning only: This project is for learning and exchange only; commercial use is prohibited
  • Respect copyright: Make sure you hold a valid membership before downloading paid videos
  • API sources: All APIs come from public networks; contact the author if any content infringes
  • Dependency availability: Without FFmpeg and similar tools, some platforms may fail to parse or download

Release history

Sort