npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

flux-tkdl

v1.0.0

Published

Leistungsstarke TikTok Video Downloader Library - ohne Wasserzeichen, komplett in JavaScript

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-dl

Oder 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 URL
  • outputPath (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/1234567890
  • https://www.tiktok.com/v/1234567890
  • https://vm.tiktok.com/ABC123
  • https://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:

  1. TikWM API (Primär)

    • Beste Qualität
    • Detaillierte Informationen
    • HD-Videos ohne Wasserzeichen
  2. SnapTik API (Fallback)

    • Zuverlässig
    • Schnell
    • Gute Qualität
  3. 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 test

Oder 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