Un cargador de vídeos de TikTok automatizado basado en Selenium
Inglés · Chino (simplificado) · Francés · Español · Alemán
➡️ Echa un vistazo a tranzlate en GitHub una herramienta para traducir texto usando ChatGPT
Un requisito previo para utilizar este programa es la instalación de un navegador web compatible con Selenium. Se recomienda Google Chrome.
Instale Python 3 o una versión superior desde python.org
Instale tiktok-uploader
usando pip
pip install tiktok-uploader
La instalación desde el código fuente permite una mayor flexibilidad para modificar el código del módulo y ampliar el comportamiento predeterminado.
Primero, clone
y entre en el repositorio. A continuación, instale hatch
, la herramienta de construcción utilizada para este proyecto 1. Luego, construya
el proyecto. Finalmente, instale
el proyecto con el flag "-e" o editable.
git clone https://github.com/wkaisertexas/tiktok-uploader.git
cd tiktok-uploader
pip install hatch
hatch build
pip install -e .
tiktok-uploader
funciona duplicando las cookies de su navegador, lo que engaña a TikTok haciéndole creer que has iniciado sesión en un navegador controlado de forma remota.
El uso de la CLI es tan sencillo como llamar a tiktok-uploader
con la ruta
de tus vídeos (-v), la descripción
(-d) y las cookies
(-c)
tiktok-uploader -v video.mp4 -d "este es mi \"descripción\" escapada" -c cookies.txt
from tiktok_uploader.upload import upload_video, upload_videos
from tiktok_uploader.auth import AuthBackend
# video individual
upload_video('video.mp4',
description='esta es mi descripción',
cookies='cookies.txt')
# Varios vídeos
videos = [
{
'path': 'video.mp4',
'description': 'esta es mi descripción'
},
{
'path': 'video2.mp4',
'description': 'esta es también mi descripción'
}
]
auth = AuthBackend(cookies='cookies.txt')
upload_videos(videos=videos, auth=auth)
Esta biblioteca gira en torno a la función upload_videos
que toma una lista de vídeos que tienen nombres de archivo y descripciones y se pasan de la siguiente manera:
from tiktok_uploader.upload import upload_videos
from tiktok_uploader.auth import AuthBackend
videos = [
{
'video': 'video0.mp4',
'description': 'El vídeo 1 trata sobre ...'
},
{
'video': 'video1.mp4',
'description': 'El vídeo 2 trata sobre ...'
}
]
auth = AuthBackend(cookies='cookies.txt')
failed_videos = upload_videos(videos=videos, auth=auth)
for video in failed_videos: # cada objeto de vídeo de entrada que falló
print(f'{video['video']} con descripción "{video['description']}" falló')
Las menciones y los hashtags ahora funcionan siempre que estén seguidos por un espacio. Sin embargo, usted como usuario es responsable de verificar si una mención o hashtag existe antes de publicar
Ejemplo:
from tiktok_uploader.upload import upload_video
upload_video('video.mp4', '#fyp @icespicee', 'cookies.txt')
Para establecer si un vídeo cargado permite hilos, comentarios o duetos, simplemente especifique comment
, stitch
y/o duet
como argumentos de palabras clave para upload_video
o upload_videos
.
upload_video(..., comment=True, stitch=True, duet=True)
Los comentarios, hilos, y duetos están permitidos por defecto
Para establecer un proxy, actualmente sólo funciona con chrome como navegador, permite autenticación de usuario:pase.
# proxy = {'user': 'miusuario', 'pass': 'micontra', 'host': '111.111.111', 'port': '99'} # usuario:contraseña
proxy = {'host': '111.111.111', 'port': '99'}
upload_video(..., proxy=proxy)
La fecha y la hora programadas para el vídeo se tratarán con la zona horaria UTC.
La fecha y hora programadas deben estar al menos a 20 minutos en el futuro y un máximo de 10 días.
import datetime
schedule = datetime.datetime(2020, 12, 20, 13, 00)
upload_video(..., schedule=schedule)
La autenticación utiliza las cookies de su navegador. Este procedimiento se realizó debido a la postura más estricta de TikTok sobre la autenticación mediante un navegador controlado por Selenium.
Su sessionid
es todo lo que se requiere para la autenticación y puede pasarse como argumento a casi cualquier función
🍪 Obtenga cookies.txt facilita la obtención de cookies en un formato NetScape cookies format.
Después de la instalación, abra el menú de extensiones en TikTok.com y haga clic en 🍪 Get cookies.txt
para revelar sus cookies. Seleccione Exportar como ⇩
y especifique una ubicación y nombre para guardar.
Opcionalmente, cookies_list
es una lista de diccionarios con las claves name
, value
, domain
, path
y expiry
que le permiten pasar sus propias cookies del navegador.
Ejemplo:
cookies_list = [
{
'name': 'sessionid',
'value': '**tu id de sesión**',
'domain': 'https://tiktok.com',
'path': '/',
'expiry': '10/8/2023, 12:18:58 PM'
}
]
upload_video(..., cookies_list=cookies_list)
Google Chrome es el navegador preferido para TikTokUploader. Las técnicas predeterminadas de detección de anti-detección utilizadas en este paquete están optimizadas para esto. Sin embargo, si deseas utilizar un navegador diferente, puedes especificar el navegador
en upload_video
o upload_videos
.
from tiktok_uploader.upload import upload_video
from random import choice
NAVEGADORES = [
'chrome',
'safari',
'chromium',
'edge',
'firefox'
]
# selecciona un navegador web al azar
upload_video(..., browser=choice(NAVEGADORES))
✅ Navegadores admitidos:
- Chrome (Recomendado)
- Safari
- Chromium
- Edge
- FireFox
Se aplican modificaciones predeterminadas a Selenium que ayudan a evitar que sea detectado por TikTok.
Sin embargo, puedes pasar una configuración de controlador personalizada. Simplemente pasa options
como un argumento de palabras clave para upload_video
o upload_videos
.
from selenium.webdriver.chrome.options import Options
options = Options()
options.add_argument('start-maximized')
upload_videos(..., options=options)
Nota: Asegúrate de usar las opciones correctas de selenium para tu navegador
La navegación sin cabeza sólo funciona en Chrome. Al usar Chrome, agregar la bandera --headless
usando la CLI o pasando headless
como un argumento de palabras clave a upload_video
o upload_videos
es todo lo que se requiere.
upload_video(..., headless=True)
upload_videos(..., headless=True)
WebDriverManager se utiliza para administrar las versiones del controlador.
En el inicio inicial, puede que se te pida que instales el controlador adecuado para tu navegador seleccionado. Sin embargo, para Chrome y Edge se instala automáticamente el controlador.
-
Ejemplo básico de carga: utiliza
upload_video
para hacer una publicación. -
Varios vídeos a la vez: sube el mismo vídeo varias veces utilizando
upload_videos
. -
Ejemplo de subida de serie: Los vídeos se leen desde un archivo CSV usando Pandas. Se intenta subir un vídeo y si y sólo si tiene éxito, se marcará el vídeo como subido.
Este bot no es infalible. Aunque no he recibido una prohibición oficial, el vídeo no se cargará después de demasiadas cargas. En las pruebas, esperar varias horas fue suficiente para solucionar este problema. Por esta razón, por favor piensa en esto más como un cargador programado para vídeos de TikTok, en lugar de un bot de spam.
- @C_Span - Un canal de pantalla dividida con juegos móviles abajo que presenta clips del canal de YouTube de C-Span
- @habit_track - Un bot de Reddit para ver qué SubReddit es más viral en TikTok
Si te gusta este proyecto, por favor ⭐ en GitHub para mostrar tu apoyo! ❤️