jsonscraper

Guía de ingeniería de TikTok

Cómo scrapear TikTok con Python

Actualizado el 5 de marzo de 2026 3 min de lectura 12 vistas

Esta guía muestra cómo construir un canal de datos de TikTok sólido con puntos finales de usuario/perfil, rutas de búsqueda y casos de uso de extracción sin marca de agua.

El mapa API de TikTok incluye usuarios, videos, hashtags, ubicación, música, tendencias, efectos y clases de búsqueda. Esto permite que un backend admita flujos de trabajo de análisis, moderación y enriquecimiento al mismo tiempo.

Qué vas a construir

Inicio rápido en Postman

Abre la colección oficial de TikTok, configura license_key y valida las primeras rutas antes de programar.

Paso 1

Hacer fork

Usa la colección de Postman de IG o TikTok como base de tu workspace.

Paso 2

Configurar clave

Configure license_key once in an environment variable.

Paso 3

Automatizar

Exporta snippets o ejecuta flujos con agentes de IA sobre solicitudes preparadas.

Todas las solicitudes API

Mapa completo de endpoints de la colección. Expande cada clase y haz clic en una ruta para ver parámetros y ejemplos de respuesta.

Video Buscar Usuario Hashtag Ubicacion Musica Tendencias Efectos Historias Listas de reproducción En directo
Video (8 endpoints)
Buscar (9 endpoints)
Usuario (15 endpoints)
Hashtag (3 endpoints)
Ubicacion (2 endpoints)
Musica (3 endpoints)
Tendencias (2 endpoints)
Efectos (3 endpoints)
Historias (2 endpoints)
Listas de reproducción (3 endpoints)
En directo (4 endpoints)
Ver la lista completa de puntos finales en Postman

Ejemplos de Python de la colección

Estos ejemplos usan el mismo patrón de autenticación que Postman: license_key en parámetros de consulta.

Example 1: search video by keyword (GET /searchVideo)

import requests

BASE_URL = "https://tiktok.evelode.com/tiktok-api"
LICENSE_KEY = "YOUR_LICENSE_KEY"

params = {
    "license_key": LICENSE_KEY,
    "keyword": "appletv",
    "cache_timeout": 0,
}

r = requests.get(f"{BASE_URL}/searchVideo", params=params, timeout=30)
r.raise_for_status()
data = r.json()

print(data["status"], data.get("tiktok", {}).get("cursor"))
{
  "status": "ok",
  "tiktok": {
    "cursor": 12,
    "aweme_list": []
  }
}

Example 2: get no-watermark URL by video ID (GET /getNoWatermarkUrlByID)

import requests

BASE_URL = "https://tiktok.evelode.com/tiktok-api"
LICENSE_KEY = "YOUR_LICENSE_KEY"

params = {
    "license_key": LICENSE_KEY,
    "video_id": "7106855913906081070",
    "cache_timeout": 0,
}

r = requests.get(f"{BASE_URL}/getNoWatermarkUrlByID", params=params, timeout=30)
r.raise_for_status()
data = r.json()

print(data["status"], data["tiktok"]["id"])
print(data["tiktok"]["url"])

Patrón de solicitudes Python (auth + paginación)

Centraliza la firma de solicitudes y el manejo de cursores para mantener previsibles los flujos de alto volumen.

import requests

BASE_URL = "https://tiktok.evelode.com/tiktok-api"
LICENSE_KEY = "YOUR_LICENSE_KEY"

def call(endpoint: str, **params):
    q = {"license_key": LICENSE_KEY, "cache_timeout": 0, **params}
    r = requests.get(f"{BASE_URL}{endpoint}", params=q, timeout=30)
    r.raise_for_status()
    return r.json()

page1 = call("/getFollowers", query="therock", count=20)
next_cursor = page1.get("tiktok", {}).get("next_cursor")
if next_cursor:
    page2 = call("/getFollowers", query="therock", count=20, cursor=next_cursor)

Notas de implementación

  • Incluye siempre license_key en cada solicitud.
  • Usa cache_timeout de forma explícita para verificaciones recurrentes.
  • Guarda los campos de cursor junto con el contexto de la consulta.
  • Amplía la cobertura de rutas por clases después de validar la base.

¿Listo para lanzar tu flujo API?

Elige una API, prueba endpoints en Postman y lanza tu flujo en minutos.