Skip to main content

TikTok Feed Harvester & Fast Downloader

A high-performance automated script for Windows designed to intercept and download videos from your TikTok "For You" Page (FYP) in original quality, watermark-free, utilizing your active session, and in the universally compatible H.264 (AVC) + AAC format.


Prerequisites

Before getting started, make sure your computer meets the following requirements:

  1. Windows 10 or 11 (64-bit).
  2. Python 3.10 or higher (compatible with Python 3.11, 3.12, and 3.13).
    • When installing Python, make sure to check the box that says "Add python.exe to PATH" on the first setup screen.
  3. Google Chrome installed officially on your system.

Project Structure

Your project directory (e.g., D:\tiktok extractor\) should be organized as follows:

tiktok extractor/
│
├── user.py                     # Main capture and download script
├── requirements.txt            # Python dependencies list
├── update_dependencies.bat     # 1-click dependency installer/updater
├── setup_login.py              # One-time login helper script
├── config.json                 # Configuration file (auto-generated on first run)
├── videos.txt                  # Temporary file storing extracted URLs
└── perfil_navegador/           # Persistent folder storing your Chrome session

Step 1: Install Dependencies

  1. Open the project folder.
  2. Double-click the file update_dependencies.bat.
  3. A command prompt window will open and automatically execute:
    • Upgrading the pip package manager.
    • Installing yt-dlp, playwright, and curl_cffi.
    • Downloading the Chromium browser binaries for Playwright.
  4. When it completes and displays ALL DEPENDENCIES INSTALLED AND UPDATED SUCCESSFULLY!, press any key to close the window.

Step 2: One-Time Session Setup (Login)

To allow the program to access your personalized "For You" feed, it must use your active account. To prevent Google from blocking your login with the "This browser or app may not be secure" error, a native launch setup is used:

  1. Create a file named setup_login.py in the project folder with the following content:
import os
import subprocess
import sys

CARPETA_SESION = os.path.abspath("./perfil_navegador")
os.makedirs(CARPETA_SESION, exist_ok=True)

chrome_paths = [
    os.path.expandvars(r"%ProgramFiles%\Google\Chrome\Application\chrome.exe"),
    os.path.expandvars(r"%ProgramFiles(x86)%\Google\Chrome\Application\chrome.exe"),
    os.path.expandvars(r"%LocalAppData%\Google\Chrome\Application\chrome.exe"),
]

chrome_exe = next((p for p in chrome_paths if os.path.exists(p)), None)

if not chrome_exe:
    print("Error: Google Chrome was not found on your system.")
    sys.exit(1)

print("Launching Google Chrome for session setup...")
print("1. Log in to Google and TikTok in the browser tabs that will open.")
print("2. Once your TikTok account is visible and active, simply CLOSE the Chrome window.")

process = subprocess.Popen([
    chrome_exe,
    f"--user-data-dir={CARPETA_SESION}",
    "--no-first-run",
    "https://accounts.google.com",
    "https://www.tiktok.com/login"
])
process.wait()
print("Session successfully saved to ./perfil_navegador!")
  1. Close all existing Google Chrome windows running on your PC.
  2. Open a terminal in the project directory and run:
    python setup_login.py
    
  3. A fresh Chrome window will launch:
    • In the first tab, sign in to your Google account.
    • In the second tab, click "Continue with Google" on TikTok (it will sign in automatically).
  4. Close the Chrome window using the red "X" button.
  5. Your session is now securely saved in perfil_navegador, and you will not need to sign in again.

Step 3: Configuration (config.json)

The first time you run user.py, it will automatically create config.json. You can open it in Notepad to customize your settings:

{
    "download_path": "D:\\tiktok extractor\\TikTok_Downloads",
    "video_count": 10,
    "concurrent_downloads": 6
}
  • download_path: The folder where downloaded videos will be stored (you can set any valid directory path).
  • video_count: The number of videos you want to harvest from your feed per execution.
  • concurrent_downloads: How many videos are downloaded simultaneously in parallel (recommended range: 4 to 8).

Step 4: Running the Program

Whenever you want to download videos:

  1. Open your terminal in the project folder.
  2. Run:
    python user.py
    
  3. The program will:
    • Launch Chrome in the background with your saved session.
    • Block on-screen images and video playback to save network bandwidth.
    • Intercept your "For You" network feed packets.
    • Download videos concurrently in real time while it continues to scroll.
    • Automatically truncate videos.txt upon completion and notify you in the console.

FAQ & Troubleshooting

1. Why do I see a "Database is locked" error or Chrome fails to open?

Make sure you do not have another Google Chrome window open using the same profile folder (perfil_navegador) before launching the script.

2. Do the downloaded videos have watermarks?

No. yt-dlp extracts the clean, original-quality media streams directly from ByteDance/TikTok content delivery networks.

3. How do I download from a specific creator profile instead of my "For You" feed?

In user.py, find the following line:

page.goto("https://www.tiktok.com/foryou")

And replace it with the desired profile URL:

page.goto("https://www.tiktok.com/@username")

Metadata

Release files for TikPipe 1.0.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for TikPipe 1.0.1
File Size Uploaded Provenance Actions
tikpipe-1.0.1.tar.gz 6.6 kB Without provenance Details for tikpipe-1.0.1.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for TikPipe 1.0.1
File Interpreter ABI Platform Actions
tikpipe-1.0.1-py3-none-any.whl Python 3 none any Details for tikpipe-1.0.1-py3-none-any.whl

Total release size: 13.9 kB

Release files / tikpipe-1.0.1.tar.gz

Download URL tikpipe-1.0.1.tar.gz
Size 6.6 kB
Tags Source
SHA-256 checksum
How to use checksums
c298c839f56f250d2885852a120632f1102c02105d4d456730d4406d238227f9
BLAKE2b-256 checksum
How to use checksums
24d644c663234a761b32cc11912ab0d03929043a619455ca5a9de80edefff2c9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.2

Release files / tikpipe-1.0.1-py3-none-any.whl

Download URL tikpipe-1.0.1-py3-none-any.whl
Size 7.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
47cfe48d94a66dc06f55070448f2e734a018bd0d7c083b0e49145d9cbbe65289
BLAKE2b-256 checksum
How to use checksums
de8e5437b68268482b34ad67dee8fab936e9f8d48d13f1031b0bf25fddea8871
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.2

Security for TikPipe 1.0.1

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page