YouTube, internetteki en büyük kamuya açık web veri kaynaklarından biridir — 800 milyondan fazla video, milyarlarca yorum, çoğu yüklemenin transkripti ve pazar araştırmasından yapay zeka eğitimine kadar her şeyi destekleyen yapılandırılmış meta veriler barındırır. Aynı zamanda çevrimiçi ortamda en sıkı şekilde korunan platformlardan biridir ve üç yıl önce veri kazıma için işe yarayan yöntemlerin çoğu artık işe yaramamaktadır.
Okuduğunuz bu yazı, 2022 yılında teknik açıdan doğru olan eski bir kılavuzun yerini almaktadır. Bu kılavuz artık geçerli değildir. YouTube, 2025 yılına kadar bot önleme sistemini önemli ölçüde sıkılaştırdı: Artık birçok uç noktaya erişim, “Proof of Origin” jetonlarıyla sınırlandırılıyor; çoğu video sayfasının yüklenmesi için ziyaretçi verisi çerezleri zorunlu hale geldi ve veri merkezi IP aralıkları, birkaç yüz istek içinde CAPTCHA denemelerini tetikliyor. Eski öğreticilerde kullanılan CSS seçicileri, YouTube’un güncel işaretleme yapısıyla uyuşmamaktadır. Hatta bu öğreticilerde atıfta bulunulan “beğenmeme” verileri bile Kasım 2021’den beri kamuya açık değildir.
İşte 2026 yılında gerçekten çalışan kodla birlikte işe yarayan şey.
IP yasaklarının faaliyetlerinizi aksatmasından bıktınız mı? Yüksek hızlı rotasyon için Konut Proxy’lerimizi veya hesaplarınızın uzun ömürlü olmasını sağlamak için güvenli ISP Proxy’lerimizi kullanın.
Neleri toplayabilirsiniz (ve neleri toplayamazsınız)
Herkese açık, serbestçe erişilebilen veriler:
- Video meta verileri — başlık, açıklama, izlenme sayısı, yükleme tarihi, kanal, süre, etiketler
- Kanal verileri — ad, açıklama, abone sayısı (yaklaşık), video listesi, Hakkında sayfası bilgileri
- Yorumlar — yanıtlar, beğeni sayıları ve zaman damgaları dahil
- Transkriptler ve altyazılar — altyazı özelliği etkinleştirilmiş tüm videolar için
- Arama sonuçları — herhangi bir sorgu için tam SERP'ler
- Çalma listeleri — tam içerik ve meta veriler
- Canlı sohbet kayıtları — sona ermiş yayınlar için
Yöntem ne olursa olsun yasaktır:
- Özel videolar
- URL’si elinizde olmayan, listelenmemiş videolar
- Hesabın sahibi olmadığı, oturum açma işleminden sonra görünen her şey
- Tek tek izleyicilere ilişkin etkileşim verileri
- Kesin abone sayıları (YouTube, kamuya açık olarak yalnızca yuvarlatılmış rakamları gösterir)
Yasal boyut da önemlidir: YouTube’un Hizmet Şartları, otomatik erişimi kısıtlamaktadır. Halka açık verilerin toplanması çoğu yargı alanında genel olarak yasaldır, ancak Hizmet Şartları ihlalleri hesap engellemelerine ve bazı durumlarda hukuki işlemlere yol açabilir. Giriş gerektiren alanlardan veri toplamayın. Halka açık olarak görüntülenenlerin ötesinde kişisel olarak tanımlanabilir bilgiler toplamayın. Video içeriğini yeniden dağıtmayın. Yapay zeka eğitimi için veri topluyorsanız, kaynağı belgelendirin ve içerik oluşturucuların haklarına saygı gösterin — AB Yapay Zeka Yasası ve benzeri düzenlemeler bu alanda giderek daha aktif hale gelmektedir.
Bilmeniz gereken dört yöntem
2026 yılında aslında dört farklı yaklaşım var — doğru olanı seçmek, neyi hedeflediğinize ve bunu hangi ölçekte gerçekleştirmek istediğinize bağlıdır.
| Yöntem | En uygun olduğu durumlar | Oturum açılması gerekiyor | Ölçek |
|---|---|---|---|
| YouTube Veri API v3 | Yapılandırılmış sorgular, küçük ila orta hacimli | API anahtarı | Sınırlı (günde 10.000 birim ücretsiz) |
| yt-dlp | Diğer her şey — meta veriler, yorumlar, transkriptler, toplu işlemler | Yok (bazı videolar için çerezler) | Vekiller kullanıldığında orta ila yüksek |
| youtube-transcript-api | Yalnızca transkriptler | Hiçbiri | Orta |
| Özel veri toplama (istekler + InnerTube) | Yukarıda ele alınmayan özel durumlar | Hiçbiri | Altyapı açısından gelişmiş |
Uygulamada, çoğu ciddi işlemde yt-dlp ana araç olarak kullanılır ve yt-dlp'nin yetersiz kaldığı durumlarda diğer araçlara başvurulur.
Yöntem 1: YouTube Veri API v3
Uygun olduğunda en sorunsuz seçenek budur. Google’ın resmi API’si videolar, kanallar, oynatma listeleri, arama ve yorumlar için yapılandırılmış JSON verileri döndürür. Botları engellemeye yönelik herhangi bir engel yoktur — istek ya başarılı olur ya da net bir kota hatası döndürür.
Asıl sorun kota. Ücretsiz kademede günlük 10.000 birim hakkınız var. A videos.list Bir çağrı 1 birim, bir arama ise 100 birim maliyete sahiptir. Bu, günde yaklaşık 100 arama sorgusu ya da 10.000 video meta veri alımı anlamına gelir. Birçok kullanım senaryosu için yeterli olsa da, büyük ölçekli uygulamalar için yetersizdir.
python
from googleapiclient.discovery import build
API_KEY = "YOUR_API_KEY"
youtube = build("youtube", "v3", developerKey=API_KEY)
# Get metadata for a specific video
response = youtube.videos().list(
part="snippet,statistics,contentDetails",
id="dQw4w9WgXcQ"
).execute()
video = response["items"][0]
print(video["snippet"]["title"])
print(video["statistics"]["viewCount"])
print(video["contentDetails"]["duration"])
Verilerinizin hacmi kota sınırlarına uyuyorsa ve temiz, istikrarlı veriler elde etmek istiyorsanız API’yi kullanın. Meşru bir iş gerekçeniz varsa kota artırımı için başvurun — Google, gerçek uygulamalar için bu tür talepleri onaylar, ancak “bir veri toplayıcı geliştiriyorum” gibi gerekçelerle yapılan başvuruları kabul etmez.
Yöntem 2: yt-dlp
yt-dlp, API’nin tam olarak kapsamadığı her şey için fiili standarttır. Bu, youtube-dl’nin aktif olarak güncellenen bir çatalıdır; API anahtarı gerektirmez ve meta verileri, yorumları, transkriptleri ve indirmeleri tek bir araçta yönetir.
Yükleme:
bash
pip install yt-dlp
Hiçbir şey indirmeden tek bir videonun meta verilerini alın:
python
import yt_dlp
def get_video_metadata(url):
opts = {
"quiet": True,
"skip_download": True,
"no_warnings": True,
}
with yt_dlp.YoutubeDL(opts) as ydl:
info = ydl.extract_info(url, download=False)
return {
"title": info.get("title"),
"channel": info.get("uploader"),
"views": info.get("view_count"),
"likes": info.get("like_count"),
"duration_sec": info.get("duration"),
"upload_date": info.get("upload_date"),
"description": info.get("description"),
"tags": info.get("tags", []),
}
data = get_video_metadata("https://www.youtube.com/watch?v=dQw4w9WgXcQ")
print(data)
Yorumları (yanıtlar dahil) al:
python
import yt_dlp
def get_comments(url, max_comments=500):
opts = {
"quiet": True,
"skip_download": True,
"getcomments": True,
"extractor_args": {
"youtube": {
"max_comments": [str(max_comments)],
"comment_sort": ["top"],
}
},
}
with yt_dlp.YoutubeDL(opts) as ydl:
info = ydl.extract_info(url, download=False)
return info.get("comments", [])
comments = get_comments("https://www.youtube.com/watch?v=dQw4w9WgXcQ")
for c in comments[:5]:
print(f"{c['author']}: {c['text']} ({c['like_count']} likes)")
Bir aramadan elde edilen video kimlik numaraları listesini toplu olarak kazıyın:
bash
yt-dlp --flat-playlist -j "ytsearch50:web scraping tutorial" | jq -r '.id'
Çoğu öğreticide yer almayan birkaç pratik not:
- yt-dlp'yi sık sık güncelleyin. YouTube, ekstraktörü düzenli olarak devre dışı bırakıyor — en az ayda bir kez. Eski bir sürümü kullanmak, komut dosyalarının nedeni bilinmeyen bir şekilde boş sonuçlar vermesinin en başlıca nedenidir.
pip install -U yt-dlpbakım programınızda yer almalıdır. - Yaş sınırlaması olan videolar için çerezler gereklidir. Bir tarayıcı oturumundaki çerezleri dışa aktarın ve bunları şu yol üzerinden aktarın:
cookiefileiçindeydl_opts. - Yüksek trafik hacmi için proxy'lere ihtiyaç vardır. Bunlar olmadan, hız sınırlarına ve IP engellemelerine çabucak maruz kalırsınız. Bu konuyla ilgili daha fazla bilgi aşağıda yer almaktadır.
Yöntem 3: youtube-transcript-api
Eğer tek ihtiyacınız olan şey transkriptler ise — ki transkript metinleri, LLM tabanlı içerik analizi için en yararlı girdi olduğundan, bu durum giderek daha yaygın hale geliyor — youtube-transcript-api yt-dlp'den daha hafif ve daha hızlıdır.
python
from youtube_transcript_api import YouTubeTranscriptApi
def get_transcript(video_id, languages=("en",)):
try:
transcript = YouTubeTranscriptApi.get_transcript(
video_id, languages=list(languages)
)
return " ".join(entry["text"] for entry in transcript)
except Exception as e:
print(f"No transcript available: {e}")
return None
text = get_transcript("dQw4w9WgXcQ")
print(text[:500] if text else "None")
Transkriptler, duygu analizi, RAG iş akışları ve videolardan metin içeriğine ihtiyaç duyan tüm LLM tabanlı iş akışlarıyla doğal bir şekilde bütünleşir. Bu, 2026 yılında en hızlı büyüyen veri toplama kullanım örneklerinden biridir.
Yöntem 4: InnerTube ve ytInitialData
Özel durumlar için — kanal hakkında veriler, belirli devam jetonları, yukarıdaki araçların net bir şekilde sunamadığı her türlü bilgi — YouTube’un dahili uç noktalarına doğrudan erişebilirsiniz. Ön uç, şu adresteki özel bir API’yi kullanır: /youtubei/v1/, ve çoğu video sayfasında bir ytInitialData Bir içindeki JSON nesnesi <script> işlenmiş sayfa durumunu içeren etiket.
Bu yöntem diğerlerine göre daha istikrarsızdır — YouTube, yapıyı zaman zaman değiştirir — ancak aynı zamanda en esnek olanıdır:
python
import requests
import re
import json
def extract_initial_data(video_url):
headers = {
"User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) "
"AppleWebKit/537.36 (KHTML, like Gecko) "
"Chrome/120.0.0.0 Safari/537.36",
}
response = requests.get(video_url, headers=headers)
match = re.search(r"var ytInitialData = ({.*?});</script>", response.text)
if not match:
return None
return json.loads(match.group(1))
data = extract_initial_data("https://www.youtube.com/watch?v=dQw4w9WgXcQ")
# data is the full page state — navigate it for whatever you need
Bu yaklaşımı yalnızca diğer yöntemler söz konusu durumu kapsamadığında kullanın. Şu yapının ytInitialData muazzam boyuttadır ve düzenli olarak değişir; bu alanda yolunu bulmak için her seferinde tarayıcının geliştirici araçlarını derinlemesine incelemek gerekir.
Vekil katmanı
Tek bir IP adresinden gelen günlük istek sayısı birkaç yüzü aştığında, YouTube karşı önlemler almaya başlıyor. 2026’daki eğilim tutarlı: önce bir 429 Too Many Requests, ardından isteklerin başarılı olduğu ancak kalitesi düşürülmüş veriler döndürüldüğü bir “yumuşak engelleme” aşaması, ve son olarak her isteğin “bot olmadığınızı doğrulamak için oturum açın” mesajıyla karşılaşılan bir “sert engelleme” aşaması.
Büyük ölçekli veri toplamanın işe yarayıp yaramayacağını belirleyen üç faktör vardır:
IP türü. Veri merkezi IP’leri birkaç yüz istek içinde işaretlenir. Ev tipi veya İSS proxy’leri bu engeli aşar — YouTube’da, ev tipi bir IP’den gelen trafik, ev bağlantısı kullanan normal bir kullanıcıya benziyor.
Dönüş düzeni. YT-DLP için, her video isteğinde IP adreslerini değiştirmek standart uygulamadır. Oturum tabanlı veri toplama işlemlerinde (yorumları sayfalandırma, bir kanalı tarama), oturum süresince aynı IP adresini kullanmak (10–30 dakika boyunca), oturum ortasında IP adresini değiştirmekten daha doğal görünür.
Coğrafi dağılım. YouTube, farklı bölgelere farklı içerikler sunar. Bölgeye özgü veriler topluyorsanız — trend listeleri, yerelleştirilmiş arama sonuçları, bölgesel video erişilebilirliği — proxy'lerinizin bu bölgelerde bulunması gerekir.
Bir proxy sunucusunu yt-dlp’ye bağlamak oldukça basittir:
bash
yt-dlp --proxy "http://USER:PASS@proxy.example.com:8080" \
--skip-download --write-info-json \
"https://www.youtube.com/watch?v=dQw4w9WgXcQ"
Ya da Python'da:
python
opts = {
"quiet": True,
"skip_download": True,
"proxy": "http://USER:PASS@proxy.example.com:8080",
}
İstek tabanlı veri toplama için (yukarıdaki 4. Yöntem):
python
proxies = {
"http": "http://USER:PASS@proxy.example.com:8080",
"https": "http://USER:PASS@proxy.example.com:8080",
}
response = requests.get(video_url, headers=headers, proxies=proxies)
IPBurger’ın ev tipi ve ISP proxy’leri bu tür işler için tasarlanmıştır — temiz IP’ler, ülke düzeyinde hedefleme, gerektiğinde sabit oturumlar — ve daha genel ilke, sağlayıcıdan bağımsız olarak geçerlidir: önemli hacimlerde, yükü taşıyan unsur proxy katmanıdır. Veri toplama komut dosyası 50 satır uzunluğundadır; komut dosyasının sonuna kadar çalışıp çalışmayacağı ya da %30’da takılıp kalacağı, altyapıya bağlıdır.
Mantıklı bir varsayılan iş akışı
Bugün bir YouTube veri toplama projesine başlıyorsanız, ölçeklenebilirlik sağlayan yol şudur:
- Gerçekten ihtiyacınız olan verileri belirleyin. Çoğu projede her şeye ihtiyaç duyulmaz — kapsamı daraltmak, kota israfını önler ve engellerin ortaya çıkma olasılığını azaltır.
- Uygunsa önce YouTube Veri API’sini deneyin. Günlük hacminiz 10.000 birimin altındaysa ve API ihtiyacınız olan bilgileri sağlıyorsa, bu en güvenilir yoldur.
- API uygun olmadığında yt-dlp’yi kullanın. Bu araç, yorumları, transkriptleri, toplu işlemleri ve arama sonuçlarına dayalı her türlü işlemi kapsar.
- 429 hataları almaya başladığınızda bir konut proxy katmanı ekleyin. Yalnızca gecikmelerle hız sınırlayıcıyı atlatmaya çalışmayın — IP adresiniz bir kez işaretlendi mi, artık işaretlenmiş demektir.
- Transkript ağırlıklı işler için youtube-transcript-api’yi kullanın. yt-dlp’den daha hafif ve bu özel iş için daha hızlıdır.
- Özel istekler + InnerTube, ancak başka hiçbir seçenek uygun olmadığında kullanılmalıdır. Bilinmesi gereken bir konu; başlangıçta denemeye değmez.
- Kırılmaya karşı hazırlıklı olun. Bugün yayınladığınız her şey altı ay içinde bozulacaktır. YouTube ön yüzünü değiştirir, extractor buna ayak uydurur, siz de bağımlılığı güncellersiniz. Buna hazırlıklı olun.
2022'den bu yana gerçekte neler değişti?
Eski bir veri toplama kurulumundan geçiş yapanlar için, dikkat çekmeye değer önemli değişiklikler şunlardır:
- “Beğenmeme” verileri artık yok. YouTube, Kasım 2021’de herkese açık “beğenmeme” sayılarını kaldırdı. Bunları geri getirecek hiçbir yöntem yoktur; üçüncü tarafların “beğenmeme” tahminleri yalnızca varsayım niteliğindedir.
- Menşe Kanıtı jetonları artık birçok akış ve ayrıntılı meta veri uç noktasına erişim kısıtlaması getiriyor. yt-dlp, mümkün olduğunda bunu dahili olarak hallediyor; manuel veri toplama işlemlerinde ise bu durumla açıkça ilgilenilmesi gerekiyor.
- Çoğu video sayfasının yüklenmesi için ziyaretçi verilerini içeren çerezler gereklidir. Oturumu henüz aktif hale gelmemiş yeni bir IP adresi, genellikle videoyu izlemek yerine onay ekranıyla karşılaşır.
- Eski öğreticilerdeki CSS seçicileri uyuşmuyor. YouTube, 2023 ve 2024 yılları boyunca kullanıcı arayüzünü önemli ölçüde yeniden düzenledi. Aşağıdaki gibi sınıflara atıfta bulunan herhangi bir öğretici:
yt-uix-tile-linkyıllardır mevcut olmayan bir biçimlendirme sürümüne atıfta bulunuyor. - Bazı uç noktalar için kota maliyetleri arttı. Arama kotası hâlâ 100 birim olarak kalmıştır, ancak diğer bazı uç noktalarda değişiklikler olmuştur. Tahminde bulunmadan önce güncel kota kılavuzunu kontrol edin.
Dürüst bir özet
2026 yılında YouTube’dan veri toplamak, kulağa geldiği kadar zor değil — 2022’den bu yana araçlar çok daha iyi hale geldi (yt-dlp gerçekten mükemmel) ve resmi API, uygun işler için güvenilir. Zor olan kısım veri toplama mantığı değil; bunun altında yatan altyapıdır. Ev tipi veya ISS proxy’leri kullanın, araçlarınızı haftalık olarak güncelleyin ve kaçınılmaz aksaklıklara karşı önlem alın; böylece veriler sizin olur.
İşletmenizin gücü, proxy sunucularınızın çalışma süresiyle doğru orantılıdır. Özel hızlar ve sarsılmaz güvenilirlik için kurumsal düzeyde Statik ISP Proxy’lerine geçin. YA DA Dönen Ev Proxy’lerini kullanın ve %99,9’luk veri toplama başarı oranı elde edin.
