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

당신이 크리에이터이든 마케터이든, “트렌드 조사”는 보통 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"
사전 준비
- Node.js가 설치되어 있어야 합니다.
- SociaVault API 키가 필요합니다.
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를 활용해 트렌딩 해시태그 기반 영상 아이디어 자동 생성
즐거운 코딩 되세요!