jsonscraper
Piyasalar

TikTok’ta Herkese Açık Videolarla Potansiyel Müşteri Kalitesi Nasıl Değerlendirilir: Python İş Akışı

Anahtar kelimelerle örneklem oluşturun, olası talep sinyallerini belirleyin ve doğrulanabilir verileri bir analiste veya yapay zekâ sınıflandırıcısına aktarın

Yayın Politikası Hata bildirin

Satış ekibi, farklı kanallardan tekrar tekrar aynı soruyu alıyor: Potansiyel müşteriler hangi sorunları çözmeye çalışıyor? TikTok’ta elle arama yapmak çok sayıda video ortaya çıkarıyor; ancak bu aramayı bir hafta sonra tekrarlamak, sonuçları karşılaştırmak ve belirli bir videonun rapora neden eklendiğini açıklamak zor. Küçük ölçekli bir araştırma için, birkaç net sorguyla herkese açık arama sonuçlarını tekrarlanabilir bir veri akışına dönüştürmek mümkün: ham yanıtı kaydedin, video ve içerik üreticisi alanlarını çıkarın, tekrarları ayıklayın ve satın alma ya da ürün seçme niyetine ilişkin işaretleri ayrıca değerlendirin.

Makale: TikTok’ta Herkese Açık Videolarla Potansiyel Müşteri Kalitesi Nasıl Değerlendirilir: Python İş Akışı
Özet: Pazarlamacılar ve geliştiriciler için pratik bir senaryo: TikTok Scraper API aracılığıyla hedef kitlenin arama ifadelerine göre herkese açık videoları bulun, ham yanıtları kaydedin, videoları tekilleştirin ve açık kurallara göre sıralayın. Python betiği, yanıt yapısının iki farklı biçimini işliyor ve API anahtarını güvenli biçimde kullanıyor.
Görselin rolü: kapak — ana fikir
Bölüm: 
Görsel konusu: Yakın plan editoryal
© jsonscraper · Yapay zekâ tarafından oluşturulan illüstrasyon

Aşağıda jsonscraper’ın TikTok Scraper API’sini kullanan, Python’la uygulanabilir bir yöntem yer alıyor. Örneğin bu yöntem, içerik üreticilerinin altyazılar, şablonlar ve dışa aktarma sorunlarını nasıl anlattığını görmek isteyen bir video düzenleme hizmeti için kullanılabilir. Betik, döndürülen arama sonuçlarını toplar; analist ise sınıflandırmayı gözden geçirir ve hedef kitle araştırmasında hangi ifadelerin kullanılacağına karar verir. Bu, herkese açık içerikleri gözlemlemeyi düzenlemenin bir yoludur; satın alma niyetine sahip tüm kullanıcıları otomatik olarak saymaz.

Sorun: Hedef kitlenin arama ifadeleri var, ancak araştırmayı yinelemek zor

Elle yürütülen araştırmada bağlam kolayca kaybolur. Bir çalışan “altyazı nasıl eklenir” diye arar, diğeri “Reels için otomatik altyazı” diye arama yapar, üçüncüsü ise yalnızca beğendiği videoları kaydeder. Sonuç tablosunda farklı sorgular, tarihler, metrikler ve seçim ölçütleri birbirine karışır. Yönetici analizin tekrarlanmasını veya iki haftanın karşılaştırılmasını istediğinde, yalnızca sonuçları değil arama sürecinin kendisini de yeniden oluşturmak gerekir.

Gözlem birimini önceden tanımlamak daha yararlıdır: açıklama metni, kimliği, bağlantısı, içerik üreticisi ve herkese açık metrikleri bulunan bir video. Her video için kullanılan arama sorgusu ve toplama zamanı kaydedilir. Böylece şu sorular ayrı ayrı yanıtlanabilir: Hangi ifadeler kullanılıyor, hangi sorunlardan söz ediliyor, hangi videolar daha fazla herkese açık etkileşim almış ve kaydedilmiş anlık görüntüler arasında neler değişmiş?

Örnek olarak altyazı ve kısa video oluşturma aracı geliştiren bir şirketi ele alalım. Şirketin; içerik üreticilerinin elle transkripsiyon, konuşma tanıma hataları, altyazı zamanlaması veya birden fazla platform için içerik hazırlama konularını doğrudan ele aldığı herkese açık videoları bulması önemlidir. Tek bir videoya dayanarak içerik üreticisini “potansiyel müşteri” ya da “alıcı” olarak etiketlememek gerekir: araştırmacı, içeriği gözlemlenebilir işaretlere göre sıralayıp sonuçları sonrasında elle doğrulayabilir.

Çözümün işleyişi: arama, kaydetme, temizleme, değerlendirme

İş akışı dört adımdan oluşur. Önce ekip, her biri hedef kitlenin belirli bir ihtiyacına karşılık gelen küçük bir arama sorgusu sözlüğü oluşturur. Ardından betik video araması yapar ve tam JSON yanıtını kaydeder. Üçüncü adım, farklı yanıt yapılarını video başına tek bir satıra dönüştürür ve kimliğe göre tekrarları kaldırır. Son olarak kurallar veya ayrı bir yapay zekâ sınıflandırıcısı, elle incelenmek üzere bir öncelik belirler ve değerlendirme gerekçesini saklar.

Bu adımları ayırmak, sonuçların tekrarlanabilirliği açısından önemlidir. Ham yanıt, alanlardaki değişiklikleri veya normalleştirme hatalarını araştırmaya yardımcı olur. Normalleştirilmiş tablo filtreleme ve görselleştirme için kullanışlıdır. Kaydedilen veriler yeniden işleme için uygunsa ve ekibin saklama süresine uyuyorsa, ayrı bir değerlendirme tablosu API’yi yeniden çağırmadan kuralların değiştirilmesine imkân verir.

Başlangıç sorguları olarak “otomatik altyazı hataları”, “hızlıca altyazı nasıl eklenir” ve “işletmeler için kısa video düzenleme” kullanılabilir. Bunlar yalnızca örnek sözlük öğeleridir; ifadeler hedef kitlenin diline ve ürüne göre uyarlanmalıdır. Farklı sözcüklerle yapılan aramalar farklı örneklemler oluşturduğundan, sorgular sonuçlarla birlikte saklanmalıdır.

TikTok Scraper API neler sağlar?

jsonscraper’ın yayımladığı belgelerde video araması için https://tiktok.evelode.com temel adresinde GET /searchVideo yolu belirtiliyor. Zorunlu parametre keyword; belgelenmiş ek parametreler arasında count, cursor, region, date_posted, sort_by ve cache_timeout bulunuyor. Örneğin sort_by parametresi, belgelenmiş most-liked, relevance ve date-posted değerlerini; date_posted ise this-week veya all-time gibi değerleri kabul ediyor. Parametrelerin tam listesi ve yolun kullanım amacı TikTok API uç nokta kılavuzunda yer alıyor.

Anahtar, license_key sorgu parametresi olarak gönderilir. Aşağıdaki örnekte sır, kodda saklanmaması ve günlüklere yazdırılmaması için JSONSCRAPER_TIKTOK_LICENSE_KEY ortam değişkeninden okunuyor. Kimlik doğrulama ve parametre seçimi için erişiminizin güncel koşullarını kullanın; TikTok Scraper API sayfasında ürün açıklaması ile demo ve belgelere yönlendiren bağlantılar bulunuyor.

Arama yanıtı, yalnızca tek bir dizi bulunduğu varsayılmadan, yapısı kontrol edilerek işlenmelidir. Doğrulanmış örnekte API, üst düzey bir durum bilgisiyle birlikte tiktok nesnesi döndürüyordu; videolar tiktok.aweme_list içinde bulunabiliyor, arama sonuçlarında ise tiktok.search_item_list[].aweme_info biçimine de rastlanıyor. Her iki biçimi de kontrol edin. Bulunan nesnelerde alan mevcutsa video kimliği, açıklama, bağlantı, yayın zamanı, içerik üreticisi bilgileri ve görüntüleme, beğeni, yorum ve paylaşım gibi istatistikler yer alabilir. Metrikler ve alanlar isteğe bağlı kabul edilmeli; değer bulunmadığında kod, var olmayan sıfırlar eklememelidir.

Arama sayfalandırması cursor parametresini kullanır. Betik sonuçları devam ettirecekse döndürülen değeri, sonraki istekte opak bir belirteç olarak iletmeli; kendi başına hesaplamamalıdır. İlk prototipte her sorgu için tek sayfa toplamak mantıklıdır: bu, kontrolü kolaylaştırır ve öngörülebilir bir yük oluşturur. Daha sonra sayfa sayısı sınırı ve tekrar eden imleçlere karşı koruma eklenerek sayfalandırma uygulanabilir.

Ortamın hazırlanması

Örnek, Python 3.8 veya üzerini ve standart kütüphaneyi kullanır. Anahtarı örneğin macOS veya Linux kabuğunda ortam değişkenine ekleyin:

export JSONSCRAPER_TIKTOK_LICENSE_KEY="anahtarınız"
python tiktok_demand.py

Windows PowerShell’de değişkeni şöyle ayarlayabilirsiniz:

$env:JSONSCRAPER_TIKTOK_LICENSE_KEY="anahtarınız"
python .\tiktok_demand.py

Betik her anahtar kelime için ayrı bir istek gönderir. HTTP hatalarını, JSON yanıtını ve dış durum bilgisini kontrol eder, ardından doğrulanmış iki dizi biçiminden nesneleri çıkarır. Ham yanıtlar, her kaydın sorguyu, gözlem zamanını ve orijinal yanıtı içerdiği satır tabanlı bir JSONL dosyasına yazılır. İkinci bölüm ise alanları birörnek hâle getirilmiş bir CSV oluşturur. Anahtar dosyada bulunmaz ve sır içeriği yazdırılmaz.

Örnek: arama sonuçlarını toplama ve normalleştirme

import csv
import json
import os
import time
from datetime import datetime, timezone
from pathlib import Path
from urllib.error import HTTPError, URLError
from urllib.parse import urlencode
from urllib.request import Request, urlopen

BASE_URL = "https://tiktok.evelode.com/searchVideo"
QUERIES = [
    "otomatik altyazı hataları",
    "hızlıca altyazı nasıl eklenir",
    "işletmeler için kısa video düzenleme",
]


def extract_videos(payload):
    """Arama yanıtında gözlemlenen her iki yapıyı da destekler."""
    tiktok = payload.get("tiktok") or {}
    videos = []

    aweme_list = tiktok.get("aweme_list") or []
    if isinstance(aweme_list, list):
        videos.extend(item for item in aweme_list if isinstance(item, dict))

    search_items = tiktok.get("search_item_list") or []
    if isinstance(search_items, list):
        for item in search_items:
            if not isinstance(item, dict):
                continue
            video = item.get("aweme_info")
            if isinstance(video, dict):
                videos.append(video)

    return videos


def fetch(query, license_key):
    params = {
        "keyword": query,
        "count": 20,
        "sort_by": "relevance",
        "date_posted": "this-month",
        "region": "US",
        "license_key": license_key,
    }
    url = BASE_URL + "?" + urlencode(params)
    request = Request(url, headers={"Accept": "application/json"})

    try:
        with urlopen(request, timeout=45) as response:
            payload = json.loads(response.read().decode("utf-8"))
    except HTTPError as exc:
        raise RuntimeError("API şu HTTP durumunu döndürdü: {}".format(exc.code)) from exc
    except (URLError, TimeoutError, json.JSONDecodeError) as exc:
        raise RuntimeError("API isteği tamamlanamadı veya yanıt ayrıştırılamadı") from exc

    if payload.get("status") != "ok":
        raise RuntimeError("API yanıtının durumu ok değildi")
    return payload


def metric(statistics, key):
    value = statistics.get(key)
    return value if isinstance(value, (int, float)) else ""


def main():
    license_key = os.environ.get("JSONSCRAPER_TIKTOK_LICENSE_KEY")
    if not license_key:
        raise SystemExit("JSONSCRAPER_TIKTOK_LICENSE_KEY ortam değişkenini ayarlayın")

    raw_path = Path("tiktok_raw.jsonl")
    csv_path = Path("tiktok_videos.csv")
    seen_ids = set()
    rows = []

    with raw_path.open("a", encoding="utf-8") as raw_file:
        for query in QUERIES:
            observed_at = datetime.now(timezone.utc).isoformat()
            payload = fetch(query, license_key)
            raw_file.write(json.dumps({
                "query": query,
                "observed_at": observed_at,
                "response": payload,
            }, ensure_ascii=False) + "\n")

            for video in extract_videos(payload):
                video_id = video.get("aweme_id")
                if not video_id or video_id in seen_ids:
                    continue
                seen_ids.add(video_id)

                author = video.get("author") or {}
                stats = video.get("statistics") or {}
                rows.append({
                    "query": query,
                    "observed_at": observed_at,
                    "video_id": video_id,
                    "created_at": video.get("create_time", ""),
                    "description": video.get("desc", ""),
                    "share_url": video.get("share_url", ""),
                    "author_username": author.get("unique_id", ""),
                    "author_nickname": author.get("nickname", ""),
                    "views": metric(stats, "play_count"),
                    "likes": metric(stats, "digg_count"),
                    "comments": metric(stats, "comment_count"),
                    "shares": metric(stats, "share_count"),
                })
            time.sleep(1)

    columns = [
        "query", "observed_at", "video_id", "created_at", "description",
        "share_url", "author_username", "author_nickname", "views",
        "likes", "comments", "shares",
    ]
    with csv_path.open("w", newline="", encoding="utf-8") as csv_file:
        writer = csv.DictWriter(csv_file, fieldnames=columns)
        writer.writeheader()
        writer.writerows(rows)

    print("{} benzersiz döndürülen video {} dosyasına kaydedildi".format(len(rows), csv_path))


if __name__ == "__main__":
    main()

Burada count değeri, her sorgu için istenen örneklem boyutu olarak ayarlanmıştır. Betik, API’nin tam olarak bu sayıda öğe döndürmesini beklemez: gerçek satır sayısı yanıta bağlıdır. İstekler arasındaki bekleme, çalıştırma hızını yönetmek için basit bir önlemdir; hizmetin bir sınırı veya gereksinimi olduğu iddiası değildir. Üretim ortamındaki zamanlanmış çalıştırmalara, sınırlı sayıda yeniden deneme, hata izleme ve planınızın koşullarına uygun istek sıklığı kuralları ekleyin.

Oluşturulan tablo nasıl okunur?

CSV’deki her satır, sorgulardan biriyle bulunan benzersiz ve döndürülmüş bir videoyu temsil eder. query alanı kaydın kaynağını, observed_at anlık görüntünün zamanını, video_id ise tekilleştirme anahtarını gösterir. Açıklama ve bağlantı, analistin bağlamı doğrulamasına yardımcı olur; herkese açık sayaçlar ise verilerin toplandığı andaki etkileşimi değerlendirmeyi sağlar. Uzun vadeli karşılaştırmalarda ayrı gözlemler kullanın: metriklerdeki değişimi görmek gerekiyorsa geçmişi silip üzerine yazmayın.

Görüntüleme, beğeni, yorum ve paylaşım sayaçları, API’nin istek sırasında döndürdüğü herkese açık istatistiklerin anlık görüntüsüdür. Bazı nesnelerde bulunmayabilirler; bu nedenle CSV’deki boş değer, yanıtta sayısal alan olmadığı anlamına gelir. Bu durum sıfırdan farklıdır ve toplamlar hesaplanırken ayrı ele alınmalıdır. Ayrıca bulunan sonuçlar, belirli sözcükler, bölge, zaman filtresi ve istek parametreleri için arama sonuçlarından alınmış bir örneklemi yansıtır. Bunlar platformdaki tüm içeriği veya kitlenin tamamını değil, yalnızca elde edilen videoları betimler.

İlk aşamada olası ilgililiği değerlendirmek için şeffaf kurallardan oluşan bir tablo hazırlanabilir: sorun ifadeleriyle eşleşmeler, kullanılan bir aracın anılması, fiyat veya karşılaştırma soruları ve somut bir iş senaryosunun bulunması. Yalnızca açıklaması olmayan bir puan yazmak yerine, ayrı işaretleri ve değerlendirme gerekçesini saklamak daha iyidir. Örneğin otomatik transkripsiyonun doğruluğunu soran bir video “incele: kalite tartışılıyor”, genel içerik tavsiyeleri veren bir video ise “düşük konu ilgililiği” olarak işaretlenebilir.

Yapay zekâyı yargıç rolüne sokmadan kullanmak

Örneklem biriktikten sonra model, açıklamaları önceden belirlenmiş bir şemaya göre etiketlemeye yardımcı olabilir: sorun, adı geçen araç, sorunun tonu ve ürün seçme sinyali bulunup bulunmadığı. Modele yalnızca gerekli alanları aktarın; örneğin açıklama metniyle kayıt kimliğini verin ve etiketler ile kısa gerekçeden oluşan sabit bir JSON yanıtı isteyin. Yeniden etiketleme yapılabilmesi veya insan tarafından örneklem bazında kontrol edilebilmesi için talimatın sürümünü, modeli ve sonucu kaynak satırla birlikte saklayın.

İyi bir sınıflandırıcı istemi, çıkarımları gözlemlenebilir işaretlerle sınırlandırmalıdır. Metnin açık bir altyazı sorunundan, araç önerisi isteğinden veya iş akışı tartışmasından söz edip etmediğini belirlemesini isteyin. Veri yetersizse “bağlam yetersiz” kategorisi ekleyin. Model tek bir herkese açık videodan hareketle içerik üreticisinin kimliğini, satın alma niyetini veya demografik özelliklerini çıkarsamamalıdır. Sonuç, otomatik iletişime geçilecek kişilerin listesi değil, analiz edilecek konulardan oluşan bir kuyruğa dönüşmelidir.

Etiketleme kalitesini değerlendirmek için rastgele bir alt örneklem seçin ve aynı kategorileri elle işaretleyin. Her etiket için uyumu karşılaştırın ve hataları inceleyin: örneğin model, alaycı ifadeyi şikâyet sanabilir ya da eğitici tavsiyeyi kişisel deneyim olarak algılayabilir. Sözlüğü ve talimatı düzeltmek çoğu zaman modeli hemen karmaşıklaştırmaktan daha yararlıdır. Rapor için özgün metinleri ve bağlantıları, kabul edilmiş saklama ve erişim politikasına uygun biçimde koruyun.

Zamanlanmış otomasyon ve kalite kontrolü

Elle yürütülen başarılı denemeden sonra betik; cron, bir bulut platformunun görev zamanlayıcısı veya n8n gibi bir orkestratör üzerinden zamanlanabilir. Uygulamadaki adımlar aynı kalır: sorgu listesini oku, API’yi çağır, durumu kontrol et, ham yanıtı kaydet, videoları normalleştir, yeni anlık görüntüleri yaz ve rapor oluştur. Anahtar, tabloya, workflow metnine veya hata mesajına değil, çalıştırma ortamının sır yönetimi mekanizmasına eklenmelidir.

Otomatik bir görevde dört kontrol yararlıdır. Birincisi, istek başarıyla tamamlanmalı ve yanıt JSON olmalıdır. İkincisi, dış durum beklenen değere eşit olmalıdır. Üçüncüsü, işleyici arama yanıtının her iki biçimini tanımalı ve eksik alanları sorunsuz işlemelidir. Dördüncüsü, yeni benzersiz video sayısı ve hata sayısı günlüğe kaydedilmelidir. Beklenmedik biçimde sonuç yoksa rapor, sıfır sonuçlu örneklemi çalıştırma durumu olarak göstermeli; açıklama olmadan olağan başarılı raporla karıştırmamalıdır.

Sayfalandırmayı ilk sayfayı doğruladıktan sonra ekleyin. Arama yolu için belgelerde cursor parametresi belirtiliyor; döndürülen belirteci olduğu gibi saklayıp sonraki istekte iletin. Her arama terimi için azami sayfa sayısını sınırlayın; yeni öğe kalmadığında, sonraki imleç bulunmadığında veya daha önce işlenmiş bir imleç tekrarlandığında döngüyü durdurun. Bu sınır, çalışma süresini ve toplama boyutunu yönetilebilir kılar. İmlecin bulunması sonuçların devamının istenebileceğini gösterir; ancak tüm yayınlara kıyasla sonucun eksiksiz olduğunu kanıtlamaz.

Aynı gün içinde yeniden çalıştırma, daha önce elde edilmiş videolarla çakışan sonuçlar verebilir. Bu nedenle tekilleştirme anahtarı, video için kalıcı bir kimlik olmalı; anlık görüntü geçmişi ise gözlem tarihiyle ayrı bir kayıt olarak tutulmalıdır. Birleştirilmiş bir görünüm gerekiyorsa bunu anlık görüntüler üzerinden oluşturun: böylece ilk kez bulunan bir videoyu birden fazla sorguda görülen veya daha sonra yeniden elde edilen videodan ayırabilirsiniz.

Metrikler: neler doğru biçimde karşılaştırılabilir?

Operasyonel izleme için sorgu başına bulunan benzersiz video sayısı, açıklaması dolu videoların oranı, mevcut etkileşimlerin dağılımı ve belirli konuların görülme sıklığı yararlıdır. Sorguları karşılaştırırken aynı parametreleri ve çalıştırma dönemini sabit tutun. Bir çalıştırmada this-week, diğerinde this-month kullanılıyorsa hacim farkı zaman aralığından kaynaklanabilir; ek analiz yapmadan bu farkı ilgi değişikliği olarak yorumlamak doğru değildir.

Tek bir videonun metriklerini zaman içinde karşılaştırmak için birden fazla anlık görüntü ve tutarlı bir saklama şeması gerekir. Her tarih için değerleri alındığı hâliyle saklayın, ardından gözlemler arasındaki farkı hesaplayın. Gerçek çalıştırmalar arasındaki aralıklar farklıysa, farka “günlük artış” demeyin. Benzer şekilde, beğeni sayısına göre sıralama topladığınız örneklemde öne çıkan videoları bulmaya yardımcı olur; içerik üreticisinin veya ürünün ticari etkinliğini ölçmez.

Pazarlama ekibinin nihai raporu üç düzeyi bir araya getirebilir: tıklanabilir bağlantılarla hedef kitlenin kullandığı ifade örnekleri, sorun temaları grupları ve elde edilen örneklemin nicel özeti. Her çıkarım; gözlem sayısı, sorgular ve toplama dönemiyle desteklenmelidir. Bu, yöneticiye bağlam sunar ve analistin aynı kaynak veriler üzerinde filtrelemeyi tekrarlayabilmesini sağlar.

Sık yapılan hatalar ve bunlardan kaçınma yolları

Boş alanı sıfır değer saymak

İstatistikler veya içerik üreticisi bilgileri yoksa yukarıdaki kod hücreyi boş bırakır. Böylece bilinmeyen değer ile ölçülmüş sıfır arasındaki fark korunur. Analiz sırasında eksik değerlerin nasıl işleneceğini açıkça tanımlayın ve belirli bir hesaplamadan çıkarılan satırların sayısını belirtin.

Aramanın her zaman tek bir dizi döndürdüğünü varsaymak

Arama yanıtında aweme_list ile iç içe geçmiş search_item_list[].aweme_info öğeleri görülebilir. İşleyici her iki biçimi kontrol eder ve uygun türde olmayan öğeleri yok sayar. Şema değişirse, kaydedilmiş ham yanıtlar verilerin yeni konumunu hızla tespit etmeye; örnek JSON dosyaları ise bir sonraki çalıştırmadan önce düzeltmeyi sınamaya yardımcı olur.

Aynı videoyu ayrı bir sinyal olarak tekrar saymak

Bir video birden fazla arama sözcüğüyle eşleşebilir. Örnekte video, nihai CSV’ye yalnızca bir kez eklenir ve sorgu alanı mevcut sırada ilk eşleşmeyi gösterir. “Video — sorgu” eşleşmelerinin tümünü korumak önemliyse, kaynağı silmek yerine ayrı bir ilişkilendirme tablosu veya her kimlik için sorgu listesi saklayın.

Karşılaştırılamayan örneklemleri kıyaslamak

Sözcük, bölge, zaman filtresi, sıralama ve çalıştırma tarihi örneklemi etkiler. Parametreleri yanıtla birlikte saklayın; farklı seçenekleri karşılaştıran bir araştırmada her seferinde tek bir faktörü değiştirin. Bu, sonuçtaki değişikliğin arama davranışından mı yoksa deney ayarlarının değiştirilmesinden mi kaynaklandığını anlamaya yardımcı olur.

Korelasyonu satın alma niyeti olarak sunmak

Video açıklaması ve herkese açık sayaçlar, içerik ve izleyici tepkisi hakkında işaretler sağlar. Tek başlarına kimin satın almaya hazır olduğunu, bir kişinin reklam görüp görmediğini veya dönüşümün ne olduğunu göstermezler. Bunları hipotez geliştirmek, konuları doğrulamak ve içerik hazırlamak için kullanın. Satış etkinliğini, zaman ve hedef kitle bakımından bu araştırmayla ilişkilendirilmiş kendi kampanya verilerinizle değerlendirin.

İş akışı nasıl genişletilir?

Temel sürüm kararlı biçimde çalışmaya başladıktan sonra, Python kodunu düzenlemeden sorgu sözlüğünü değiştirmek için bir yapılandırma dosyası ve çalıştırma parametreleri ekleyebilirsiniz. Sonraki adım; örneğin “tanıma kalitesi”, “düzenleme hızı” ve “dışa aktarma” gibi sorgularla konu kümelerini eşleştiren bir tablo oluşturmaktır. Bu kategorileri ekip tanımlamalı ve örneklerle doğrulamalıdır; API arama verilerini döndürür, anlam şemasını ise araştırmacı belirler.

CSV yerine ilişkisel veritabanı kullanılabilir: çalıştırmalar, videolar ve metrik anlık görüntüleri için ayrı tablolar oluşturun. Video kimliği üzerinde benzersiz indeks kullanmak kataloğun yinelenmesini önler; anlık görüntüler ise mevcut sayaçlardaki değişimlerin izlenmesini sağlar. Gözlem tarihini UTC olarak ve normalleştirici sürümünü kaydedin. Çıkarma mantığı değişirse, arşivlenmiş JSONL dosyasını yeniden işleyip sonucu karşılaştırabilirsiniz.

n8n’de toplama zamanlanabilir; seçilen ortam gerekli işlemleri destekliyorsa normalleştirme kodu ayrı bir Python hizmetinde veya düğümde çalıştırılabilir. İlk aşamada bir model eklemek şart değildir: önce toplamanın kararlı olmasını sağlayın, ardından elle sınıflandırmanın ne kadar sürdüğünü ve hangi kategorilerin tekrarlandığını ölçün. Yapay zekâ, belirli ve tekrarlanan bir işi azaltıyorsa ve etiketleri doğrulanabiliyorsa anlamlıdır.

Araştırma sorusu ifadelerle arama yapmak değil, belirli bir hesabı düzenli izlemekse resmî kılavuzda query, max_cursor ve count parametrelerini kullanan ayrı bir /getUserFeed yolu bulunuyor. Hashtag içinse cursor parametreli /getHashtagFeed yolu mevcut. Bunlar farklı veri toplama senaryolarıdır: uç nokta seçimine bir örneklem türünü diğeriyle değiştirmek yerine araştırma sorusundan başlayın.

Sonuç: yer imleri yığını yerine tekrarlanabilir bir örneklem

Çalıştırmanın ardından ekip iki yararlı çıktı elde eder: ham yanıtların arşivi ve arama terimi, gözlem tarihi, bağlantı, açıklama ve mevcut metrikleri içeren benzersiz videolar tablosu. Bunlar temelinde hedef kitle soruları elle gruplandırılabilir, metinler kontrollü bir sınıflandırmaya aktarılabilir, haftalık özet hazırlanabilir ve tekrarlanan anlık görüntüler karşılaştırılabilir. Kod, istek hatalarını açıkça işler, dış durumu kontrol eder, arama yapısının iki biçimini ayırt eder ve eksik metrikleri boş değer olarak saklar.

Ekip açısından pratik sonuç; görüşmelerde, açılış sayfasında veya reklam mesajında hangi sorunların incelenmesi gerektiğine daha şeffaf biçimde karar verebilmektir. Araştırma başka türde veri gerektiriyorsa sorguları değiştirin veya uygun belgelenmiş yolu kullanın. İş akışını uyarlamadan önce parametreleri TikTok API belgelerinden kontrol edebilirsiniz; ürün bilgileri ve demo girişiyse TikTok Scraper API sayfasında yer alıyor.

Bu yaklaşım, başlangıçtaki ihtiyaca yanıt verir: TikTok aramalarını tekrarlanabilir bir araştırma sürecine dönüştürmek. Betik, döndürülen belirli videoları toplar ve kaynak bilgilerini ve anlık görüntüleri saklar; bir kişi veya doğrulanabilir sınıflandırıcı ise içeriği talep hipotezlerine dönüştürür. Ekip, herkese açık içerik işaretleri ile doğrulanmış satış sonuçları arasındaki sınırı koruyarak sonraki kararına temel oluşturur.

İnsanlar

Bu makale için henüz kimse listelenmedi.

Okumaya devam etTikTok Arama Sonuçları Python ile Nasıl Arşivlenir
Sonraki makaleyi okuyun

Okuduklarınızı çalışan bir entegrasyona dönüştürün

jsonscraper sosyal veri API'lerini keşfedin, istekleri test edin ve sonraki iş akışınızı oluşturun.

API'leri Keşfet