使用 Node.js 构建 TikTok 趋势追踪器(无需登录)

发布: (2025年12月13日 GMT+8 18:39)
4 min read
原文: Dev.to

Source: Dev.to

封面图片:使用 Node.js 构建 TikTok 趋势追踪器(无需登录)

如果你是创作者或营销人员,“趋势研究”通常意味着在 TikTok 上刷几个小时,然后把这算作工作。

但如果你只需要运行一个脚本,就能得到以下列表呢:

  • 当前最热门的标签。
  • 使用最广的音乐/音效。
  • 当天的爆红创作者。

在本教程中,我们将使用 Node.js 和 SociaVault API 构建一个 TikTok 趋势追踪器

目标

我们希望得到一个命令行工具,输出类似下面的每日报告:

🔥 TOP TRENDING HASHTAGS
1. #fyp (2.1B views)
2. #coding (500M views)
3. #ai (300M views)

🎵 VIRAL MUSIC
1. "Original Sound - User123"
2. "Flowers - Miley Cyrus"

前置条件

第一步:项目初始化

mkdir tiktok-trends
cd tiktok-trends
npm init -y
npm install axios dotenv

创建 .env 文件:

SOCIAVAULT_API_KEY=your_api_key

第二步:获取趋势数据

我们将使用两个强大的接口:

  • /v1/scrape/tiktok/trending – 获取当前趋势信息流。
  • /v1/scrape/tiktok/music/popular – 获取热门音效。

创建 tracker.js

require('dotenv').config();
const axios = require('axios');

const API_KEY = process.env.SOCIAVAULT_API_KEY;
const BASE_URL = 'https://api.sociavault.com/v1/scrape/tiktok';

const headers = {
  Authorization: `Bearer ${API_KEY}`,
};

async function getTrendingFeed() {
  try {
    console.log('📉 Fetching trending feed...');
    const response = await axios.get(`${BASE_URL}/trending`, { headers });
    return response.data.data || [];
  } catch (error) {
    console.error('Error fetching feed:', error.message);
    return [];
  }
}

async function getPopularMusic() {
  try {
    console.log('🎵 Fetching popular music...');
    const response = await axios.get(`${BASE_URL}/music/popular`, { headers });
    return response.data.data || [];
  } catch (error) {
    console.error('Error fetching music:', error.message);
    return [];
  }
}

第三步:分析数据

原始数据量很大,需要提取出有价值的洞察。

function analyzeTrends(videos) {
  const hashtags = {};

  videos.forEach((video) => {
    // Extract hashtags from description
    const tags = video.desc.match(/#[\w]+/g) || [];

    tags.forEach((tag) => {
      hashtags[tag] = (hashtags[tag] || 0) + 1;
    });
  });

  // Sort by frequency and keep top 10
  return Object.entries(hashtags)
    .sort((a, b) => b[1] - a[1])
    .slice(0, 10);
}

第四步:主流程

把所有步骤串起来。

async function main() {
  console.log('🚀 Starting Trend Tracker...\n');

  // 1. Get Data
  const [videos, music] = await Promise.all([getTrendingFeed(), getPopularMusic()]);

  // 2. Analyze Hashtags
  const topTags = analyzeTrends(videos);

  // 3. Print Report
  console.log('\n🔥 TOP TRENDING HASHTAGS (from current feed)');
  console.log('-------------------------------------------');
  topTags.forEach((tag, i) => {
    console.log(`${i + 1}. ${tag[0]} (Found in ${tag[1]} videos)`);
  });

  console.log('\n🎵 VIRAL MUSIC');
  console.log('-------------------------------------------');
  music.slice(0, 5).forEach((song, i) => {
    console.log(`${i + 1}. ${song.title} - ${song.author}`);
  });
}

main();

为什么要使用 API?

TikTok 的网页结构极其难以抓取。它使用:

  • 动态类名(混淆)。
  • 无限滚动。
  • 大量指纹识别。

如果你尝试用 Selenium 或 Puppeteer 抓取,绝大部分时间都会花在修复失效的选择器上。使用 SociaVault 之类的 API 可以让你专注于 数据,而不是抓取基础设施。

进一步扩展

你可以把脚本进一步发展为:

  • 保存到数据库 – 将每日趋势存入 Postgres/Supabase,以便追踪长期变化。
  • 提醒 – 当特定关键词(例如 “crypto”)进入前 10 时,发送 Discord 通知。
  • 内容生成 – 使用 OpenAI 根据热门标签生成视频创意。

祝编码愉快!

Back to Blog

相关文章

阅读更多 »