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 🙏

© 2025 – Pkg Stats / Ryan Hefner

tiktok-live-scraper

v1.0.0

Published

TikTok Live comment scraper and profile monitoring library

Readme

TikTok Live Scraper

A Node.js library for scraping TikTok Live comments and monitoring profile statistics using Puppeteer.

Installation

npm install tiktok-live-scraper

Features

  • Scrape live comments from TikTok Live streams
  • Monitor profile statistics (followers, following, videos, reposts)
  • Fetch following and followers lists
  • Cookie-based authentication
  • Headless browser support

Usage

Basic Example

const TikTokScraper = require('tiktok-live-scraper');

async function main() {
    const scraper = new TikTokScraper({
        cookiesPath: './cookies.json', // Optional, defaults to ./cookies.json
        headless: true // Optional, defaults to true
    });

    await scraper.init();

    try {
        // Load a TikTok Live URL
        await scraper.loadUrl('https://www.tiktok.com/@username/live');

        // Wait for page to load
        await new Promise(resolve => setTimeout(resolve, 3000));

        // Scrape comments
        const comments = await scraper.scrapeComments();
        console.log('Comments:', comments);

        // Load a profile URL
        await scraper.loadUrl('https://www.tiktok.com/@username');

        // Wait for page to load
        await new Promise(resolve => setTimeout(resolve, 3000));

        // Scrape profile stats
        const stats = await scraper.scrapeProfileStats();
        console.log('Profile Stats:', stats);

        // Get following list
        const following = await scraper.scrapeFollowingList();
        console.log('Following:', following);

        // Get followers list
        const followers = await scraper.scrapeFollowersList();
        console.log('Followers:', followers);

    } finally {
        await scraper.close();
    }
}

main().catch(console.error);

Monitoring Live Comments

const scraper = new TikTokScraper();
await scraper.init();

await scraper.loadUrl('https://www.tiktok.com/@username/live');

// Monitor comments in a loop
setInterval(async () => {
    const comments = await scraper.scrapeComments();
    comments.forEach(comment => {
        console.log(`@${comment.username}: ${comment.text}`);
    });
}, 5000); // Check every 5 seconds

Profile Monitoring

const scraper = new TikTokScraper();
await scraper.init();

await scraper.loadUrl('https://www.tiktok.com/@username');

setInterval(async () => {
    const stats = await scraper.scrapeProfileStats();
    console.log(`Followers: ${stats.followers}`);
    console.log(`Following: ${stats.following}`);
    console.log(`Videos: ${stats.videos}`);
    console.log(`Reposts: ${stats.reposts}`);
}, 10000); // Check every 10 seconds

API

Constructor Options

  • cookiesPath (string, optional): Path to cookies JSON file. Defaults to ./cookies.json
  • headless (boolean, optional): Run browser in headless mode. Defaults to true

Methods

async init()

Initialize the browser and inject cookies. Must be called before using other methods.

async loadUrl(url)

Navigate to a TikTok URL. Supports both live streams and profile pages.

async scrapeComments()

Scrape comments from the current TikTok Live stream. Returns an array of comment objects:

{
    username: string,
    displayName: string,
    text: string,
    timestamp: string (ISO format)
}

async scrapeProfileStats()

Scrape profile statistics. Returns an object:

{
    followers: number | null,
    following: number | null,
    videos: number | null,
    reposts: number | null,
    repostData: array
}

async scrapeFollowingList()

Get the list of users the profile is following. Returns an array:

[{
    username: string,
    nickname: string
}]

async scrapeFollowersList()

Get the list of followers for the profile. Returns an array:

[{
    username: string,
    nickname: string
}]

async fetchUserProfile(username)

Fetch a user profile by username. Returns:

{
    username: string
}

async close()

Close the browser and clean up resources.

Cookies

The library requires TikTok authentication cookies to access live streams and profiles. Create a cookies.json file with your TikTok cookies in the following format:

[
    {
        "domain": ".tiktok.com",
        "name": "sessionid",
        "value": "your-cookie-value",
        "path": "/",
        "secure": true,
        "httpOnly": true,
        "expirationDate": 1234567890
    }
]

You can export cookies from your browser using browser extensions or manual export.

Requirements

  • Node.js 14.0.0 or higher
  • TikTok account with valid authentication cookies

License

MIT

Disclaimer

This library is for educational purposes only. Please respect TikTok's Terms of Service and use responsibly.