LIVE
Хэштегов: 0 Активных: 0 Запросов: 0 Приложений: 0 --:--:--
Хэштеги / Задачи
📱 Прямые теги приложений 0
⬇️ Сигналы загрузки 0
🤖 AI-инструменты 0
📸 Фото / Видео / Эффекты 0
💘 Отношения / Lifestyle 0
🛍 Шопинг / Продукты 0
🎮 Гейминг / Развлечения 0
💪 Здоровье / Фитнес 0
🔥 Вирусные форматы 0
✏️ Пользовательские 0
Трендовые приложения
0 записей
Системный лог
0
АРХИТЕКТУРА СЕРВИСА МОНИТОРИНГА
Источники API — сравнение
Источник Тип Лимит/сутки Стоимость Share URL
КОД ИНТЕГРАЦИИ — Node.js
1. Зависимости
npm install node-cron axios dotenv pg redis node-telegram-bot-api
2. Конфиг хэштегов (динамически из БД)
// hashtags.config.js — загружается из PostgreSQL + обновляется через UI const GROUPS = { download_signals: ['downloadthisapp','tryit','linkinbio','mustdownload',...], ai_apps: ['aiapp','aifilter','aivideo','chatgptapp',...], viral_signals: ['tiktokmademebuyit','viralapp','gamechangerapp',...], }; async function getActiveHashtags(priority) { const { rows } = await db.query( 'SELECT tag FROM hashtags WHERE active=true AND priority=$1', [priority] ); return rows.map(r => r.tag); }
3. Планировщик + получение share_url (ссылка на видео)
async function fetchByHashtag(hashtag) { const token = await getToken(); const { data } = await axios.post( 'https://open.tiktokapis.com/v2/research/video/query/', { query: { and: [{ operation: 'IN', field_name: 'hashtag_name', field_values: [hashtag] }] }, start_date: daysAgo(1), end_date: today(), max_count: 100, sort_type: '0', // share_url — это прямая ссылка на TikTok видео! fields: 'id,create_time,like_count,view_count,share_count,hashtag_names,video_description,share_url' }, { headers: { Authorization: `Bearer ${token}` } } ); return data.data.videos; } // Построить URL на Discover по хэштегу: const ttDiscoverUrl = tag => `https://www.tiktok.com/discover/${encodeURIComponent(tag)}`; const ttSearchUrl = tag => `https://www.tiktok.com/search?q=%23${encodeURIComponent(tag)}`;
4. Анализатор — определение упоминаний приложений
const APP_SIGNALS = [ /app store/i, /play store/i, /download.*app/i, /link in bio/i, /#(\w+app)\b/, /try.*app/i, /this app/i, /free app/i, /must.*download/i, /you need this/i, /game changer/i, ]; function scoreVideo(video) { const text = `${video.video_description} ${video.hashtag_names.join(' ')}`; const score = APP_SIGNALS.filter(p => p.test(text)).length; const velocity = video.view_count / hoursSince(video.create_time); return { ...video, score, velocity, tiktokUrl: video.share_url, // прямая ссылка на видео discoverUrl: ttDiscoverUrl(video.hashtag_names[0]), }; } async function analyze(videos) { return videos.map(scoreVideo) .filter(v => v.score > 0) .sort((a,b) => b.velocity - a.velocity); }
5. Telegram-алерт со ссылкой на TikTok
async function checkVelocity(apps) { for (const app of apps) { if (app.velocity > 50_000) { await bot.sendMessage(CHAT_ID, `🔥 *ВЗРЫВ ТРЕНДА*\n\n` + `Хэштег: \`${app.hashtag_names[0]}\`\n` + `Views/h: ${app.velocity.toLocaleString()}\n` + `Лайков: ${app.like_count.toLocaleString()}\n\n` + `[▶ Видео на TikTok](${app.share_url})\n` + `[🔍 Discover по тегу](${app.discoverUrl})`, { parse_mode: 'Markdown' } ); } } }