tiktok-live-scraper
v1.0.0
Published
TikTok Live comment scraper and profile monitoring library
Maintainers
Readme
TikTok Live Scraper
A Node.js library for scraping TikTok Live comments and monitoring profile statistics using Puppeteer.
Installation
npm install tiktok-live-scraperFeatures
- 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 secondsProfile 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 secondsAPI
Constructor Options
cookiesPath(string, optional): Path to cookies JSON file. Defaults to./cookies.jsonheadless(boolean, optional): Run browser in headless mode. Defaults totrue
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.
