TikTok Shop and viral product videos are the biggest dropshipping channel of 2026, but TikTok blocks direct scrapers aggressively. Google and YouTube index TikTok videos cooperatively, which means you can find trending products via SERP without touching TikTok's API. This tutorial shows how to build a daily TikTok trending-product tracker.
Prerequisites
- Python 3.8+
- A Scavio API key
- A target product category (e.g. 'kitchen gadgets')
Walkthrough
Step 1: Search Google for TikTok videos
Use a site operator to find TikTok videos in your category.
import requests, os
API_KEY = os.environ['SCAVIO_API_KEY']
def tiktok_videos(category):
r = requests.post('https://api.scavio.dev/api/v1/search',
headers={'x-api-key': API_KEY},
json={'query': f'site:tiktok.com {category} viral', 'num_results': 30})
return r.json().get('organic_results', [])Step 2: Cross-reference on YouTube
YouTube often mirrors TikTok trends. Search for product review videos.
def youtube_reviews(category):
r = requests.post('https://api.scavio.dev/api/v1/search',
headers={'x-api-key': API_KEY},
json={'platform': 'youtube', 'query': f'{category} tiktok viral review', 'published_after': '1w'})
return r.json().get('videos', [])[:10]Step 3: Extract product names
Use the video titles and descriptions to extract product names.
def extract_products(items):
product_mentions = []
for item in items:
text = (item.get('title', '') + ' ' + item.get('description', '')).lower()
product_mentions.append(text)
return product_mentionsStep 4: Validate on Amazon
Search each product on Amazon to confirm it is sellable.
def amazon_validate(product):
r = requests.post('https://api.scavio.dev/api/v1/search',
headers={'x-api-key': API_KEY},
json={'platform': 'amazon', 'query': product, 'marketplace': 'US'})
return r.json().get('products', [])[:3]Step 5: Build a daily trending list
Run the full pipeline on a schedule and save to CSV.
import csv
from datetime import date
def run():
category = 'kitchen gadgets'
videos = tiktok_videos(category) + youtube_reviews(category)
with open(f'trends_{date.today()}.csv', 'w') as f:
w = csv.writer(f)
w.writerow(['date', 'title', 'url', 'source'])
for v in videos:
w.writerow([date.today(), v.get('title'), v.get('link') or v.get('url'), 'tiktok' if 'tiktok' in (v.get('link') or v.get('url') or '') else 'youtube'])Python Example
import os, requests, csv
from datetime import date
API_KEY = os.environ['SCAVIO_API_KEY']
def scavio_search(body):
r = requests.post('https://api.scavio.dev/api/v1/search', headers={'x-api-key': API_KEY}, json=body)
return r.json()
def run(category):
tiktok = scavio_search({'query': f'site:tiktok.com {category} viral'}).get('organic_results', [])
youtube = scavio_search({'platform': 'youtube', 'query': f'{category} tiktok viral review'}).get('videos', [])
all_items = tiktok + youtube
for item in all_items[:10]:
product = item.get('title', '')[:60]
amazon = scavio_search({'platform': 'amazon', 'query': product, 'marketplace': 'US'}).get('products', [])
if amazon:
print(f'{product} -> ${amazon[0].get("price", "N/A")} on Amazon')
run('kitchen gadgets')JavaScript Example
const API_KEY = process.env.SCAVIO_API_KEY;
async function scavio(body) {
const r = await fetch('https://api.scavio.dev/api/v1/search', {
method: 'POST',
headers: { 'x-api-key': API_KEY, 'Content-Type': 'application/json' },
body: JSON.stringify(body)
});
return r.json();
}
const category = 'kitchen gadgets';
const tiktok = (await scavio({ query: `site:tiktok.com ${category} viral` })).organic_results || [];
const youtube = (await scavio({ platform: 'youtube', query: `${category} tiktok viral review` })).videos || [];
for (const item of [...tiktok, ...youtube].slice(0, 10)) {
const amazon = (await scavio({ platform: 'amazon', query: item.title?.slice(0, 60), marketplace: 'US' })).products || [];
if (amazon[0]) console.log(`${item.title} -> $${amazon[0].price}`);
}Expected Output
A daily-refreshed list of trending TikTok products with cross-references on YouTube and validated Amazon prices. Dropshippers can identify winners before they saturate.