Node.js로 TikTok 트렌드 트래커 만들기 (로그인 필요 없음)

발행: (2025년 12월 13일 오후 07:39 GMT+9)
5 min read
원문: Dev.to

Source: Dev.to

TikTok 트렌드 트래커를 Node.js로 구축 (로그인 불필요) 커버 이미지

당신이 크리에이터이든 마케터이든, “트렌드 조사”는 보통 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"

사전 준비

1단계: 프로젝트 설정

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

.env 파일을 생성합니다:

SOCIAVAULT_API_KEY=your_api_key

2단계: 트렌드 가져오기

다음 두 강력한 엔드포인트를 사용할 것입니다:

  • /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 [];
  }
}

3단계: 데이터 분석

원시 데이터는 방대합니다. 여기서 인사이트를 추출합니다.

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

  videos.forEach((video) => {
    // 설명에서 해시태그 추출
    const tags = video.desc.match(/#[\w]+/g) || [];

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

  // 빈도순으로 정렬하고 상위 10개만 남김
  return Object.entries(hashtags)
    .sort((a, b) => b[1] - a[1])
    .slice(0, 10);
}

4단계: 메인 루프

이제 모든 것을 하나로 묶어 보겠습니다.

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

  // 1. 데이터 가져오기
  const [videos, music] = await Promise.all([getTrendingFeed(), getPopularMusic()]);

  // 2. 해시태그 분석
  const topTags = analyzeTrends(videos);

  // 3. 보고서 출력
  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

관련 글

더 보기 »