SkillAgentSearch skills...

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/Rapidok
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

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-dlp for 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

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:

  1. Clone the Repository

    git clone https://github.com/miztizm/rapidok
    cd rapidok
    
  2. Create Virtual Environment (Recommended)

    # Create venv
    python -m venv venv
    
    # Activate
    # Windows:
    .\venv\Scripts\activate
    
    # Linux/Mac:
    source venv/bin/activate
    
  3. 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 rapidok command. If running from source, use python run.py instead.

Mode 1: Batch URL Downloads

Download specific videos from a list of URLs:

  1. Create a text file with TikTok URLs (one per line):

    https://www.tiktok.com/@miztizm/video/7271696847486455072
    https://www.tiktok.com/@miztizm/video/7130689108988448006
    
  2. 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 streams
  • audio-only: Downloads only audio posts (rare - pure audio with no images)
  • images-only: Downloads thumbnail images from TikTok photo carousel/slideshow posts
  • all: Downloads everything - videos, images, AND saves metadata JSON
  • metadata-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-only or all content 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
View on GitHub
GitHub Stars15
CategoryContent
Updated12d ago
Forks1

Languages

Python

Security Score

80/100

Audited on Mar 23, 2026

No findings