Rapidok
A robust, concurrent TikTok content downloader built with Python and `yt-dlp`. Download videos, images, and audio with or without watermarks, process multiple URLs simultaneously, and organize downloads automatically by creator.
Install / Use
/learn @miztizm/RapidokREADME
Rapidok
TikTok Content Downloader by miztizm
A robust, concurrent TikTok content downloader built with Python and yt-dlp. Download videos, images, and audio with or without watermarks, process multiple URLs simultaneously, and organize downloads automatically by creator.
🎯 What This Does
This application streamlines the process of downloading TikTok videos for archival, content analysis, or offline viewing. It handles batch downloads efficiently with concurrent processing, intelligent error handling, and automatic organization by TikTok creator username.
Key Capabilities:
- Concurrent Downloads: Process multiple videos simultaneously with configurable worker threads
- Profile Downloader: Download ALL videos from a user's profile with just their username
- Smart Content Filtering: Choose what to download - videos only, images, or everything
- Metadata Extraction: Save comprehensive post information (titles, descriptions, stats) as structured JSON
- Watermark Control: Choose between watermarked or clean versions
- Skip Existing Files: Automatically skip files that have already been downloaded
- Auto-Organization: Videos automatically sorted into folders by creator username and content type
- Archive Tracking: Prevent re-downloading videos you already have
- Image Download: Extract high-quality images from TikTok photo carousel/slideshow posts
- Robust Error Handling: Failed downloads are logged with detailed errors for troubleshooting
- Rich Terminal Output: Beautiful, color-coded CLI with panels, tables, and status indicators
- Modern Backend: Powered by
yt-dlpfor reliable, up-to-date TikTok support
🎮 What You'll Find Here
Technical Features
- Concurrent Processing: Thread-pool executor for parallel downloads
- Format Selection: Intelligent format detection for watermarked/non-watermarked variants
- SSL Handling: Configured for compatibility across different Python/OS environments
- URL Validation: Input sanitization and format checking
- Error Recovery: Graceful degradation with detailed error logging
- Progress Tracking: Real-time download status updates
Use Cases
- Content archival and backup
- Social media research and analysis
- Offline content curation
- Educational resource collection
- Digital preservation
💻 Installation
Requirements
- Python 3.6 or higher: Download Python
- pip (Python package manager)
Method 1: Install from PyPI (Recommended)
Install rapidok directly from PyPI using pip:
pip install rapidok
After installation, you can run the tool using the rapidok command:
# Download from a profile
rapidok --profile username
# Download from URLs
rapidok --links urls.txt
# Show help
rapidok --help
Method 2: Install from Source
If you want to install from source or contribute to development:
-
Clone the Repository
git clone https://github.com/miztizm/rapidok cd rapidok -
Create Virtual Environment (Recommended)
# Create venv python -m venv venv # Activate # Windows: .\venv\Scripts\activate # Linux/Mac: source venv/bin/activate -
Install in Development Mode
pip install -e .Or install dependencies only:
pip install -r requirements.txt # Then run with: python run.py
🚀 Usage
The downloader supports two modes: batch URL downloads and profile downloads!
Note: If you installed via PyPI, use the
rapidokcommand. If running from source, usepython run.pyinstead.
Mode 1: Batch URL Downloads
Download specific videos from a list of URLs:
-
Create a text file with TikTok URLs (one per line):
https://www.tiktok.com/@miztizm/video/7271696847486455072 https://www.tiktok.com/@miztizm/video/7130689108988448006 -
Run the downloader:
rapidok --links urls.txt
Batch Download Options:
# Basic download with safe defaults (2 workers, 2s delay)
rapidok --links urls.txt
# Custom URL file with balanced settings
rapidok --links my_urls.txt --workers 3 --delay 2.5
# Conservative approach for large batches
rapidok --links large_batch.txt --workers 1 --delay 5 --throttle-rate 1M
# Download with watermarks (faster - less format selection)
rapidok --links urls.txt --watermark --workers 2
Mode 2: Profile Downloads
Download content from a TikTok user's profile with powerful filtering options:
# Download videos only (default behavior - skips audio-only posts)
rapidok --profile miztizm
# Download ALL content types (videos, audio, images, metadata)
rapidok --profile miztizm --content-type all
# Download only audio posts (photo slideshows with voiceover)
rapidok --profile miztizm --content-type audio-only
# Download only image posts
rapidok --profile miztizm --content-type images-only
# Extract metadata only (no downloads, just save post info as JSON)
rapidok --profile miztizm --content-type metadata-only
# Combine with other options
rapidok --profile miztizm --content-type all --max-downloads 20 --output-dir my_archive
Content Type Options:
video-only(default): Downloads only actual video posts with video streamsaudio-only: Downloads only audio posts (rare - pure audio with no images)images-only: Downloads thumbnail images from TikTok photo carousel/slideshow postsall: Downloads everything - videos, images, AND saves metadata JSONmetadata-only: Extracts and saves post information without downloading media
How Image Downloads Work: TikTok photo carousel posts (slideshows with background music) don't provide individual images through yt-dlp's standard extraction. Instead, our downloader:
- Detects slideshow posts automatically
- Extracts high-quality thumbnail images from the post metadata
- Saves them as JPG files in the
images/folder - Works with
images-onlyorallcontent type modes
Profile Mode Features:
- ✅ Automatically downloads ALL content from a user's profile
- ✅ Smart filtering by content type (videos, images, audio, or all)
- ✅ Organized folder structure:
miztizm/videos/,miztizm/images/ - ✅ Image extraction from photo carousel/slideshow posts
- ✅ Metadata saved as JSON with post details, stats, timestamps, and thumbnails
- ✅ Archive tracking prevents re-downloading
- ✅ Supports usernames with or without @ prefix
- ✅ Automatic retry and error handling
Output Structure for "all" mode:
downloads/
└── username/
├── videos/
│ ├── 0001_video_title_[id].mp4
│ └── ...
├── images/
│ ├── 0001_photo_carousel_title_[id].jpg
│ └── ...
├── username_metadata.json (comprehensive post information)
└── archive.txt (tracks downloaded items)
Command-Line Options
usage: rapidok [-h] [--links LINKS | --profile PROFILE]
[--no-watermark | --watermark] [--workers WORKERS]
[--output-dir OUTPUT_DIR] [--max-downloads MAX_DOWNLOADS]
[--no-archive] [--content-type {all,video-only,audio-only,images-only,metadata-only}]
Mode Selection (choose one):
--links LINKS Path to .txt file with TikTok URLs for batch download
--profile PROFILE TikTok username to download content from user profile
Common Options:
--no-watermark Download videos without watermarks (Default)
--watermark Download videos with watermarks
--workers WORKERS Number of concurrent downloads for batch mode (Default: 2, Max safe: 5)
--output-dir OUTPUT_DIR
Output directory (Default: downloads)
--max-downloads MAX_DOWNLOADS
Maximum items to download/process (profile mode only)
--no-archive Disable archive tracking (profile mode)
--skip-existing Skip downloading files that already exist
--save-metadata Save detailed metadata for each downloaded item as JSON
Rate Limiting & Safety:
--delay SECONDS Delay between downloads in seconds (Default: 2.0, adds ±50% random jitter)
--min-delay SECONDS Minimum delay between downloads (use with --max-delay for custom range)
--max-delay SECONDS Maximum delay between downloads (use with --min-delay for custom range)
--throttle-rate SPEED Limit download speed (e.g., 500K, 1M, 2M for bytes/sec)
--no-rate-limit ⚠️ DISABLE ALL LIMITS (NOT RECOMMENDED - high risk of IP ban)
Profile Mode Filtering:
--content-type {all,video-only,audio-only,images-only,metadata-only}
Type of content to download (Default: video-only)
- video-only: Only video posts with video streams
- audio-only: Only audio posts (rare - pure audio)
- images-only: Only image posts (photo carousels/slideshows)
- all: Everything (videos + images + metadata JSON)
- metadata-only: Extract post info without downloading media
Examples
Profile Downloads:
# Download all videos from a user (default - video posts only)
rapidok --profile miztizm
# Download latest 20 videos only
rapidok --profile miztizm --max-downloads 20
# Download ALL content types (videos + images + metadata)
rapidok --profile miztizm --content-type all
# Download only image posts (photo carousels/slideshows)
rapidok --profile miztizm --content-type images-only
# Extract metadata only (titles, descriptions, stats) without downloads
rapidok --profile miztizm --content-type metadata-only
# Save detailed metadata JSON files for each download
rapidok --profile miztizm --content-type all --save-metadata
# Skip files that already exist (resume interrupted downloads)
rapidok --profile miztizm --skip-existing
# Download to custom directory without watermarks
rapidok --profile mi
