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:
- Windows 10 or 11 (64-bit).
- 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.
- 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
- Open the project folder.
- Double-click the file
update_dependencies.bat. - A command prompt window will open and automatically execute:
- Upgrading the
pippackage manager. - Installing
yt-dlp,playwright, andcurl_cffi. - Downloading the Chromium browser binaries for Playwright.
- Upgrading the
- 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:
- Create a file named
setup_login.pyin 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!")
- Close all existing Google Chrome windows running on your PC.
- Open a terminal in the project directory and run:
python setup_login.py
- 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).
- Close the Chrome window using the red "X" button.
- 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:
- Open your terminal in the project folder.
- Run:
python user.py
- 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.txtupon 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.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| tikpipe-1.0.2.tar.gz | 7.3 kB | Without provenance | Details for tikpipe-1.0.2.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| tikpipe-1.0.2-py3-none-any.whl | Python 3 | none | any | Details for tikpipe-1.0.2-py3-none-any.whl |
Total release size: 15.3 kB
Release files / tikpipe-1.0.2.tar.gz
| Download URL | tikpipe-1.0.2.tar.gz |
|---|---|
| Size | 7.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
7afa524a42f5f9af3e128015571dc498e08320eefa084cdf9b4dec04cce127db
|
|
BLAKE2b-256 checksum How to use checksums |
9543e1ae7ccb4258d40a79246c356127ef984834aff2b1e63fe31be4102226bb
|
| 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.2-py3-none-any.whl
| Download URL | tikpipe-1.0.2-py3-none-any.whl |
|---|---|
| Size | 8.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
6fc4d470ca447c922d19b2e5e7cb5a7f8e3fbd50a4785a65e4f3588cddd8d539
|
|
BLAKE2b-256 checksum How to use checksums |
d03624d335fbfa0e9c680d498dd440d81cc6a877e9f75433239f73ef8d992a57
|
| 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.2
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.