Un programme automatisé de téléchargement de vidéos TikTok basé sur Selenium
Anglais · Chinois (Simplifié) · Français · Espagnol · Allemand
➡️ Découvrez tranzlate sur GitHub un outil pour traduire du texte en utilisant ChatGPT
Le prérequis pour utiliser ce programme est l'installation d'un navigateur Web compatible Selenium. Google Chrome est recommandé.
Installez Python 3 ou une version plus récente depuis python.org
Installez tiktok-uploader
en utilisant pip
pip install tiktok-uploader
L'installation depuis la source permet une plus grande flexibilité pour modifier le code du module afin d'étendre le comportement par défaut.
D'abord, clonez
et naviguez dans le dépôt. Ensuite, installez hatch
, l'outil de construction utilisé pour ce projet 1. Ensuite, build
le projet. Enfin, installez
le projet avec le flag -e
ou éditable.
git clone https://github.com/wkaisertexas/tiktok-uploader.git
cd tiktok-uploader
pip install hatch
hatch build
pip install -e .
tiktok-uploader
fonctionne en dupliquant les cookies de votre navigateur, ce qui trompe TikTok en lui faisant croire que vous êtes connecté sur un navigateur télécommandé.
Utiliser la CLI est aussi simple que d'appeler tiktok-uploader
avec votre vidéos: chemin
(-v), description
(-d) et cookies
(-c)
tiktok-uploader -v video.mp4 -d "c'est ma \"description\" échappée" -c cookies.txt
from tiktok_uploader.upload import upload_video, upload_videos
from tiktok_uploader.auth import AuthBackend
# vidéo unique
upload_video('video.mp4',
description='voici ma description',
cookies='cookies.txt')
# Plusieurs vidéos
videos = [
{
'path': 'video.mp4',
'description': 'voici ma description'
},
{
'path': 'video2.mp4',
'description': 'voici aussi ma description'
}
]
auth = AuthBackend(cookies='cookies.txt')
upload_videos(videos=videos, auth=auth)
Cette bibliothèque tourne autour de la fonction upload_videos
qui prend en entrée une liste de vidéos qui ont des noms de fichier et des descriptions et sont passées comme suit:
from tiktok_uploader.upload import upload_videos
from tiktok_uploader.auth import AuthBackend
videos = [
{
'video': 'video0.mp4',
'description': 'La vidéo 1 parle de ...'
},
{
'video': 'video1.mp4',
'description': 'La vidéo 2 parle de ...'
}
]
auth = AuthBackend(cookies='cookies.txt')
failed_videos = upload_videos(videos=videos, auth=auth)
for video in failed_videos: # chaque objet vidéo d'entrée qui a échoué
print(f'{video['video']} avec la description "{video['description']}" a échoué')
Les mentions et les hashtags fonctionnent maintenant tant qu'ils sont suivis d'un espace. Cependant, vous en tant qu'utilisateur êtes responsable de vérifier qu'une mention ou un hashtag existe avant de poster
Exemple:
from tiktok_uploader.upload import upload_video
upload_video('video.mp4', '#fyp @icespicee', 'cookies.txt')
Pour définir si une vidéo téléchargée permet des recousus, des commentaires ou des duos, il suffit de spécifier comment
, stitch
et/ou duet
comme arguments clés à upload_video
ou upload_videos
.
upload_video(..., comment=True, stitch=True, duet=True)
Les commentaires, recousus et duos sont autorisés par défaut
Pour définir un proxy, cela fonctionne actuellement seulement avec Chrome comme navigateur, autorise l'authentification utilisateur:mot de passe.
# proxy = {'user': 'monutilisateur', 'pass': 'monmotdepasse', 'host': '111.111.111', 'port': '99'} # utilisateur:mot de passe
proxy = {'host': '111.111.111', 'port': '99'}
upload_video(..., proxy=proxy)
La date et l'heure de planification de la vidéo seront traitées avec le fuseau horaire UTC.
La date et l'heure planifiées doivent être d'au moins 20 minutes dans le futur et au maximum de 10 jours.
import datetime
schedule = datetime.datetime(2020, 12, 20, 13, 00)
upload_video(..., schedule=schedule)
L'authentification utilise les cookies de votre navigateur. Cette solution de contournement a été réalisée en raison de la position plus stricte de TikTok sur l'authentification par un navigateur contrôlé par Selenium.
Votre sessionid
est tout ce qui est nécessaire pour l'authentification et peut être passé en argument à presque n'importe quelle fonction
🍪 Obtenez cookies.txt facilite l'obtention des cookies dans un format de cookies NetScape.
Après l'installation, ouvrez le menu d'extensions sur TikTok.com et cliquez sur 🍪 Obtenez cookies.txt
pour révéler vos cookies. Sélectionnez Export As ⇩
et spécifiez un emplacement et un nom pour sauvegarder.
En option, cookies_list
est une liste de dictionnaires avec les clés name
, value
, domain
, path
et expiry
qui vous permettent de passer vos propres cookies de navigateur.
Exemple:
cookies_list = [
{
'name': 'sessionid',
'value': '**votre id de session**',
'domain': 'https://tiktok.com',
'path': '/',
'expiry': '10/8/2023, 12:18:58 PM'
}
]
upload_video(..., cookies_list=cookies_list)
Google Chrome est le navigateur préféré pour TikTokUploader. Les techniques anti-détection par défaut utilisées dans ce package sont optimisées pour cela. Cependant, si vous souhaitez utiliser un autre navigateur, vous pouvez spécifier le navigateur
dans upload_video
ou upload_videos
.
from tiktok_uploader.upload import upload_video
from random import choice
BROWSERS = [
'chrome',
'safari',
'chromium',
'edge',
'firefox'
]
# choisit au hasard un navigateur web
upload_video(..., browser=choice(BROWSERS))
✅ Navigateurs pris en charge:
- Chrome (Recommandé)
- Safari
- Chromium
- Edge
- FireFox
Des modifications par défaut à Selenium sont appliquées qui l'aident à éviter d'être détecté par TikTok.
Cependant, vous pouvez passer des options de configuration de pilote personnalisées. Il suffit de passer options
comme argument clé à upload_video
ou upload_videos
.
from selenium.webdriver.chrome.options import Options
options = Options()
options.add_argument('start-maximized')
upload_videos(..., options=options)
Note: Assurez-vous d'utiliser les bonnes options selenium pour votre navigateur
La navigation sans tête ne fonctionne que sur Chrome. Lors de l'utilisation de Chrome, l'ajout du flag --headless
en utilisant la CLI ou en passant headless
comme argument clé à upload_video
ou upload_videos
est tout ce qui est nécessaire.
upload_video(..., headless=True)
upload_videos(..., headless=True)
WebDriverManager est utilisé pour gérer les versions des pilotes.
Au démarrage initial, il se peut que l'on vous demande d'installer le pilote correct pour votre navigateur sélectionné. Cependant, pour Chrome et Edge, le pilote est automatiquement installé.
-
Exemple de base de téléchargement: Utilise
upload_video
pour faire un seul post. -
Plusieurs vidéos à la fois: Télécharge la même vidéo plusieurs fois en utilisant
upload_videos
. -
Exemple de téléchargement en série: Les vidéos sont lues à partir d'un fichier CSV en utilisant Pandas. Un essai de téléchargement de vidéo est effectué et si et seulement si il est réussi, la vidéo sera marquée comme téléchargée.
Ce bot n'est pas infaillible. Bien que je n'aie pas eu de bannissement officiel, la vidéo échouera à être téléchargée après trop de téléchargements. Dans les tests, attendre plusieurs heures a été suffisant pour résoudre ce problème. Pour cette raison, veuillez penser à cela davantage comme un téléchargeur programmé pour les vidéos TikTok, plutôt que comme un bot de spam.
- @C_Span - Une chaîne à écran partagé avec des jeux mobiles en dessous mettant en vedette des clips de la chaîne YouTube C-Span
- @habit_track - Un bot Reddit pour voir quel SubReddit est le plus viral sur TikTok
Si vous aimez ce projet, veuillez le ⭐ sur GitHub pour montrer votre soutien! ❤️