
Extraer y descargar publicaciones de videos de TikTok y metadatos de perfiles de usuario, hashtags y tendencias sin autenticación. Produce archivos JSON, CSV y ZIP.
Extrae y descarga información útil de TikTok.
No se requiere inicio de sesión ni contraseña.
Esto no es un soporte de API oficial, etc. Esto es solo un scraper que utiliza la API web de TikTok para extraer contenido multimedia.
Nota:
Publicaciones - salida JSON/CSV:
id: '6748606789551410438',
text:'TEXTO',
createTime: '1571282470',
authorId: '123123',
musicId: '123123',
videoUrl: 'URL_VIDEO',
diggCount: 485,
shareCount: 1,
commentCount: 24

Posibles errores
tiktok-scraper requiere Node.js v8.6.0+ para funcionar.
Instalar desde NPM
$ npm i -g tiktok-scraper
Instalar desde YARN
$ yarn global add tiktok-scraper
$ tiktok-scraper --help
Uso: tiktok-scraper <comando> [opciones]
Comandos:
tiktok-scraper user [id] Extraer videos de un nombre de usuario. Ingresa solo el nombre de usuario
tiktok-scraper hashtag [id] Extraer videos de un hashtag. Ingresa el hashtag sin #
tiktok-scraper trend Extraer publicaciones de las tendencias actuales
Opciones:
--help, -h ayuda [booleano]
--version Muestra el número de versión [booleano]
--number, -n Número de publicaciones a extraer. Si estableces 0, se
extraerán todas las publicaciones [por defecto: 20]
--proxy, -p Establecer proxy [por defecto: ""]
--timeout Si recibes un error de 'límite de tasa', puedes intentar
establecer un tiempo de espera. Timeout en mls: 1000 mls = 1 segundo
[por defecto: 0]
--download, -d Descargar y archivar todos los videos extraídos en un archivo ZIP
[booleano] [por defecto: false]
--filepath Directorio para guardar todos los archivos de salida.
[por defecto: "/Users/jackass/Documents/lang/NodeJs/tiktok-scraper"]
--filetype, --type, -t Tipo de archivo de salida donde se guardará la información de la publicación.
'all' - guardar información de todas las publicaciones en un
'json' y 'csv'
[opciones: "csv", "json", "all"] [por defecto: "csv"]
Ejemplos:
tiktok-scraper user USERNAME -d -n 100
tiktok-scraper hashtag NOMBRE_HASHTAG -d -n 100
tiktok-scraper trend -d -n 100
Ejemplo 1: Extraer 300 publicaciones de video del usuario {USERNAME}. Guardar la información de las publicaciones en un archivo CSV (por defecto)
$ tiktok-scraper user USERNAME -n 300
Salida:
Ruta CSV: /{RUTA_ACTUAL}/user_1552945544582.csv
Ejemplo 2: Extraer 100 publicaciones del hashtag {NOMBRE_HASHTAG}, descargarlas y guardarlas en un archivo ZIP. Guardar la información de las publicaciones en archivos JSON y CSV (--filetype all)
$ tiktok-scraper hashtag NOMBRE_HASHTAG -n 100 -d -t all
Salida:
Ruta ZIP: /{RUTA_ACTUAL}/hashtag_1552945659138.zip
Ruta JSON: /{RUTA_ACTUAL}/hashtag_1552945659138.json
Ruta CSV: /{RUTA_ACTUAL}/hashtag_1552945659138.csv
Ejemplo 3: Extraer 50 publicaciones de la sección de tendencias, descargarlas en un ZIP y guardar la información en un archivo CSV
$ tiktok-scraper trend -n 50 -d -t csv
Salida:
Ruta ZIP: /{RUTA_ACTUAL}/trend_1552945659138.zip
Ruta CSV: /{RUTA_ACTUAL}/tend_1552945659138.csv
Para que se vea mejor, al descargar publicaciones se mostrará el progreso en la terminal
Descargando 6750670497744309509 [==============================] 100%
Descargando 6749962264020782342 [==============================] 100%
Descargando 6749433991113264390 [==============================] 100%
Descargando 6750671571968429318 [==============================] 100%
Descargando 6750668198011505926 [==============================] 100%
Descargando 6748611221903117574 [==============================] 100%
Descargando 6748606789551410438 [==============================] 100%
Descargando 6748139550251535621 [==============================] 100%
Descargando 6748616311166799110 [==============================] 100%
Descargando 6748048372625689861 [==============================] 100%
const TikTokScraper = require('tiktok-scraper');
let options = {
number: 100,
};
(async () => {
try{
let posts = await TikTokScraper.user({USERNAME}, options);
console.log(posts)
} catch(error){
console.log(error)
}
})()
Promise devolverá el resultado actual
{
collector:[ARRAY_DE_DATOS]
//Si {filetype} y {download} están habilitados, entonces:
zip: '/{RUTA_ACTUAL}/user_1552963581094.zip',
json: '/{RUTA_ACTUAL}/user_1552963581094.json',
csv: '/{RUTA_ACTUAL}/user_1552963581094.csv'
}
const TikTokScraper = require('tiktok-scraper');
let options = {
count: 100,
event: true, // Habilita el emisor de eventos, no podrás usar promesas
};
let posts = TikTokScraper.user({USERNAME}, options);
posts.on('data', (json) => {
//datos en formato JSON
})
posts.on('done', () => {
//completado
})
posts.on('error', (error) => {
//mensaje de error
})
Funciones
.user(id, options) //Extraer publicaciones de un usuario específico
.hashtag(id, options) //Extraer publicaciones de la sección de hashtag
.trend('', options) // Extraer publicaciones de la sección de tendencias
Opciones
let options = {
// Número de publicaciones a extraer: {int por defecto: 20}
number: 50,
// Establecer proxy, ejemplo: 127.0.0.1:8080: {string por defecto: ''}
proxy: '',
// Habilitar o deshabilitar el emisor de eventos. Si es true, puedes aceptar datos a través de eventos: {boolean por defecto: false}
event: false,
// Tiempo de espera entre solicitudes. Si se recibe un error de 'límite de tasa', esta opción puede ser útil: {int por defecto: 0}
timeout: 0
// Descargar publicaciones o no. Si es true, se creará un archivo ZIP en {filepath}: {boolean por defecto: false}
download: false,
// Cuántas publicaciones deben descargarse de forma asíncrona. Solo si {download:true}: {int por defecto: 5}
asyncDownload: 5,
// Ruta de archivo donde se guardarán todos los archivos: {string por defecto: 'DIRECTORIO_ACTUAL'}
filepath: `DIRECTORIO_ACTUAL`,
};
MIT
Software Libre