Obtenga las publicaciones recientes de un usuario de TikTok, incluido el recuento de reproducciones, el recuento de me gusta, el recuento de comentarios, el recuento de acciones compartidas y la descripción del video a través de la API de Scavio a $ 0,005 por página de resultados. Utiliza la paginación max_cursor para buscar más allá de la primera página.
Requisitos previos
- Clave API de Scavio
- sec_uid del usuario objetivo (desde el punto final del perfil)
- Python 3.8+ o Node.js 18+
Guia paso a paso
Paso 1: Obtener el usuario sec_uid
Primero llame al punto final del perfil para obtener el sec_uid necesario para las publicaciones.
import requests, os
HEADERS = {'Authorization': f'Bearer {os.environ["SCAVIO_API_KEY"]}',
'Content-Type': 'application/json'}
profile = requests.post('https://api.scavio.dev/api/v1/tiktok/profile',
headers=HEADERS, json={'username': 'target_user'}).json()
sec_uid = profile['data']['user']['sec_uid']Paso 2: Obtener la primera página de publicaciones
Llame al punto final de usuario/publicaciones con sec_user_id y cuente.
resp = requests.post('https://api.scavio.dev/api/v1/tiktok/user/posts',
headers=HEADERS,
json={'sec_user_id': sec_uid, 'count': 20})
data = resp.json()['data']
for video in data.get('videos', []):
print(f"{video['desc'][:50]} | {video['stats']['playCount']:,} plays")Paso 3: Paginar con max_cursor
Utilice max_cursor de la respuesta para buscar la página siguiente.
if data.get('has_more'):
next_page = requests.post(
'https://api.scavio.dev/api/v1/tiktok/user/posts',
headers=HEADERS,
json={'sec_user_id': sec_uid, 'count': 20,
'max_cursor': data['max_cursor']})
page2 = next_page.json()['data']
print(f'Page 2: {len(page2.get("videos", []))} videos')Ejemplo en Python
import requests, os
HEADERS = {'Authorization': f'Bearer {os.environ["SCAVIO_API_KEY"]}',
'Content-Type': 'application/json'}
def get_all_posts(username, max_pages=5):
profile = requests.post('https://api.scavio.dev/api/v1/tiktok/profile',
headers=HEADERS, json={'username': username}).json()
sec_uid = profile['data']['user']['sec_uid']
videos = []
params = {'sec_user_id': sec_uid, 'count': 20}
for _ in range(max_pages):
resp = requests.post('https://api.scavio.dev/api/v1/tiktok/user/posts',
headers=HEADERS, json=params).json()['data']
videos.extend(resp.get('videos', []))
if not resp.get('has_more'):
break
params['max_cursor'] = resp['max_cursor']
return videos
videos = get_all_posts('target_user')
print(f'Fetched {len(videos)} videos')Ejemplo en JavaScript
const H = {'Authorization': `Bearer ${process.env.SCAVIO_API_KEY}`, 'Content-Type': 'application/json'};
async function getPosts(username, maxPages = 5) {
const profile = await fetch('https://api.scavio.dev/api/v1/tiktok/profile', {
method: 'POST', headers: H, body: JSON.stringify({username})
}).then(r => r.json());
const secUid = profile.data.user.sec_uid;
const videos = [];
let params = {sec_user_id: secUid, count: 20};
for (let i = 0; i < maxPages; i++) {
const r = await fetch('https://api.scavio.dev/api/v1/tiktok/user/posts', {
method: 'POST', headers: H, body: JSON.stringify(params)
}).then(r => r.json());
videos.push(...(r.data.videos || []));
if (!r.data.has_more) break;
params.max_cursor = r.data.max_cursor;
}
return videos;
}
getPosts('target_user').then(v => console.log(`${v.length} videos`));Salida esperada
Array of video objects with description, play count, like count, comment count, share count, and video metadata for each post.