OpenClaw — TikTok Video Downloader
Vue d'ensemble
OpenClaw permet de télécharger la dernière vidéo (ou plusieurs) d'un compte TikTok public
via yt-dlp. Avant tout code ou exécution, lis cette documentation complète.
Prérequis
Vérifier et installer yt-dlp si nécessaire :
CODEBLOCK0
Types d'opérations
Ce skill supporte quatre types d'opérations. Détermine lesquelles l'utilisateur souhaite :
- 1. Download rapide — Téléchargement de la dernière vidéo d'un compte
- Download multiple — Téléchargement des N dernières vidéos
- Métadonnées seules — Récupérer infos/stats sans télécharger la vidéo
- Vidéo directe — Télécharger depuis une URL de vidéo spécifique
Workflows
1. Download Rapide — Dernière vidéo d'un compte
Quand l'utiliser : L'utilisateur donne un @username ou une URL de profil
Étapes :
- 1. Normaliser le username (supprimer le
@ si présent) - Construire l'URL du profil : INLINECODE1
- Récupérer les métadonnées de la dernière vidéo (
--playlist-items 1 --no-download) - Afficher les infos à l'utilisateur (titre, date, durée)
- Télécharger avec la commande optimale
- Confirmer le succès et donner le chemin du fichier
Commande :
CODEBLOCK1
Vérifier le résultat :
CODEBLOCK2
2. Download Multiple — N dernières vidéos
Quand l'utiliser : L'utilisateur veut plusieurs vidéos (--playlist-items 1-N)
Étapes :
- 1. Demander combien de vidéos (si non précisé, défaut = 5)
- Construire la commande avec INLINECODE4
- Ajouter
--download-archive pour éviter les doublons - Télécharger avec progression
- Lister les fichiers téléchargés
Commande :
CODEBLOCK3
3. Métadonnées seules
Quand l'utiliser : L'utilisateur veut les infos sans télécharger
Lire : references/metadata.md pour les champs disponibles et la commande complète
Commande rapide :
CODEBLOCK4
4. Vidéo directe depuis une URL
Quand l'utiliser : L'utilisateur fournit une URL de vidéo directe
Commande :
CODEBLOCK5
Gestion des erreurs courantes
| Erreur | Cause | Solution |
|---|
| INLINECODE7 | Rate limiting TikTok | Ajouter INLINECODE8 |
| INLINECODE9 |
yt-dlp obsolète |
pip install -U yt-dlp --break-system-packages |
|
Private account | Compte privé | Utiliser
--cookies-from-browser chrome si connecté |
|
No video formats | Géo-restriction | Ajouter
--geo-bypass |
|
Sign in required | Contenu restreint | Fournir cookies via
--cookies cookies.txt |
|
Merge requires ffmpeg | ffmpeg absent |
apt-get install ffmpeg -y |
Normalisation du username
CODEBLOCK6
Fichiers de référence
Charge ces références selon le besoin :
references/metadata.md
- - Quand : Récupération de métadonnées, champs JSON disponibles
- Contient : Tous les champs yt-dlp disponibles, formats de print, export JSON
references/advanced.md
- - Quand : Suppression watermark, cookies, proxy, headers personnalisés
- Contient : Techniques avancées, contournement restrictions, options yt-dlp complètes
KBLICENSE.txt
- - Quand : Questions sur les droits d'utilisation ou les CGU
- Contient : Conditions d'utilisation, usages autorisés et interdits
Directives de sortie
- - Toujours afficher les métadonnées avant le téléchargement (titre, date, durée)
- Confirmer le chemin du fichier téléchargé
- Indiquer la taille du fichier final
- En cas d'erreur, proposer la solution directement
Exemples de requêtes
Download rapide :
- - "Télécharge la dernière vidéo de @lecompte"
- "Récupère le dernier post TikTok de moncompte"
- "Download la dernière vidéo de https://www.tiktok.com/@user"
Download multiple :
- - "Télécharge les 5 dernières vidéos de @user"
- "Récupère les 10 dernières vidéos du compte @toto"
Métadonnées :
- - "Donne-moi les infos de la dernière vidéo de @user"
- "Quel est le titre et la date du dernier post de @compte"
URL directe :
- - "Télécharge cette vidéo TikTok : https://www.tiktok.com/@user/video/123456"
OpenClaw — TikTok视频下载器
概述
OpenClaw可通过yt-dlp下载TikTok公开账号的最新视频(或多个视频)。在执行任何代码前,请先阅读完整文档。
前置条件
检查并按需安装yt-dlp:
bash
pip install -U yt-dlp --break-system-packages 2>/dev/null || pip install yt-dlp
yt-dlp --version
操作类型
本技能支持四种操作类型。请判断用户需要哪种:
- 1. 快速下载 — 下载账号的最新视频
- 批量下载 — 下载最近的N个视频
- 仅获取元数据 — 获取信息/统计数据而不下载视频
- 直接视频 — 从特定视频URL下载
工作流程
1. 快速下载 — 账号的最新视频
使用场景: 用户提供@用户名或个人主页URL
步骤:
- 1. 标准化用户名(如有@则去除)
- 构建个人主页URL:https://www.tiktok.com/@{username}
- 获取最新视频的元数据(--playlist-items 1 --no-download)
- 向用户显示信息(标题、日期、时长)
- 使用最优命令进行下载
- 确认成功并提供文件路径
命令:
bash
yt-dlp \
--playlist-items 1 \
--format bestvideo[ext=mp4]+bestaudio[ext=m4a]/best[ext=mp4]/best \
--merge-output-format mp4 \
--output /home/claude/%(uploaderid)s%(uploaddate)s%(id)s.%(ext)s \
https://www.tiktok.com/@{username}
验证结果:
bash
ls -lh /home/claude/*.mp4
2. 批量下载 — 最近的N个视频
使用场景: 用户需要多个视频(--playlist-items 1-N)
步骤:
- 1. 询问需要下载的视频数量(如未指定,默认=5)
- 使用--playlist-items 1-N构建命令
- 添加--download-archive以避免重复下载
- 显示下载进度
- 列出已下载的文件
命令:
bash
yt-dlp \
--playlist-items 1-{N} \
--format bestvideo[ext=mp4]+bestaudio[ext=m4a]/best[ext=mp4]/best \
--merge-output-format mp4 \
--download-archive /home/claude/tiktok_archive.txt \
--output /home/claude/%(uploaderid)s/%(uploaddate)s_%(id)s.%(ext)s \
https://www.tiktok.com/@{username}
3. 仅获取元数据
使用场景: 用户只想获取信息而不下载
参考: references/metadata.md 获取可用字段和完整命令
快速命令:
bash
yt-dlp \
--playlist-items 1 \
--skip-download \
--write-info-json \
--print %(uploaderid)s | %(uploaddate)s | %(duration)ss | %(view_count)s次观看 | %(title)s \
https://www.tiktok.com/@{username}
4. 从URL直接下载视频
使用场景: 用户提供直接视频URL
命令:
bash
yt-dlp \
--format bestvideo[ext=mp4]+bestaudio[ext=m4a]/best[ext=mp4]/best \
--merge-output-format mp4 \
--output /home/claude/%(uploaderid)s%(id)s.%(ext)s \
{视频URL}
常见错误处理
| 错误 | 原因 | 解决方案 |
|---|
| HTTP Error 403 | TikTok频率限制 | 添加 --sleep-interval 3 --max-sleep-interval 6 |
| Unable to extract |
yt-dlp版本过旧 | pip install -U yt-dlp --break-system-packages |
| Private account | 私密账号 | 如已登录,使用 --cookies-from-browser chrome |
| No video formats | 地域限制 | 添加 --geo-bypass |
| Sign in required | 内容受限 | 通过 --cookies cookies.txt 提供cookies |
| Merge requires ffmpeg | 缺少ffmpeg | apt-get install ffmpeg -y |
用户名标准化
python
接受所有以下格式:
@myaccount → myaccount
myaccount → myaccount
https://www.tiktok.com/@myaccount → myaccount
def normalize(input_str):
if tiktok.com/@ in input_str:
return input_str.split(tiktok.com/@)[-1].split(/)[0]
return input_str.lstrip(@).strip()
参考文件
根据需要加载以下参考文件:
references/metadata.md
- - 场景:获取元数据、可用JSON字段
- 内容:所有可用的yt-dlp字段、打印格式、JSON导出
references/advanced.md
- - 场景:去除水印、cookies、代理、自定义请求头
- 内容:高级技术、绕过限制、完整yt-dlp选项
KBLICENSE.txt
- - 场景:关于使用权限或服务条款的问题
- 内容:使用条件、允许和禁止的用途
输出指南
- - 下载前始终显示元数据(标题、日期、时长)
- 确认下载文件的路径
- 显示最终文件大小
- 如遇错误,直接提供解决方案
请求示例
快速下载:
- - 下载@lecompte的最新视频
- 获取myaccount的最新TikTok帖子
- 下载 https://www.tiktok.com/@user 的最新视频
批量下载:
- - 下载@user最近的5个视频
- 获取@toto账号最近的10个视频
元数据:
- - 给我@user最新视频的信息
- @account最新帖子的标题和日期是什么
直接URL:
- - 下载这个TikTok视频:https://www.tiktok.com/@user/video/123456