jsonscraper
Piyasalar

TikTok içerik üreticisinin konu tutarlılığı nasıl değerlendirilir?

Üreticinin akışını toplamak, konuları karşılaştırmak ve yapay zekâyı dikkatli kullanmak için adım adım Python iş akışı

Yayın Politikası Hata bildirin

Bir içerik üreticisi profiline ve birkaç başarılı videosuna bakıldığında kampanyaya uygun görünebilir; ancak güncel akışı daha önemli bir şeyi gösterir: İstenen konu hakkında düzenli olarak paylaşım yapmaya devam ediyor mu? Elle yapılan kontrol kısa sürede güncelliğini yitirir ve tek seferlik bir inceleme kolayca en dikkat çekici paylaşımları seçmekten ibaret kalabilir. Bir ajans ya da marka için, herkese açık videolardan tekrarlanabilir bir örneklem toplamak, kontrol tarihindeki durumu kaydetmek ve konu uygunluğunu aynı kurallarla değerlendirmek daha yararlıdır.

Makale: TikTok içerik üreticisinin konu tutarlılığı herkese açık paylaşımlardan nasıl değerlendirilir
Özet: Bir marka veya ajansın, TikTok içerik üreticisinin istenen konuda ne kadar düzenli içerik yayımladığını değerlendirmesini ele alıyoruz: API üzerinden akışı alma, anlık görüntüleri kaydetme, şeffaf ölçütler hesaplama ve video açıklamalarını konu sınıflandırmasına gönderme.
Görsel rolü: kapak — ana fikir
Bölüm: 
Görsel konusu: TikTok içerik üreticisi video kartlarının nötr simgelerle gösterildiği basılı bir analiz raporu,
© jsonscraper · Yapay zekâ ile oluşturulmuş illüstrasyon

Aşağıda, TikTok içerik üreticisinin herkese açık akışını değerlendirmeye yönelik pratik bir süreç yer alıyor. Süreçte jsonscraper TikTok Scraper API ve Python kullanılıyor: paylaşımlar belgelenmiş bir uç nokta üzerinden alınarak ham JSON kaydediliyor, doğrulanmış alanlar tabloya aktarılıyor ve belirli bir konuyla eşleşen videoların oranı hesaplanıyor. İstenirse açıklamalar, ayrı ve denetimli bir sonraki aşamada metin sınıflandırıcısına gönderilebilir.

Önce “uygun” olmanın ne anlama geldiğini tanımlayın

Ekibin evde kahve hazırlama kampanyası için bir içerik üreticisi seçtiğini varsayalım. Takipçi sayısı ve tek tek videoların popülerliği erişimi tanımlamaya yardımcı olabilir; ancak bunlar tek başına akışın kahveyle ne ölçüde ilgili olduğunu göstermez. İlk eleme için içerik göstergeleri gerekir: Video açıklamasında kahve hazırlama, ekipman, tarif veya incelemelerden söz ediliyor mu? Belirlenen gözlem aralığında bu konudaki kaç paylaşım yer alıyor? Toplanan paylaşımların ne kadarı konuyla ilgili?

Veri toplamadan önce ölçütleri kısa bir sözlükte kaydedin: örneğin “espresso”, “kahve değirmeni”, “latte”, “demleme”. İstisnaları ve anlamı belirsiz kelimeleri de ekleyin. “Kahve” bir şakada, sponsorlu içerikte veya tesadüfi bir bağlamda geçebilir; bu nedenle metin eşleşmesi, içerik üreticisine ilişkin nihai değerlendirme değil, ilk etiketlemedir. En az üç durumu birbirinden ayırın: açıkça ilgili, muhtemelen ilgili ve ilgisiz video.

Örneklemi de önceden belirlemek gerekir. Örneğin her haftalık çalıştırmada alınan son 20 paylaşım incelenebilir. Bu, izleme yönteminizin bir kuralıdır; API’nin tam olarak bu sayıda sonuç döndüreceği anlamına gelmez: sonuçların erişilebilirliği ve kapsamı, belirli isteğin yanıtına bağlıdır. Farklı kuralları birbirine karıştırmadan anlık görüntüleri karşılaştırabilmek için toplama zamanını, alınan öğe sayısını ve istek parametrelerini kaydedin.

İçerik üreticisinin akışını isteyin

jsonscraper belgelerine göre GET /getUserFeed uç noktası, kullanıcı adı veya profil URL’si olan zorunlu query parametresini kabul eder. İsteğe bağlı parametreler arasında count, region, sort_type, with_pinned_posts ve max_cursor bulunur. API anahtarı, query string içinde license_key olarak gönderilir; anahtarı kaynak koduna değil, ortam değişkenine koyun. Uç noktalar ve parametrelerle ilgili ayrıntılar resmî TikTok API belgelerinde yer alıyor.

Yanıtta önce en dıştaki status değerini kontrol edin, ardından tiktok nesnesine erişin. Kullanıcı akışındaki paylaşım listesi tiktok.aweme_list alanındadır. Gözlemlenen şemada video kimliği, açıklama metni, paylaşım zamanı, içerik üreticisi, URL ve istatistik nesnesi bulunur. Bazı alanlar eksik olabilir; bu nedenle işleyici, boş değerleri uydurma sayılarla değiştirmek yerine boş bırakmalıdır.

Aşağıdaki temel örnek Python 3.8+ ve requests kütüphanesi için hazırlanmıştır. Anahtarı JSONSCRAPER_TIKTOK_LICENSE_KEY değişkenine kaydedin. Kod tek bir istek yapar, HTTP yanıtını ve API’nin dış durum değerini kontrol eder, ham JSON’u kaydeder ve normalleştirilmiş satırları yazdırır.

import json
import os
from datetime import datetime, timezone
from pathlib import Path

import requests

API_KEY = os.environ["JSONSCRAPER_TIKTOK_LICENSE_KEY"]
PROFILE = "creator_username"

params = {
    "license_key": API_KEY,
    "query": PROFILE,
    "count": 20,
    "region": "US",
    "sort_type": 0,
    "with_pinned_posts": 0,
}

response = requests.get(
    "https://tiktok.evelode.com/getUserFeed",
    params=params,
    timeout=30,
)
response.raise_for_status()
payload = response.json()

if payload.get("status") != "ok":
    raise RuntimeError("TikTok API returned a non-ok status")

tiktok = payload.get("tiktok") or {}
items = tiktok.get("aweme_list") or []

stamp = datetime.now(timezone.utc).strftime("%Y%m%dT%H%M%SZ")
Path("snapshots").mkdir(exist_ok=True)
Path(f"snapshots/{PROFILE}_{stamp}.json").write_text(
    json.dumps(payload, ensure_ascii=False, indent=2),
    encoding="utf-8",
)

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

print(json.dumps(rows, ensure_ascii=False, indent=2))

Bu uç nokta için sort_type parametresi, en yeni akış için 0 ve popüler akış için 1 olarak tanımlanmıştır. Örnekte, yeni paylaşımlardan oluşan örnekleme eski bir sabitlenmiş gönderinin girmemesi için yeni içerik sıralaması seçilmiş ve sabitlenmiş videolar with_pinned_posts=0 ile hariç tutulmuştur. Farklı bir mod gerekiyorsa, parametreyi anlık görüntü meta verilerine kaydedin ve tüm çalıştırmalarda tutarlı biçimde kullanın.

Yanıtı işleme: JSON’dan tekrarlanabilir tabloya

Ham yanıtı dönüşüm yapmadan önce kaydetmek yararlıdır. Böylece normalleştirmeyi yeniden kontrol edebilir, bir satırın neden boş kaldığını anlayabilir ve yanıtlardaki isteğe bağlı alanlar değişirse işleyiciyi uyarlayabilirsiniz. Üretim ortamındaki depolamada JSON’un yanında UTC toplama zamanını, profil sorgusunu, parametreleri ve betik sürümünü saklayın. API anahtarını arşive veya günlüğe koymayın.

Tekrarlanan çalıştırmalarda, alan mevcutsa paylaşım tanımlayıcısı olarak aweme_id kullanın. Bu kimliğe göre yinelenen kayıtları kaldırmak, aynı videonun tekrar alınması durumunda onu birden fazla paylaşım olarak saymanızı önler. Bununla birlikte istatistiklerin ayrı anlık görüntülerini saklayın: görüntüleme ve etkileşim değerleri, videonun değişmez özelliklerine değil, gözlem anına aittir. İstatistik alanı eksikse boş bırakın ve ilgili ölçütün hesabından bu kaydı çıkarın.

Şemada paylaşım zamanı create_time olarak belirtilir. Analiz tablosunda bu değeri tarihe dönüştürün ve hem özgün değeri hem de normalleştirilmiş UTC zamanını saklayın. Hesaplama yapmadan önce, türün ve birimlerin beklendiği gibi olduğundan emin olmak için alınan yanıttaki birkaç gerçek kaydı kontrol edin. Bu kontrol, zaman grafikleri oluştururken özellikle önemlidir: zaman dönüşümündeki hata paylaşımları farklı günlere kaydırır ve haftalık karşılaştırmayı bozar.

Basit bir konu sınıflandırıcısı, model kullanmadan oluşturulabilir: metni normalleştirin, belirlenen anahtar kelime ve ifadeleri arayın, eşleşmeleri etiketleyin. Daha yararlı bir etiketleme için elle kontrol edilmiş açıklamalardan oluşan bir küme ve sınır durumlarına yönelik kurallar hazırlayın. Ardından basit sözlük filtresini insan etiketlemesiyle karşılaştırın: hangi ifadelerin yanlış eşleşmelere yol açtığını belirleyin ve sözlüğü güncelleyin. Böylece yapay zekânın sonraki kullanımını değerlendirebileceğiniz anlaşılır bir temel oluşturursunuz.

import re

KEYWORDS = (
    "кофе", "эспрессо", "кофемолка", "латте", "заваривание",
)


def normalize(text):
    text = (text or "").casefold()
    return re.sub(r"\s+", " ", text).strip()


def classify(description):
    text = normalize(description)
    matches = [word for word in KEYWORDS if word in text]
    return {
        "topic_match": bool(matches),
        "matched_terms": matches,
    }

for row in rows:
    row.update(classify(row["description"]))

Açıklamadaki bir anahtar kelime yararlı bir sinyal olabilir; ancak sınıflandırıcı yalnızca “evet/hayır” etiketi değil, eşleşen terimlerin listesi gibi açıklanabilir bir gerekçe de döndürmelidir. Dil modelleri için yapılandırılmış bir istem kullanın: video açıklamasını ve sabit kategorileri verin; kategori, kısa gerekçe ve güven düzeyi döndürmesini isteyin. Özgün metni ve modelin yanıtını ayrı ayrı saklayın. Bütçeyi veya iş ortağı seçimini etkileyen kararları, paylaşım bağlantıları üzerinden bir kişinin kontrol etmesini sağlayın.

Paydası açık ölçütler hesaplayın

Basit bir raporda konuya uygun videoların oranı ve paylaşım sıklığı kullanılabilir. Oran, konuyla ilgili olduğu doğrulanan video sayısının sınıflandırılabilen video sayısına bölünmesiyle bulunur. Her iki sayıyı da daima gösterin; örneğin “kontrol edilen 18 açıklamanın 7’si”. Böylece sonuç anlaşılır olur ve yüzde hesabının çok küçük bir örnekleme dayanıp dayanmadığı fark edilir.

Paylaşım sıklığı, örneğin son 30 gün içinde alınan video sayısı olarak ifade edilebilir. Dönemin sınırlarını toplama zamanı ve yayımlanma tarihleri üzerinden belirleyin. Haftalık anlık görüntüler alıyorsanız yalnızca güncellenmiş son satırı değil, her çalıştırmanın sonucunu saklayın: bu, konu ve etkinlik değişikliklerini görmeyi sağlar. Alınan öğe sayısını içerik üreticisinin tüm paylaşımlarının eksiksiz arşivi olarak yorumlamayın; fiilen alınan örneklemi analiz edin ve kullanılan kuralı açıkça belirtin.

Görüntüleme, beğeni, yorum ve paylaşım istatistikleri her video için bağlam olarak kullanılabilir. Mutlak değerleri karşılaştırırken dikkatli olun: daha eski bir paylaşımın etkileşim biriktirmek için daha fazla zamanı olmuş olabilir. Tek bir içerik üreticisinin paylaşımlarını karşılaştırırken her toplamanın zamanını kaydedin ve aynı videonun farklı anlık görüntüler arasındaki değişimini inceleyin. Aralık ve ölçümlerin erişilebilirliği kaydedilmedikçe iki anlık görüntü arasındaki farkı “büyüme hızı” olarak adlandırmayın.

Her profil için yararlı bir özet kaydı; toplama tarihini, seçilen parametreleri, alınan paylaşım sayısını, sınıflandırılan açıklama sayısını, konu eşleşmelerinin sayısını, örnek URL’lerin listesini ve belirsiz durumlarla ilgili kısa bir notu içerir. Bu tablo, bir çalışanın sonucu doğrulamasına ve başka bir analistin sonraki profilde aynı yöntemi tekrarlamasına olanak tanır.

Sayfalama ve zamanlama

Örneklem için sonraki bir sayfa gerekiyorsa, profil akışı belgelerinde önceki yanıttan alınan max_cursor kullanılır. İmleci dönüştürmeden aktarın: bu, saklanıp API’ye geri gönderilmesi gereken opak bir değerdir. Devamını isteyecekseniz yanıttaki has_more alanını da kontrol edin. Toplamayı öngörülebilir biçimde sonlandırmak için sayfa sayısını veya toplam istek bütçesini sınırlayın.

cursor = None
all_items = []
max_pages = 3

for _ in range(max_pages):
    page_params = dict(params)
    if cursor is not None:
        page_params["max_cursor"] = cursor

    page_response = requests.get(
        "https://tiktok.evelode.com/getUserFeed",
        params=page_params,
        timeout=30,
    )
    page_response.raise_for_status()
    page_payload = page_response.json()

    if page_payload.get("status") != "ok":
        raise RuntimeError("TikTok API returned a non-ok status")

    page = page_payload.get("tiktok") or {}
    all_items.extend(page.get("aweme_list") or [])

    if not page.get("has_more"):
        break

    cursor = page.get("max_cursor")
    if cursor is None:
        break

Çalıştırma sıklığını amaca göre belirleyin: ilk değerlendirme için elle çalıştırmak yeterlidir; içerik üreticilerinden oluşan bir liste için haftalık zamanlama, sürekli sorgulama yapmadan değişiklikleri ortaya çıkarabilir. Çalıştırmayı cron, CI işi veya bir orkestratöre yerleştirebilirsiniz. İş akışı basittir: profilleri tablodan alın, istekleri eşzamanlılık sınırıyla gerçekleştirin, anlık görüntüleri kaydedin, başarılı yanıtların oranını kontrol edin ve özeti çalışma tablosuna gönderin. Geçici hatalardan sonra sınırlı sayıda deneme ve gecikmeyle yeniden istek yapın; yetkilendirilmiş isteklerdeki hataları anahtarı ve yapılandırmayı kontrol etmek için ayrı kaydedin.

Yapay zekâ nerede uygundur, nerede kontrol gerekir?

Argo, birden fazla dil veya tam anahtar kelime içermeyen ifadeler kullanan açıklamaları sınıflandırmakta yapay zekâdan yararlanılabilir. Önce kapalı bir kategori listesi belirleyin ve modelden yalnızca açıklama metnini kullanmasını isteyin. Ardından küçük, elle etiketlenmiş bir örneklemde kalitesini ölçün: modelin kategorilerini editörün kararlarıyla karşılaştırın, hataları ve belirsiz durumları ayrı ayrı inceleyin. Raporda, yorumlanamayan tek bir genel puan yerine modelin elle yapılan etiketlemeyle eşleşme oranını ve kontrol edilen örnek sayısını vermek daha uygundur.

Ölçütler olmadan modele “en iyi içerik üreticisini seç” görevini vermeyin. Bunun yerine süreci ölçülebilir göstergelere ayırın: konuya uygun içerik oranı, düzenlilik, ilgili video örnekleri ve herkese açık etkileşim aralığı. Model bu alanları kısaca özetleyip dayanak bağlantılarını belirtebilir; nihai karar ise kampanyanın biçimini, hedef kitlesini ve içerik üreticisiyle yapılan anlaşmaları dikkate alan ekibin sorumluluğunda kalır.

Analiz sponsorlu içeriklerle ilgiliyse, içerik üreticisinin markayla ilişkisini hem paylaşımlar üzerinden hem de geçerli gerekliliklere göre ayrıca kontrol edin. ABD Federal Ticaret Komisyonu’nun kılavuzu, markayla ilişkinin tavsiyenin yanında görünür biçimde açıklanması gerektiğini; profil biyografisinin veya metnin görünmeyen bir bölümünün izleyiciye belirgin bir bildirim sunmak için yeterli olmayabileceğini açıklıyor. FTC’nin sosyal medya içerik üreticilerine yönelik önerilerine bakın. Herkese açık verilerin izlenmesi, kontrol için malzeme toplamaya yardımcı olur; ancak kurallara uyum değerlendirmesi belirli bir paylaşımın ve kampanyanın bağlamını gerektirir.

Sonuçta ne elde edilir?

İş akışı kurulduğunda ekip; herkese açık akışın tarihli anlık görüntülerini, açıklamalar ve erişilebilir ölçümler içeren bir paylaşım tablosunu ve konuya uygun içerik oranının tekrarlanabilir hesabını elde eder. Bunlar sayesinde profiller daha hızlı ileri incelemeye alınabilir, konu değişiklikleri fark edilebilir ve değerlendirme gerekçeleri belgelenebilir. Yöntem doğrulanabilir kalır: ham JSON, istek parametreleri, sınıflandırma kuralları ve video bağlantıları, veriden sonuca giden yolu izlemeyi sağlar.

İlk deneme için betiği tek bir profilde çalıştırın, ham yanıtı kaydedin ve birkaç sınıflandırmayı elle kontrol edin. Ardından konu sözlüğünü, örneklem kurallarını ve rapor biçimini sabitleyin. Sonuç tekrarlanabilir hâle geldiğinde zamanlamayı ve profil kuyruğunu ekleyin. Uç noktaların ve parametrelerin açıklaması için API belgelerine, ürün genel görünümü ve mevcut entegrasyon seçenekleri için TikTok Scraper API sayfasına bakın.

Çalıştırmadan önce pratik kontrol listesi

  • Kampanya konusunu, dahil etme sözlüğünü ve sınır durumlarına örnekleri kaydedin.
  • Örneklem aralığını, count değerini, sıralamayı ve sabitlenmiş paylaşımların ayarını belirleyin.
  • Ham JSON’u, toplama tarihini ve parametreleri gizli anahtardan ayrı saklayın.
  • Kimlik mevcutsa yinelenen kayıtları kaldırmak için aweme_id kullanın.
  • Değerin eksik olmasını sıfırdan ayırın ve açık bir gerekçe olmadan ölçümlerin ortalamasını almayın.
  • Örneklem büyüklüğünü konuya uygunluk oranının yanında gösterin ve örnek bağlantıları ekleyin.
  • Kampanya kararlarında kullanmadan önce yapay zekâ sınıflandırmasını elle etiketlenmiş bir örneklemde kontrol edin.
  • Değerlendirmeyi belirli aralıklarla yenileyin ve aynı kurallarla toplanmış anlık görüntüleri karşılaştırın.

İnsanlar

Bu makale için henüz kimse listelenmedi.

Okumaya devam etTikTok’ta Herkese Açık Videolarla Potansiyel Müşteri Kalitesi Nasıl Değerlendirilir: Python İş 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