flux-tkdl
v1.0.0
Published
Leistungsstarke TikTok Video Downloader Library - ohne Wasserzeichen, komplett in JavaScript
Maintainers
Readme
🎵 TikTok-DL
Leistungsstarke TikTok Video Downloader Library - ohne Wasserzeichen, komplett in JavaScript.
✨ Features
- ✅ Kein Wasserzeichen - Videos ohne TikTok-Logo herunterladen
- ✅ Mehrere APIs - Automatisches Fallback-System (TikWM, SnapTik, TTDownloader)
- ✅ Video-Informationen - Titel, Autor, Stats, Musik-Info
- ✅ HD-Qualität - Beste verfügbare Qualität
- ✅ Musik-Download - Separate Audio-Datei verfügbar
- ✅ Einfache API - Nur wenige Zeilen Code
- ✅ Keine Binaries - Komplett in JavaScript
📦 Installation
npm install tiktok-dlOder lokal:
cd tiktok-dl
npm install🚀 Schnellstart
import TikTokDownloader from 'tiktok-dl';
const downloader = new TikTokDownloader();
// Video-Informationen abrufen
const videoInfo = await downloader.getVideoInfo('https://www.tiktok.com/@username/video/1234567890');
console.log(videoInfo.title);
console.log(videoInfo.author.nickname);
console.log(videoInfo.stats.likes);
// Video herunterladen
await downloader.downloadToFile(
'https://www.tiktok.com/@username/video/1234567890',
'./video.mp4'
);📖 API-Dokumentation
new TikTokDownloader(options)
Erstellt eine neue TikTokDownloader-Instanz.
Options:
timeout(number): Request-Timeout in ms (default: 30000)userAgent(string): Custom User-Agent
const downloader = new TikTokDownloader({
timeout: 60000,
userAgent: 'Custom User Agent'
});getVideoInfo(url)
Ruft Video-Informationen ab.
Parameter:
url(string): TikTok Video URL
Returns: Promise
const info = await downloader.getVideoInfo(url);
// Rückgabe-Objekt:
{
success: true,
source: 'TikWM',
videoId: '1234567890',
title: 'Video Title',
author: {
username: 'username',
nickname: 'Display Name',
avatar: 'https://...'
},
duration: 15,
stats: {
plays: 1000000,
likes: 50000,
comments: 1000,
shares: 500,
downloads: 100
},
music: {
title: 'Song Name',
author: 'Artist Name',
url: 'https://...'
},
cover: 'https://...',
downloadUrls: {
noWatermark: 'https://...',
watermark: 'https://...',
music: 'https://...'
},
createdAt: 1234567890,
region: 'DE'
}downloadVideo(url)
Lädt Video als Buffer herunter.
Parameter:
url(string): TikTok Video URL
Returns: Promise
const buffer = await downloader.downloadVideo(url);downloadToFile(url, outputPath)
Lädt Video direkt in eine Datei.
Parameter:
url(string): TikTok Video URLoutputPath(string): Ausgabe-Dateipfad
Returns: Promise - Dateipfad
await downloader.downloadToFile(
'https://www.tiktok.com/@username/video/1234567890',
'./downloads/video.mp4'
);extractVideoId(url)
Extrahiert Video-ID aus URL.
Parameter:
url(string): TikTok Video URL
Returns: string|null
const videoId = downloader.extractVideoId(url);🔗 Unterstützte URL-Formate
https://www.tiktok.com/@username/video/1234567890https://www.tiktok.com/v/1234567890https://vm.tiktok.com/ABC123https://vt.tiktok.com/ABC123
🎯 Beispiele
Beispiel 1: Video-Info anzeigen
import TikTokDownloader from 'tiktok-dl';
const downloader = new TikTokDownloader();
const info = await downloader.getVideoInfo('https://www.tiktok.com/@username/video/1234567890');
console.log(`📹 ${info.title}`);
console.log(`👤 ${info.author.nickname} (@${info.author.username})`);
console.log(`❤️ ${info.stats.likes.toLocaleString()} Likes`);
console.log(`💬 ${info.stats.comments.toLocaleString()} Comments`);
console.log(`🎵 ${info.music.title} - ${info.music.author}`);Beispiel 2: Video ohne Wasserzeichen herunterladen
import TikTokDownloader from 'tiktok-dl';
import fs from 'fs';
const downloader = new TikTokDownloader();
const url = 'https://www.tiktok.com/@username/video/1234567890';
const info = await downloader.getVideoInfo(url);
if (info.downloadUrls.noWatermark) {
await downloader.downloadToFile(url, `./downloads/${info.videoId}.mp4`);
console.log('✅ Video heruntergeladen!');
} else {
console.log('❌ Kein Download-Link verfügbar');
}Beispiel 3: Musik separat herunterladen
import TikTokDownloader from 'tiktok-dl';
import axios from 'axios';
import fs from 'fs';
const downloader = new TikTokDownloader();
const info = await downloader.getVideoInfo(url);
if (info.downloadUrls.music) {
const response = await axios.get(info.downloadUrls.music, {
responseType: 'arraybuffer'
});
fs.writeFileSync('./music.mp3', Buffer.from(response.data));
console.log('✅ Musik heruntergeladen!');
}Beispiel 4: Batch-Download
import TikTokDownloader from 'tiktok-dl';
const downloader = new TikTokDownloader();
const urls = [
'https://www.tiktok.com/@user1/video/123',
'https://www.tiktok.com/@user2/video/456',
'https://www.tiktok.com/@user3/video/789'
];
for (const url of urls) {
try {
const info = await downloader.getVideoInfo(url);
await downloader.downloadToFile(url, `./downloads/${info.videoId}.mp4`);
console.log(`✅ ${info.title} heruntergeladen`);
} catch (error) {
console.error(`❌ Fehler bei ${url}:`, error.message);
}
}🛠️ API-Quellen
Die Library nutzt mehrere APIs mit automatischem Fallback:
TikWM API (Primär)
- Beste Qualität
- Detaillierte Informationen
- HD-Videos ohne Wasserzeichen
SnapTik API (Fallback)
- Zuverlässig
- Schnell
- Gute Qualität
TTDownloader API (Fallback)
- Backup-Option
- Grundlegende Funktionalität
⚠️ Hinweise
- Rate Limits: APIs haben Rate Limits - nutze Delays bei Batch-Downloads
- Urheberrecht: Respektiere Urheberrechte und TikTok's Terms of Service
- Privatsphäre: Private Videos können nicht heruntergeladen werden
- Verfügbarkeit: APIs können sich ändern - die Library wird regelmäßig aktualisiert
🧪 Tests
npm testOder mit eigener URL:
import TikTokDownloader from './src/index.js';
const downloader = new TikTokDownloader();
const info = await downloader.getVideoInfo('DEINE_URL_HIER');
console.log(info);📝 Lizenz
MIT License - siehe LICENSE
🤝 Beitragen
Pull Requests sind willkommen! Für größere Änderungen öffne bitte zuerst ein Issue.
🔗 Verwandte Projekte
- flux-dl - YouTube, Vimeo & Dailymotion Downloader
📧 Support
Bei Problemen oder Fragen öffne ein Issue auf GitHub.
Made with ❤️ by Lia
