Naučte se, jak stahovat TikTok videa pomocí Pythonu

Naposledy aktualizováno April 14, 2026

TikTok dnes má zhruba a tvůrci na něj každý den nahrají odhadem 23 milionů videí. Pokud jste se někdy pokusili vytáhnout data byť jen z malé části tohohle proudu, přesně víte, jaká je to fuška.

Obvykle to vypadá nějak takhle: zadáte do Googlu „Scrape Tiktok python“ nebo „How to scrape Tiktok videos with python“, zkopírujete kus návodu (nebo si necháte kód napsat ChatGPT), spustíte ho a výsledek? Nic. Prázdné HTML. Chyba 403. Nebo nechvalně známé „Process finished with exit code 0“ bez jediného výstupu. Tenhle scénář jsem viděl v desítkách GitHub issues i Reddit vláken, a právě proto vznikl tenhle průvodce. Projdeme si tři Python metody, které v roce 2025 skutečně fungují, kompletní postup pro stažení reálných souborů .mp4 (ne jen metadat — což je přesně místo, kde většina ostatních návodů končí) a také srovnávací tabulku, abyste si mohli vybrat správný přístup pro svůj use case. Pokud Python vůbec nepotřebujete, ukážu i no-code alternativy jako , se kterými dostanete stejná data zhruba na dvě kliknutí.

Co vlastně znamená „scrapovat TikTok videa“?

Než se pustíme do kódu, je dobré si ujasnit, co tím lidé vlastně myslí — protože to může znamenat dvě dost odlišné věci:

  1. Extrahování metadat videí: popisky, hashtagy, počet lajků, komentářů, sdílení, zhlédnutí, datum zveřejnění, informace o autorovi. Na to se soustředí většina návodů.
  2. Stahování samotných video souborů (.mp4): dostat video přímo do počítače. To je to, co většina lidí ve skutečnosti chce, když píše „scrape TikTok videos“ — a zároveň část, kterou skoro nikdo pořádně neřeší.

Tenhle průvodce pokrývá obojí. Každá z níže uvedených metod umí vytáhnout metadata a zároveň vám dá odkazy ke stažení, které potřebujete pro uložení .mp4 souborů.

Proč scrapovat TikTok videa pomocí Pythonu?

Při a s tím, že TikTok Shop generuje , jsou obchodní důvody pro práci s TikTok daty opravdu silné. Tady jsou nejčastější scénáře, se kterými se setkávám:

| Případ použití | Co scrapujete | Pro koho je to určené | |---|---|---| | Influencer a marketingový průzkum | Míra zapojení, počet sledujících, formáty obsahu, výkon hashtagů | Marketingové týmy, agentury | | Obsahová strategie | Trendující hashtagy, virální formáty videí, frekvence publikování | Tvůrci obsahu, social media manažeři | | Sledování značky | Zmínky, dosah kampaní, nálada publika | Brand manažeři, PR týmy | | Analýza konkurence | Výkon konkurenčních videí, reklamní kreativy, nabídky TikTok Shopu | E-commerce, produktové týmy | | Průzkum trhu | Nové trendy, chování publika, objevování produktů | Analytici, hedge fondy, výzkumné firmy | | Archivace a compliance | Video soubory pro interní kontrolu nebo evidenci | Právní oddělení, compliance, agentury |

Obchodní dopady jsou reálné: příjmy z reklam na TikToku v USA mají v roce 2026 dosáhnout 23,4 miliardy dolarů a affiliatní tvůrci generují v nejlepších kategoriích TikTok Shopu. Pokud děláte v e-commerce nebo influencer marketingu, mají tahle data přímou finanční hodnotu.

Proč váš základní Python kód na TikToku selhává

Pokud jste už zkoušeli něco podobného a nikam jste se nedostali, nejste sami:

1import requests
2from bs4 import BeautifulSoup
3resp = requests.get("https://www.tiktok.com/@someuser")
4soup = BeautifulSoup(resp.text, "html.parser")
5# ...a pak je v HTML k ničemu

Důvod je jednoduchý: TikTok patří mezi nejobtížněji scrapovatelné platformy. Základní requests.get() většinou vrátí jen prázdnou HTML kostru, protože skutečný obsah se v prohlížeči vykresluje přes JavaScript. Kromě toho má TikTok dost agresivní anti-bot ochranu, která zahrnuje detekci chování, TLS fingerprinting, generující podpisy požadavků a dynamické CSS selektory, které se bez varování mění.

tiktok-anti-bot-wall.webp

Podle Imperva 2025 Bad Bot Report v roce 2024 poprvé automatizovaný provoz převýšil lidský — boti dnes tvoří . TikTok si je toho moc dobře vědom a obranu si podle toho nastavil.

Tady je rychlá diagnostická tabulka, která vám pomůže poznat, co je špatně, a hned skočit ke správné metodě:

| Příznak | Pravděpodobná příčina | Metoda, která to řeší | |---|---|---| | Prázdné HTML / žádná data | Obsah vykreslovaný přes JS; requests neumí spouštět JavaScript | Metoda 1 (skryté JSON) nebo Metoda 3 (Playwright) | | 403 / Access Denied | Chybějící nebo špatné hlavičky; detekce botů | Metoda 1 se správnými hlavičkami | | Data fungují jednou a pak přestanou | Rate limiting / blokace IP | Rotace proxy (všechny metody) | | Objeví se login wall | Požadavek na relaci/cookies | Metoda 3 (prohlížeč s uloženou relací) | | Kód z ChatGPT nic nevrací | TikTok se od doby trénovacích dat modelu změnil | Všechny 3 metody (aktuální přístupy) |

Limit rychlosti je zhruba 30–60 požadavků za minutu na jednu IP, než začnou měkké blokace nebo CAPTCHA. Datacentrové IP adresy bývají označeny během několika minut — rezidenční nebo mobilní proxy jsou při větším objemu v podstatě nutnost.

Přehled: 3 metody, jak scrapovat TikTok videa pomocí Pythonu

Tady je mapa postupu. Každá metoda má jiné výhody i nevýhody a u všech uvedu funkční kód:

  1. Extrahování skrytého JSON — zpracování vloženého <script> tagu __UNIVERSAL_DATA_FOR_REHYDRATION__ na stránkách TikToku. Nejrychlejší, nejjednodušší, bez prohlížeče.
  2. Interní API TikToku — přímé volání nezdokumentovaného endpointu /api/post/item_list/ pro hromadná data s cursor-based stránkováním.
  3. Automatizace prohlížeče s Playwrightem — vykreslení stránek v headless prohlížeči pro práci s nekonečným scrollováním, dynamickým obsahem a login wall.

Všechny tři metody lze použít i ke stažení skutečných .mp4 souborů — tomu se věnuji v samostatné části po průchodu metodami. Na konci najdete také kompletní srovnávací tabulku, abyste se mohli rozhodnout informovaně.

Metoda 1: Scrapování TikTok videí pomocí skrytého JSON (vhodné pro začátečníky)

Tohle je přístup, se kterým doporučuji začít. TikTok do téměř každého načtení stránky vkládá obrovský JSON blob do <script> tagu s id __UNIVERSAL_DATA_FOR_REHYDRATION__. Ten obsahuje všechna profilová a video data, která by jinak vykresloval front-end JavaScript — takže je můžete získat jediným HTTP požadavkem, bez prohlížeče.

Co budete potřebovat

  • Python 3.8+
  • requests (nebo httpx)
  • beautifulsoup4 (nebo parsel)
  • Správné hlavičky: User-Agent, Referer, Accept-Language

Instalace závislostí:

1pip install requests beautifulsoup4

Krok za krokem: získání dat o TikTok videu ze script tagu

Krok 1: Odešlete GET požadavek s realistickými hlavičkami prohlížeče.

Tady většina začátečníků selže. Když pošlete čisté requests.get() bez hlaviček, TikTok vrátí 403 nebo stránku s CAPTCHA. Potřebujete minimálně aktuální User-Agent prohlížeče a hlavičku Referer.

1import requests
2from bs4 import BeautifulSoup
3import json
4url = "https://www.tiktok.com/@charlidamelio"
5headers = {
6    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36",
7    "Referer": "https://www.tiktok.com/",
8    "Accept-Language": "en-US,en;q=0.9",
9}
10resp = requests.get(url, headers=headers)

Krok 2: Rozparsujte HTML a najděte hydration script tag.

1soup = BeautifulSoup(resp.text, "html.parser")
2script_tag = soup.find("script", id="__UNIVERSAL_DATA_FOR_REHYDRATION__")

Pokud je script_tag None, TikTok vás buď zablokoval (zkontrolujte status code), nebo změnil ID tagu (vzácné, ale možné).

Krok 3: Načtěte obsah scriptu jako JSON.

1data = json.loads(script_tag.string)

Krok 4: Projděte JSON strukturu a vytáhněte metadata videí.

Struktura je zanořená pod __DEFAULT_SCOPE__. U profilové stránky vypadá přístup takto:

1user_detail = data["__DEFAULT_SCOPE__"]["webapp.user-detail"]
2user_info = user_detail["userInfo"]
3# Statistiky profilu
4stats = user_info["stats"]
5print(f"Followers: {stats['followerCount']}, Likes: {stats['heartCount']}")
6# Seznam videí (první stránka videí)
7item_list = user_detail.get("itemList", [])
8for video in item_list:
9    print(video["desc"])  # Popisek
10    print(video["stats"]["playCount"])  # Zhlédnutí
11    print(video["video"]["playAddr"])  # URL ke stažení videa (bez watermarku)
12    print(video["video"]["downloadAddr"])  # URL ke stažení videa (s watermarkem)

Krok 5: Vytáhněte odkazy ke stažení videa.

Pole playAddr obvykle poskytuje čistší verzi videa (často bez TikTok watermarku), zatímco downloadAddr obsahuje standardní watermark. Oba odkazy vedou přímo na soubor .mp4 — ale pro stažení potřebují specifické hlavičky (viz část o stahování níže).

Teď byste měli mít seznam objektů s metadaty videí, kde je popisek, statistiky, čas vytvoření, hashtagy (v challenges[] a textExtra) i přímé URL na video.

Omezení metody se skrytým JSON

  • Získá data jen z prvního načtení stránky — typicky prvních zhruba 30 videí na profilu
  • Nezvládá nekonečné scrollování ani stránkování (není tam žádná „další stránka“, o kterou by šlo požádat)
  • Když TikTok změní ID script tagu nebo strukturu JSON, parser se rozbije (stává se to pravidelně — pomáhá problém odhalit včas)
  • Nejlepší pro: rychlé scrape profilu, jednorázové stažení dat nebo situace, kdy potřebujete jen nejnovější videa

Metoda 2: Scrapování TikTok videí přes interní API

Front-end TikToku nenačte všechna videa najednou — při scrollování volá interní API endpointy přes XHR. Hlavní endpoint pro uživatelská videa je /api/post/item_list/. Můžete ho volat přímo z Pythonu, získat cursor-based stránkování a přístup ke všem videím na profilu, ne jen na první stránce.

Jak najít endpoint interního API

Otevřete Chrome DevTools na stránce profilu TikToku, přejděte na záložku Network, filtrujte podle XHR a posouvejte stránku dolů. Uvidíte požadavky na URL jako:

1https://www.tiktok.com/api/post/item_list/?WebIdLastTime=...&aid=1988&count=35&cursor=0&secUid=...

Klíčové parametry jsou:

  • secUid — unikátní ID profilu (získáte ho z JSON v metodě 1, pod userInfo.user.secUid)
  • cursor — offset stránkování (začíná na 0, každá odpověď vrátí další hodnotu cursoru)
  • count — počet položek na stránku (obvykle 30–35)

Krok za krokem: dotazování na interní API TikToku v Pythonu

Krok 1: Získejte secUid cílového profilu.

Můžete ho vytáhnout ze skrytého JSON (Metoda 1) nebo z HTML stránky profilu.

Krok 2: Sestavte a odešlete API požadavek.

1import requests
2import json
3sec_uid = "MS4wLjABAAAA..."  # Z Metody 1
4api_url = "https://www.tiktok.com/api/post/item_list/"
5params = {
6    "aid": "1988",
7    "secUid": sec_uid,
8    "count": 35,
9    "cursor": 0,
10}
11headers = {
12    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36",
13    "Referer": "https://www.tiktok.com/",
14}
15resp = requests.get(api_url, params=params, headers=headers)
16data = resp.json()

Krok 3: Zpracujte odpověď.

Každá položka v data["itemList"] obsahuje stejnou video strukturu jako Metoda 1 — desc, stats, video.playAddr, video.downloadAddr atd.

Krok 4: Procházejte všechna videa po stránkách.

1all_videos = []
2cursor = 0
3has_more = True
4while has_more:
5    params["cursor"] = cursor
6    resp = requests.get(api_url, params=params, headers=headers)
7    data = resp.json()
8    items = data.get("itemList", [])
9    all_videos.extend(items)
10    has_more = data.get("hasMore", False)
11    cursor = data.get("cursor", 0)
12    print(f"Načteno {len(items)} videí, celkem: {len(all_videos)}, hasMore: {has_more}")
13print(f"Celkem stažených videí: {len(all_videos)}")

Každá iterace vrátí další dávku a nový cursor. Smyčka pokračuje, dokud hasMore není False.

Omezení metody interního API

  • TikTok tyto endpointy i požadované parametry mění velmi často — jde o metodu s nejvyšší náročností na údržbu. V posledních měsících některé požadavky začaly vyžadovat msToken, X-Bogus nebo jiné podpisové parametry generované vlastním TikToku (spoiler: napodobit to čistě v Pythonu není vůbec triviální).
  • U některých typů dat může být potřeba session cookies nebo další tokeny
  • Stále platí IP rate limiting — doporučuje se rotace proxy
  • Pokud začnou vracet prázdná pole itemList, váš msToken je nejspíš zastaralý (v prohlížeči se obnovuje přibližně každých 10 sekund)
  • Nejlepší pro: hromadné získávání dat, když potřebujete všechna videa z profilu a omezení Metody 1 na první stránku nestačí

Metoda 3: Scrapování TikTok videí s Playwrightem (automatizace prohlížeče)

Když první dvě metody narazí na limity — požadavek na přihlášení, CAPTCHA nebo podpisové parametry, které neumíte napodobit — nastupuje Playwright. Spouští skutečný (headless) prohlížeč, chová se na TikToku jako běžný uživatel a zvládá JavaScriptové vykreslování, nekonečné scrollování i autentizované relace.

Nastavení Playwrightu pro scrapování TikToku

Nainstalujte Playwright a jeho browser binárky:

1pip install playwright
2playwright install firefox

Pro scrapování TikToku doporučuji Firefox před Chromiumem. Testy komunity dlouhodobě ukazují u Firefoxu a TikTok je obzvlášť agresivní vůči headless prohlížečům postaveným na Chromiu.

Pro vyšší míru stealth zvažte kombinaci Playwrightu s (upravený fork Playwrightu) nebo (Firefox upravený na úrovni C++ pro anti-detekci). V dosahuje Camoufox téměř perfektních stealth skóre proti hlavním službám pro detekci botů.

Krok za krokem: scrapování videí z profilu TikToku pomocí Playwrightu

Krok 1: Spusťte headless Firefox a otevřete profil.

1import asyncio
2from playwright.async_api import async_playwright
3import json
4async def scrape_tiktok_profile(username):
5    async with async_playwright() as p:
6        browser = await p.firefox.launch(headless=True)
7        context = await browser.new_context(
8            user_agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:124.0) Gecko/20100101 Firefox/124.0",
9            viewport={"width": 1280, "height": 720},
10        )
11        page = await context.new_page()
12        await page.goto(f"https://www.tiktok.com/@{username}", wait_until="networkidle")

Krok 2: Počkejte, až se načte mřížka videí.

1        # Počkejte, až se objeví položky videí
2        await page.wait_for_selector('[data-e2e="user-post-item"]', timeout=15000)

Pokud TikTok zobrazí překryvnou hlášku „Something went wrong“, možná bude potřeba kliknout na tlačítko retry:

1        retry_btn = page.locator('button:has-text("Retry")')
2        if await retry_btn.count() &gt; 0:
3            await retry_btn.click()
4            await page.wait_for_selector('[data-e2e="user-post-item"]', timeout=15000)

Krok 3: Vytáhněte data ze skrytého JSON (i v Playwrightu).

Nejspolehlivější přístup je pořád načíst hydration JSON, i když používáte prohlížeč:

1        script_el = page.locator("#__UNIVERSAL_DATA_FOR_REHYDRATION__")
2        raw_json = await script_el.inner_text()
3        data = json.loads(raw_json)
4        # Stejná práce s JSON jako v Metodě 1
5        user_detail = data["__DEFAULT_SCOPE__"]["webapp.user-detail"]
6        videos = user_detail.get("itemList", [])

Krok 4: Zvládněte nekonečné scrollování pro více videí.

Pokud potřebujete víc než počátečních zhruba 30 videí, scrollujte dolů a zachytávejte další XHR odpovědi:

1        all_videos = list(videos)
2        # Zachycování API odpovědí při scrollování
3        api_responses = []
4        async def capture_response(response):
5            if "/api/post/item_list" in response.url:
6                try:
7                    body = await response.json()
8                    api_responses.append(body)
9                except:
10                    pass
11        page.on("response", capture_response)
12        # Scrollování dolů pro načtení dalších dat
13        for _ in range(5):  # Podle potřeby upravte počet scrollů
14            await page.evaluate("window.scrollTo(0, document.body.scrollHeight)")
15            await asyncio.sleep(2)
16        # Sběr videí ze zachycených odpovědí
17        for api_resp in api_responses:
18            items = api_resp.get("itemList", [])
19            all_videos.extend(items)
20        print(f"Celkem videí: {len(all_videos)}")
21        await browser.close()
22        return all_videos
23# Spuštění
24videos = asyncio.run(scrape_tiktok_profile("charlidamelio"))

Teď byste měli mít seznam video objektů z prvního načtení stránky i z dalších stránek načtených při scrollování.

Omezení metody Playwright

  • Nejpomalejší metoda ze všech (plné vykreslení stránky, síťová komunikace, prodlevy při scrollování)
  • Vyšší nároky na zdroje — každá browser instance spotřebuje značné množství paměti a CPU
  • I tak je při větším objemu stále možná blokace podle IP — proto kombinujte s rotací proxy
  • Nejlepší pro: složitější interakce, obsah za login wall, řešení CAPTCHA nebo situace, kdy Metody 1 a 2 nefungují

Jak stáhnout TikTok videa (.mp4) pomocí Pythonu

Tohle je část, která chybí v naprosté většině ostatních návodů na TikTok scraping. Extrahování metadat je užitečné, ale většina lidí, kteří hledají „Scrape Tiktok python“, chce skutečné video soubory.

TikTok v datech videa ukládá odkazy na stažení:

  • playAddr — obvykle verze bez watermarku nebo s menším watermarkem
  • downloadAddr — verze, kterou TikTok zamýšlí pro stažení v aplikaci (obsahuje TikTok watermark)

Obě URL jsou časově omezené a po krátké době vyprší (obvykle během několika hodin), takže video musíte stáhnout co nejdřív po jejich získání.

Krok za krokem: stažení video souboru z TikToku

Krok 1: Vytáhněte URL videa pomocí jedné z výše uvedených metod.

1video_url = video["video"]["playAddr"]  # Verze bez watermarku
2# nebo
3video_url = video["video"]["downloadAddr"]  # S watermarkem

Krok 2: Pošlete GET požadavek se správnými hlavičkami.

Tady se lidé často zaseknou. Když prostě zavoláte requests.get(video_url), dostanete 403. TikTok kontroluje hlavičku Referer a očekává User-Agent podobný prohlížeči.

1import requests
2headers = {
3    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36",
4    "Referer": "https://www.tiktok.com/",
5}
6resp = requests.get(video_url, headers=headers, stream=True)

Krok 3: Zapište obsah odpovědi do souboru .mp4.

Použijte stream=True a zapisujte po částech — TikTok videa mohou být velká a nechcete načítat celý soubor do paměti:

1video_id = video["id"]
2filename = f"tiktok_{video_id}.mp4"
3with open(filename, "wb") as f:
4    for chunk in resp.iter_content(chunk_size=1024 * 1024):  # 1MB bloky
5        if chunk:
6            f.write(chunk)
7print(f"Staženo: {filename}")

Teď byste měli mít ve svém počítači přehratelný soubor .mp4.

Stahování s watermarkem vs. bez watermarku

TikTok ukládá u každého videa jak verzi s watermarkem, tak bez něj. Odkaz playAddr často poskytuje čistší verzi (tu, kterou používá přehrávač), zatímco downloadAddr obsahuje standardní TikTok watermark s uživatelským jménem autora.

Krátká poznámka k etice: watermark existuje proto, aby přisuzoval zásluhy tvůrci. Pokud stahujete videa pro výzkum, analýzu nebo interní kontrolu, použití playAddr je obecně v pořádku. Pokud ale obsah dál šíříte nebo znovu zveřejňujete, odstranění atributu tvůrce vyvolává etické i autorskoprávní otázky. Více v právní části níže.

Pro robustnější pipeline ke stahování zvažte — jeho TikTok extractor zvládá výpočet podpisů i řešení URL automaticky, takže nemusíte ručně řešit hlavičky a expiraci tokenů.

Srovnání vedle sebe: Kterou Python metodu byste měli použít?

Tady je srovnávací tabulka, kterou bych si přál mít, když jsem s TikTok scrapingem začínal:

| Kritérium | Metoda 1: Skrytý JSON | Metoda 2: Interní API | Metoda 3: Playwright | |---|---|---|---| | Obtížnost | Začátečník | Střední | Střední | | Rychlost | Rychlá (1 požadavek na stránku) | Rychlá (JSON API) | Pomalá (plné vykreslení stránky) | | Odolnost proti anti-botům | Střední | Nízká (endpointy se mění) | Vysoká (napodobuje skutečný prohlížeč) | | Stahuje video .mp4? | Ano (extrahuje playAddr) | Ano (URL v odpovědi) | Ano (zachycení sítě) | | Zvládá nekonečné scrollování | Ne (jen první stránka) | Ano (cursorové stránkování) | Ano (simulace scrollování) | | Potřebuje proxy ve větším měřítku | Ano | Ano | Ano | | Nároky na údržbu | Střední (mění se JSON struktura) | Vysoké (endpointy a signatury se mění často) | Nízké až střední (prohlížeč se přizpůsobuje) | | Nejlepší pro | Rychlý jednorázový scrape profilu | Hromadné získávání dat, všechna videa | Obsah za login wall nebo složitý obsah |

Moje doporučení:

  • Potřebujete jen rychlý snímek jednoho profilu? Začněte Metodou 1. Nastavení zabere asi 30 sekund a data dostanete do jedné sekundy na stránku.
  • Potřebujete všechna videa z profilu i se stránkováním? Metoda 2 je správná volba, ale počítejte s údržbou, až TikTok změní parametry API.
  • Řešíte login wall, CAPTCHA nebo potřebujete maximální odolnost? Metoda 3 s Playwrightem. Je pomalejší a náročnější, ale pro TikTok je nejtěžší ji zablokovat.

V praxi většinou začínám Metodou 1 a k Metodě 2 nebo 3 přecházím teprve tehdy, když narazím na limity. Udržuje to infrastrukturu jednoduchou a náklady nízké.

Nepotřebujete Python? Scrapujte TikTok videa pomocí no-code nástrojů

Spousta lidí, kteří hledají „How to scrape Tiktok videos with python“, ve skutečnosti Python vůbec nepotřebuje. Potřebují data. Pokud jste marketingový analytik, který chce metadata videí z několika konkurenčních profilů, nebo brand manažer sledující zmínky, nastavovat Python prostředí s rotací proxy a správou podpisů je zbytečně složité.

python-vs-nocode-ai-comparison.webp

Tady je upřímné srovnání přístupů:

| Přístup | Úroveň dovedností | Cena | Údržba | Nejlepší pro | |---|---|---|---|---| | Python (vlastní řešení) | Středně pokročilý a výš | Zdarma (+ náklady na proxy) | Vysoká (skripty se rozbíjejí) | Plná kontrola, vlastní pipeline | | (Chrome extension) | Začátečník | K dispozici je free tier | Žádná (AI vždy čte web znovu) | Rychlá extrakce video dat, export do Sheets/Excelu | | Apify TikTok Scraper | Začátečník | Placené (za běh) | Nízká (spravuje Apify) | Hromadné automatické běhy podle plánu | | TikAPI | Vývojář | Placené předplatné | Střední | Stavba aplikací nad TikTok daty |

Jak Thunderbit řeší scrapování TikToku

je AI web scraper, který jsme vytvořili v Thunderbit, a funguje jinak než klasické scrapingové nástroje. Místo toho, aby se spoléhal na předem připravené CSS selektory nebo XPath pravidla (která se pokaždé rozbijí, když TikTok změní rozložení), Thunderbitova AI si stránku pokaždé přečte znovu a navrhne relevantní sloupce — popisek, lajky, hashtagy, URL videa, autora atd.

Workflow jsou doslova dvě kliknutí:

  1. Otevřete TikTok profil v Chromu, klikněte na rozšíření Thunderbit a dejte „AI Suggest Fields“. Thunderbit projde stránku a navrhne strukturu tabulky.
  2. Zkontrolujte navržené sloupce, případně je upravte, a klikněte na „Scrape“.

Data se exportují přímo do Google Sheets, Excelu, Airtable nebo Notion. Žádné CSS selektory k údržbě, žádné ladění kódu, žádná konfigurace proxy. Pro marketingového analytika, který potřebuje metadata videí z několika profilů, je to měřitelně rychlejší než nastavovat Python prostředí — a nerozbije se to při každé změně front-endu TikToku (což se podle zkušeností komunity děje klidně každých pár týdnů).

Thunderbit navíc podporuje — může navštívit jednotlivé stránky videí a doplnit tabulku o další údaje, jako je přesný počet komentářů, informace o hudbě nebo délka videa.

Vyzkoušet ho můžete zdarma přes . Více o tom, jak funguje, najdete na našem .

Právní a etické mantinely pro scrapování TikToku

Ani jeden z nejvýše hodnocených návodů na tohle téma neřeší legalitu, což je vzhledem k tomu, že TikTok proti scrapingovým službám aktivně podniká právní kroky, dost podstatná mezera. Tady je to, co byste měli vědět.

Podmínky služby TikToku (§ 4.1) výslovně zakazují automatizovaný přístup. Porušení podmínek není trestný čin, ale jde o porušení smluvních podmínek — a může vést k zákazu účtu, blokaci IP nebo občanskoprávnímu řízení.

Právní prostředí je u veřejných dat příznivější, než si mnoho lidí myslí. Klíčovým precedentem je Meta Platforms v. Bright Data (N.D. Cal., leden 2024), kde soud rozhodl, že scrapování veřejně dostupných dat při odhlášení neporušuje podmínky služby Meta. Meta spor stáhla a vzdala se odvolání. Starší rozhodnutí hiQ v. LinkedIn u 9. okruhu (potvrzené po Van Buren) stanovilo, že scrapování veřejně dostupných dat není porušením CFAA — přesto hiQ nakonec spor vyřešila smírem, zaplatila 500 tisíc dolarů a souhlasila s trvalým zákazem, což ukazuje, že vymáhání podmínek služby může být stále problém.

GDPR a CCPA se uplatní, pokud sbíráte osobní údaje uživatelů z EU nebo Kalifornie. Scrapovat veřejné příspěvky je jedna věc; budovat databáze osobních údajů jednotlivých uživatelů je věc druhá.

Praktické zásady:

  • Omezujte rychlost požadavků (nezatěžujte servery TikToku)
  • Nescrapujte soukromé účty ani obsah nezletilých
  • Nešířte komerčně chráněný video obsah
  • Respektujte robots.txt (TikTok většinu automatizovaného crawlování zakazuje)
  • Stažení videí pro osobní výzkum nebo analýzu je něco jiného než jejich znovu nahrávání — rozdíl je důležité chápat

Upozornění: Jde o vzdělávací obsah, ne o právní radu. Pokud stavíte komerční produkt nad scraped TikTok daty, poraďte se s právníkem.

Závěr: hlavní poznatky

TikTok scraping v roce 2025 je pohyblivý cíl. Anti-bot stack téhle platformy patří mezi nejsofistikovanější na webu a naivní přístupy (čisté requests, kusy kódu vygenerované ChatGPT, zastaralé návody) selžou. Ale se správnou metodou je to naprosto proveditelné.

Co si odnést:

  • Metoda 1 (skrytý JSON) je nejrychlejší a nejjednodušší — začněte tady pro rychlý scrape profilu.
  • Metoda 2 (interní API) přidává stránkování a hromadný přístup, ale vyžaduje nejvíc údržby, protože se často mění endpointy i požadavky na podpisy.
  • Metoda 3 (Playwright) je nejodolnější vůči anti-bot opatřením, ale za cenu rychlosti a spotřeby zdrojů.
  • Všechny tři metody umí vytáhnout odkazy ke stažení videí — a tenhle průvodce jako jediný ukazuje, jak skutečně stáhnout .mp4 soubory se správnými hlavičkami.
  • Pro netechnické uživatele nabízí opravdu rychlejší cestu ke stejným datům bez psaní a údržby kódu. Jeho AI přístup znamená, že se nerozbije, když TikTok změní rozložení — což se podle zkušeností komunity děje častěji, než by si kdokoli přál.

Pokud chcete začít bez nastavování Pythonu, — free verze stačí na otestování na několika profilech a zjistíte, jestli vám sedne do workflow. Pokud jdete cestou Pythonu, začněte Metodou 1, ověřte data a pak teprve škálujte.

Chcete jít v technikách web scrapingu ještě hlouběji? Podívejte se na naše průvodce , a .

FAQ

Je legální scrapovat TikTok videa pomocí Pythonu?

Scrapování veřejně dostupných dat se pohybuje v právní šedé zóně, ne v jasně definovaném porušení. Rozhodnutí Meta v. Bright Data (2024) podporuje názor, že scrapování veřejných dat při odhlášení neporušuje podmínky platformy. TikTok ale ve svých podmínkách výslovně zakazuje automatizovaný přístup a na osobní údaje se vztahují povinnosti podle GDPR/CCPA. Není to nelegální tak, jak se toho většina lidí bojí, ale není to ani bezrizikové. Pro váš konkrétní případ se poraďte s právníkem.

Jaká je nejlepší Python knihovna pro TikTok scraping?

Záleží na přístupu. Pro extrakci skrytého JSON (Metoda 1) vám stačí requests + beautifulsoup4. Pro volání interního API (Metoda 2) funguje requests nebo httpx. Pro automatizaci prohlížeče (Metoda 3) je současným standardem playwright — u nových scrapingových projektů už převzal náskok před Selenium, s oproti Selenium s ~53 miliony. Pokud chcete vyšší úroveň abstrakce, stojí za zvážení i obal TikTok-Api (~6,3 tisíce hvězdiček na GitHubu), i když může být křehký.

Můžu pomocí Pythonu stáhnout TikTok videa bez watermarku?

Ano. TikTok ve svých datech obsahuje URL playAddr, která obvykle poskytuje verzi videa bez standardního watermark overlaye. Tenhle průvodce ukazuje, jak tuto URL získat kteroukoli ze tří metod a stáhnout .mp4 soubor se správnými hlavičkami. Pole downloadAddr naopak watermark obsahuje.

Proč můj TikTok scraper vrací prázdná data?

Nejčastější důvod je, že TikTok k vykreslení obsahu potřebuje JavaScript. Základní requests.get() stáhne jen HTML kostru — skutečná data jsou buď ve skrytém JSON script tagu (Metoda 1), nebo se načítají dynamicky přes JavaScript (Metoda 3). Pokud dostáváte prázdné HTML, zkuste nejdřív Metodu 1. Když selže, zkontrolujte hlavičky (chybějící Referer je příčina číslo 1 u 403 chyb), nebo přejděte na Metodu 3 s Playwrightem.

Jak se vyhnout blokaci při scrapování TikToku?

Používejte realistické hlavičky prohlížeče (včetně User-Agent, Referer a Accept-Language), rotujte rezidenční nebo mobilní proxy (datacentrové IP bývají označeny během několika minut), přidávejte náhodné prodlevy mezi požadavky (minimálně 1–3 sekundy) a nescrapujte ve velmi vysokých objemech. Metoda 3 (Playwright) nabízí nejvyšší odolnost vůči blokacím, protože napodobuje skutečnou relaci v prohlížeči. U jakéhokoli vážnějšího objemu je potřeba počítat s náklady na proxy — vstupní rezidenční proxy stojí u hlavních providerů přibližně .

Vyzkoušejte Thunderbit pro TikTok scraping
Shuai Guan
Shuai Guan
Co-founder/CEO @ Thunderbit. Passionate about cross section of AI and Automation. He's a big advocate of automation and loves making it more accessible to everyone. Beyond tech, he channels his creativity through a passion for photography, capturing stories one picture at a time.
Topics
Scrape Tiktok pythonTiktok data extraction pythonPython Tiktok scraper scriptHow to scrape Tiktok videos with python
Obsah

Vyzkoušej Thunderbit

Získej leady a další data jen na 2 kliknutí. Pohání AI.

Získej Thunderbit Je to zdarma
Získej data pomocí AI
Snadno přenes data do Google Sheets, Airtable nebo Notion
PRODUCT HUNT#1 Product of the Week