jsonscraper
Piyasalar
Dergiye dön

Ham görüntülemeleri karşılaştırmadan etkileşimi artan TikTok videoları nasıl bulunur?

Aynı aramayla bulunan videoların metriklerini aralıklarla kaydedin ve toplam popülerlikten bağımsız olarak artışı hesaplayın

Yayın Politikası Hata bildirin

Belirli bir TikTok videosunun etkileşim kazanıp kazanmadığını anlamak için herkese açık metriklerini önceki kaydıyla karşılaştırın. Tek seferlik arama, o ana kadar birikmiş görüntüleme ve etkileşim sayılarını gösterir; aynı videoları tekrar toplamak ise iki çalıştırma arasındaki değişimi ortaya çıkarır. Aşağıda Python ile hazırlanmış basit bir iş akışı yer alıyor: arama isteği gönderme, metrikleri CSV’ye kaydetme ve farkı hesaplama.

Bu izleme tam olarak neyi ölçer?

Bu betik, konuya göre bulunan videoların listesini ve doğrulanabilir bir gözlem geçmişini isteyen pazarlama uzmanları, analistler veya geliştiriciler için uygundur. Örneğin bir ekip, ürün lansmanıyla ya da belirli bir kitle aramasıyla ilgili videoları düzenli olarak izleyip önceki kontrolden sonra hangi videoların daha fazla görüntüleme, beğeni, yorum veya paylaşım aldığını görmek isteyebilir.

Makale: Ham görüntülemeleri karşılaştırmadan etkileşimi artan TikTok videoları nasıl bulunur?
Özet: Adım adım Python iş akışı, aramayla bulunan TikTok videolarını toplar, görüntüleme ve etkileşim sayılarını CSV’ye kaydeder ve sonraki çalıştırmada aynı videolardaki değişimleri hesaplar.
Görselin rolü: Kapak — temel fikir
Bölüm: Bu izleme tam olarak neyi ölçer?
Görsel konusu: Editoryal fotoğraf: kısa video kimliklerinin anonimleştirilmiş satırlarını ve iki zaman damgasını gösteren basılı sayfalar
Aynı videoya ait metriklerin iki kaydını kimlik üzerinden eşleştirme.© jsonscraper · yapay zekâyla oluşturuldu

Karşılaştırmanın temel birimi, aweme_id ile tanımlanan videodur. Her kayıt için toplama zamanı, kimlik, açıklama, URL, içerik üreticisinin adı ve mevcut sayaçlar saklanır. Ardından iki kayıt kimlik üzerinden eşleştirilir. Böylece bir videonun görüntüleme artışı başka bir videonun birikmiş görüntülemeleriyle karıştırılmaz.

Sonuç, yalnızca belirli bir çalıştırmada belirli bir arama sorgusuyla döndürülen videoları kapsar. Arama sonuçları değişebilir ve bazı istatistik alanları bulunmayabilir. Bu nedenle kayıtların kendisini ve toplama zamanını saklamak, raporu konuyla ilgili tüm yayınların eksiksiz kataloğu olarak değil, daha önce bulunmuş videolara ilişkin bir gözlem olarak değerlendirmek yararlıdır.

API üzerinden veri toplama nasıl çalışır?

TikTok Scraper API belgelerinde /searchVideo GET uç noktası açıklanıyor. Arama için keyword dizesi zorunludur; ek parametreler arasında count, region, sort_by ve date_posted bulunur. API anahtarı license_key olarak iletilir. Başvuru belgesinde temel uç nokta https://tiktok.evelode.com olarak belirtilmiştir.

Yanıt, harici bir durum bilgisi ve tiktok nesnesi içerir. Arama sonuçlarındaki videolar tiktok.aweme_list içinde veya tiktok.search_item_list[].aweme_info altında bulunabilir. Aşağıdaki işleyici her iki biçimi de destekler. Metrikler, play_count, digg_count, comment_count ve share_count alanlarını içeren statistics nesnesinden alınır; bulunmayan değerler sıfırla değiştirilmek yerine boş bırakılır.

Uç nokta başvuru belgesinde arama sonuçlarını sayfalamak için cursor listelenir ve date_posted ile sort_by için kabul edilen seçenekler belirtilir. Basit ve tekrarlanabilir bir izleme için önce sonuçların tek bir sayfasını almak ve yanıtı kaydetmek yeterlidir; sayfalamayı yalnızca gerektiğinde ekleyin. Gerekliyse döndürülen imleci dönüştürmeden iletin.

Python ile çalışan örnek

İstekler kitaplığını python -m pip install requests komutuyla yükleyin ve anahtarı JSONSCRAPER_TIKTOK_LICENSE_KEY ortam değişkeninde tanımlayın. Betik, arama ifadesini bir bağımsız değişken olarak alır ve bulunan kayıtları tek bir CSV dosyasına ekler. Kod Python 3.8 ve sonraki sürümlerle uyumludur.

import csv
import os
import sys
from datetime import datetime, timezone
from pathlib import Path

import requests

BASE_URL = "https://tiktok.evelode.com/searchVideo"
CSV_PATH = Path("tiktok_video_snapshots.csv")
FIELDS = [
    "collected_at", "aweme_id", "author", "description", "share_url",
    "play_count", "digg_count", "comment_count", "share_count",
]


def extract_items(payload):
    """Gözlemlenen arama yanıtı düzenlerini destekle."""
    data = payload.get("tiktok") or {}
    items = data.get("aweme_list") or []
    if items:
        return items

    found = []
    for result in data.get("search_item_list") or []:
        info = result.get("aweme_info")
        if info:
            found.append(info)
    return found


def main():
    key = os.environ.get("JSONSCRAPER_TIKTOK_LICENSE_KEY")
    if not key:
        raise SystemExit("Önce JSONSCRAPER_TIKTOK_LICENSE_KEY değişkenini ayarlayın")
    if len(sys.argv) < 2:
        raise SystemExit('Kullanım: python collect.py "arama ifadesi"')

    params = {
        "license_key": key,
        "keyword": sys.argv[1],
        "count": 20,
        "region": "US",
        "sort_by": "relevance",
        "date_posted": "this-week",
    }
    response = requests.get(BASE_URL, params=params, timeout=30)
    response.raise_for_status()
    payload = response.json()

    if payload.get("status") != "ok":
        raise RuntimeError("API, ok dışında bir harici durum döndürdü")
    data = payload.get("tiktok") or {}
    items = extract_items(payload)
    collected_at = datetime.now(timezone.utc).isoformat()

    rows = []
    for item in items:
        stats = item.get("statistics") or {}
        author = item.get("author") or {}
        rows.append({
            "collected_at": collected_at,
            "aweme_id": item.get("aweme_id"),
            "author": author.get("unique_id") or author.get("nickname"),
            "description": item.get("desc"),
            "share_url": item.get("share_url"),
            "play_count": stats.get("play_count"),
            "digg_count": stats.get("digg_count"),
            "comment_count": stats.get("comment_count"),
            "share_count": stats.get("share_count"),
        })

    write_header = not CSV_PATH.exists()
    with CSV_PATH.open("a", newline="", encoding="utf-8") as file:
        writer = csv.DictWriter(file, fieldnames=FIELDS)
        if write_header:
            writer.writeheader()
        writer.writerows(rows)

    print("Kaydedilen döndürülen video sayısı:", len(rows))
    print("has_more:", data.get("has_more"), "cursor:", data.get("cursor"))


if __name__ == "__main__":
    main()

Örneğin python collect.py "ürün hakkında arama" komutunu çalıştırın. Anahtar, kitaplık tarafından URL parametrelerine eklenir; betik anahtarı terminale yazdırmaz. İstek URL’sinde anahtar bulunduğundan URL’nin tamamını herkese açık günlüklerde saklamayın. Üretim ortamında bir sır yönetimi çözümü kullanın ve kayıt dosyasına erişimi kısıtlayın.

Çalıştırmalar arasındaki artış nasıl hesaplanır?

Betik, önceki değerlerin üzerine yazmak yerine tüm gözlemleri bilerek kaydeder. Aşağıdaki küçük analiz aracı, her videonun son iki kaydını eşleştirir ve sayaçlardaki farkı gösterir. Bir metrik iki kayıttan birinde mevcut değilse sonuç kullanılamaz olarak belirtilir.

Makale: Ham görüntülemeleri karşılaştırmadan etkileşimi artan TikTok videoları nasıl bulunur?
Özet: Adım adım Python iş akışı, aramayla bulunan TikTok videolarını toplar, görüntüleme ve etkileşim sayılarını CSV’ye kaydeder ve sonraki çalıştırmada aynı videolardaki değişimleri hesaplar.
Görselin rolü: Destekleyici çizim 2 — farklı ve özgül bir yön
Bölüm: Çalıştırmalar arasındaki artış nasıl hesaplanır?
Görsel konusu: Rusça infografik; iş akışını gösteriyor: TikTok anahtar kelime araması → döndürülen video
Arama sonuçlarından kaydedilmiş iki gözlemin karşılaştırılmasına uzanan veri akışı.© jsonscraper · yapay zekâyla oluşturulmuş çizim
import csv
from collections import defaultdict
from pathlib import Path

rows_by_video = defaultdict(list)
with Path("tiktok_video_snapshots.csv").open(encoding="utf-8", newline="") as file:
    for row in csv.DictReader(file):
        if row["aweme_id"]:
            rows_by_video[row["aweme_id"]].append(row)

metrics = ("play_count", "digg_count", "comment_count", "share_count")
for video_id, snapshots in rows_by_video.items():
    snapshots.sort(key=lambda row: row["collected_at"])
    if len(snapshots) < 2:
        continue
    previous, latest = snapshots[-2], snapshots[-1]
    changes = {}
    for metric in metrics:
        old, new = previous[metric], latest[metric]
        changes[metric] = int(new) - int(old) if old and new else None
    print(video_id, changes, latest["share_url"])

Fark, iki kaydedilmiş değer arasındaki değişimdir; düzenli aralıklarla gerçekleştiği garanti edilen bir büyüme hızı değildir. Çalıştırmalar farklı aralıklarla yapılıyorsa collected_at değerleri arasındaki süreyi hesaplayıp artışı gerçek zaman aralığına göre karşılaştırın. Sayaçlar gözlemler arasında değişebilir; kaydedilen zaman damgaları, kullanılan değerlerin tam olarak ne zaman alındığını gösterir.

Rapor nasıl otomatikleştirilir ve yorumlanır?

Günlük rapor için veri toplamayı bir sunucudaki görev zamanlayıcıya veya CI iş akışına ekleyin, sabit bir arama ifadeleri listesi belirleyin ve CSV’yi saklayın ya da satırları bir veritabanına yükleyin. Tekrarlanan çalıştırmalarda, sonuçlar yinelenen kayıtlar içeriyorsa her gözlem içindeki kayıtları aweme_id üzerinden tekilleştirin. Geçmiş için ilk JSON’u normalleştirilmiş sütunlarla birlikte saklayın: rapor şeması değiştiğinde verileri yeniden işlemeyi kolaylaştırır.

Tabloda video kimliğini ve URL’sini, içerik üreticisini, açıklamayı, toplama zamanını ve her metrikteki farkı göstermek kullanışlıdır. Görüntüleme artışına göre sıralama yayılımı anlamaya yardımcı olurken yorum veya paylaşım artışı farklı bir etkileşim türünü öne çıkarır. Her sayacın anlamı farklı olduğundan, açık bir kural belirlemeden bu metrikleri tek bir puanda birleştirmeyin.

Görev zamanlayıcısı raporu e-postaya, tabloya veya kurum içi bir kanala gönderebilir; ancak bu adımı sizin altyapınız gerçekleştirir — yukarıdaki örnek yalnızca verileri toplar ve analiz eder. Daha kapsamlı bir toplama için sonuç sayfaları arasında gezinip imleci saklayabilir ve API başka sayfa olmadığını bildirdiğinde döngüyü durdurabilirsiniz. Arama imleci, yanıtta döndürülen opak bir değerdir; kendiniz hesaplamayın. Sayfaların tümünü dolaşmak bile yalnızca döndürülen sonuçları kapsar ve konuya uyan tüm yayınların eksiksiz listesini garanti etmez.

Beklenen pratik sonuç, tekrarlanabilir bir gözlem günlüğü ve bulunan videolardaki değişimleri gösteren bir tablodur. Bu, kontroller arasında herkese açık sayaçları değişen yayınları fark etmeye ve belirli bağlantıları içerik analizi için bir uzmana iletmeye yardımcı olur. Ürüne ilişkin ayrıntılara ve API erişimine TikTok Scraper API sayfasından ulaşabilirsiniz.

Zamanlanmış çalıştırmadan önce neleri kontrol etmeli?

  • tiktok nesnesini işlemeden önce harici yanıt durumunun ok olduğunu doğrulayın.
  • Arama öğelerinin her iki biçimini de kontrol edin; liste yoksa hata vermek yerine boş bir toplama sonucu alınmalıdır.
  • Ham değerleri ve zaman damgalarını saklayın. Boş metrikler boş kalmalıdır.
  • Gözlem kayıtlarını daha anlaşılır biçimde karşılaştırmak için aynı arama sorgularını ve parametrelerini kullanın; bu ayarlardaki değişiklikleri raporun yanında kaydedin.
  • Çalıştırma sıklığını, HTTP hatalarını ve geçmişin boyutunu izleyin; ayrıca platformun geçerli kurallarına ve veri işleme gerekliliklerine uyun.

Özetle, gözlemlenebilir bir sonuç için aynı aramayı tekrarlamak, videoları aweme_id üzerinden tanımlamak ve kaydedilmiş metrikleri zaman içinde karşılaştırmak yeterlidir. Bu yaklaşım, daha önce bulunmuş videolardan hangilerinin iki kontrol arasında herkese açık sayaçlarını değiştirdiği gibi dar kapsamlı ve pratik bir soruyu yanıtlar; ayrıca ham verileri denetim ve sonraki işlemler için erişilebilir tutar.

İnsanlar

Bu makale için henüz kimse listelenmedi.

Okumaya devam etTikTok içerik üreticilerinin konuları nasıl analiz edilir: Python ile uygulamalı iş akışı
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