YouTube MCP: tarih damgalı yayın için Claude aracı
2026 · Aktif · AI araçları
YouTube MCP, Claude Code'u YouTube Data API v3 ve YouTube Analytics API'ye bağlayan, Python ile yazdığım yerel bir MCP sunucusudur. Kanal videolarını listeler, başlık ve açıklama gibi meta verileri günceller, kanal raporlarını okur ve tarih damgalı seri yayın akışını tek komutla hazırlar. Yükleme varsayılan olarak gizli yapılır; videoyu yayına almak ayrı ve bilinçli bir onay adımıdır. Vaka, aracın neden yazıldığını, on dört aracın yetki sınırlarını ve öğrendiklerimi anlatır.
- Rol
- Tasarım ve geliştirme
- Teknoloji
- Python, MCP Python SDK (FastMCP), YouTube Data API v3, YouTube Analytics API, OAuth 2.0
- Alan
- AI araçları
- Yayın
- 14 araç; yükleme varsayılan gizli, yayına alma ayrı onay adımı; kimlik bilgileri makineden çıkmaz.
Problem
YouTube kanalının (@hasancelikofficial) günlük işleri YouTube Studio’da elle yürüdüğünde her video aynı tıklama dizisini tekrarlatır: dosyayı yükle, başlığı ve açıklamayı yaz, etiketleri kopyala, kapak görselini seç, gizlilik durumunu ayarla, sonra rapor ekranına geçip izlenme verisine bak. Tarih damgalı analiz serisinde bu yük büyür; her bölüm aynı şablon açıklamayı, aynı etiket havuzunu ve aynı adlandırma kuralını taşımak zorundadır. Şablondan sapan tek bir açıklama, serinin izlenebilirliğini bozar.
Claude Code zaten günün büyük bölümünde açık olan araçtı. Kanal işlerini de aynı oturumdan, aynı sohbet diliyle yürütmek istedim; ama YouTube’un yazma yetkisi taşıyan bir API’sini bir ajana açmak, yetki sınırlarını baştan çizmeyi gerektiriyordu. MCP server nedir, ne zaman gerçekten gerekir? yazısındaki karar kuralı burada net bir cevap verdi: aynı araç birden fazla oturumda tekrar kullanılacaktı (planlanan ikinci kanal açıldığında orada da), dolayısıyla bir betik değil bir MCP sunucusu gerekiyordu.
Yaklaşım
Sunucu Python ile, MCP Python SDK’sının FastMCP arayüzü üzerinde yazıldı ve stdio ile çalışır. Her araç tek bir API işini sarar; tek istisna youtube_tarih_damgali_publish’in şablonu hazırlayıp youtube_upload_video’yu çağırmasıdır, bu da docstring’de yazılıdır. Google tarafında YouTube Data API v3 ve YouTube Analytics API etkinleştirilir, OAuth masaüstü akışıyla bir kez yetki verilir ve ortaya çıkan belirteç dosyası secrets/ klasöründe, makinede kalır; depoya girmez.
Güvenli varsayılanlar kodun içindedir: youtube_upload_video ve youtube_tarih_damgali_publish videoyu gizli (private) yükler. Yayına alma ayrı bir adımdır; kontrol ettikten sonra youtube_update_metadata ile gizlilik durumu değiştirilir. Halka açık yazan tek araç olan youtube_reply_comment, docstring’inde metnin gönderilmeden önce onaylatılmasını ister. Kota da tasarımın parçasıdır: YouTube Data API’nin günlük 10.000 birimlik kotası proje bazında ortaktır ve bir yükleme yaklaşık 1.600 birim tutar; arama ise 100 birim olduğundan aracın açıklaması ajana gereksiz tekrar aramamasını hatırlatır.
Bugün tek kanalım var (@hasancelikofficial); sunucu o kanal için yazıldı. Kanal bağı belirteç dosyasındadır; YT_PROFILE ortam değişkeni hangi belirtecin kullanılacağını seçer. Planlanan ikinci kanal açıldığında aynı sunucu kodu ayrı bir belirteç ve ayrı bir sunucu adıyla Claude Code’a kaydedilebilir; araç adları aynı kalır, hangi sunucu çağrılırsa o kanalda çalışır.
Sonuç
Kanal işleri artık Claude Code oturumundan yürüyor: “son on videoyu listele, şablon dışı açıklamalıları bul” gibi bir istek youtube_list_videos ve youtube_get_video ile cevaplanıyor; düzeltme youtube_update_metadata ile tek tek yapılıyor. Tarih damgalı bir bölüm youtube_tarih_damgali_publish ile şablonlu başlık, açıklama ve etiket havuzuyla gizli olarak yükleniyor, kontrol edildikten sonra yayına alınıyor. Kanal raporu youtube_channel_analytics ile aynı oturumda okunuyor.
Aracın sınırları da netleşti: YouTube Shorts için “ilgili video” bağlama API’de yoktur, Studio’da elle yapılır. youtube_get_transcript resmi olmayan bir kütüphane (youtube-transcript-api) kullanır; Google tarafı değişirse güncellenmesi gerekir. Kotayı harcamaz, ancak resmi API’nin güvencesini taşımaz.
Araç listesi ve yetki sınırları
On dört araç, README’deki kota maliyetleriyle birlikte üç gruba ayrılır. Yazma yetkisi taşıyanlar ayrıca işaretlidir.
| Araç | İş | Kota (birim) | Yazma |
|---|---|---|---|
youtube_auth_status |
Yetki durumu ve bağlı kanal özeti | 1 | — |
youtube_list_videos |
Son N videoyu listele | ~2–3 | — |
youtube_get_video |
Tek videonun tam ayrıntısı | 1 | — |
youtube_update_metadata |
Başlık, açıklama, etiket, gizlilik (kısmi güncelleme) | 50 | Evet |
youtube_upload_video |
Sürdürülebilir yükleme; varsayılan gizli | ~1.600 | Evet |
youtube_set_thumbnail |
Kapak görseli | 50 | Evet |
youtube_list_comments |
Yorumları oku | 1 | — |
youtube_reply_comment |
Yoruma kanal adına yanıt; gönderim öncesi onay | 50 | Evet, halka açık |
youtube_channel_analytics |
Kanal ve video raporu (Analytics API) | 1 | — |
youtube_tarih_damgali_publish |
Şablonlu seri yayını tek komutla; gizli yükler | ~1.600 | Evet |
youtube_search |
Tüm YouTube’da arama (araştırma) | 100 | — |
youtube_channel_info |
Herhangi bir kanalın özeti ve son videoları | ~3 | — |
youtube_get_transcript |
Herkese açık bir videonun altyazısı | 0 | — |
youtube_trending |
Ülke bazlı trend videolar | 1 | — |
Yetki sınırları üç kuralla özetlenir. Birincisi, en az yetki: okuma araçları serbestçe çağrılabilir, yazma araçları her seferinde tek bir videoya dokunur ve toplu yazma aracı yoktur. İkincisi, gizli varsayılan: yükleyen iki araç da videoyu gizli bırakır; yayına alma, kontrolden geçmiş ayrı bir güncellemedir. Üçüncüsü, halka açık yazma onayı: youtube_reply_comment kanal adına yorum yazdığı için metin gönderilmeden önce gösterilir. Video silme, kanal ayarı değiştirme ya da belirteç dosyasını okuyan bir araç yoktur; Hangi araçlar ajana verilmemeli? sorusunun cevabı burada koda dökülmüştür.
Öğrendiklerim
Kota bir bütçe gibi yönetilmelidir. Günlük 10.000 birim proje bazında tek bir havuzdur; bir yükleme yaklaşık 1.600 birim olduğundan aynı günde altıdan fazla yükleme sığmaz ve araştırma amaçlı her arama 100 birim götürür. Bu sayıları araç açıklamalarına yazmak, ajanın gereksiz çağrı yapmasını azaltan en ucuz önlem oldu.
Güvenli varsayılan, ajan davranışını kural yazmaktan daha iyi belirler. “Yayına almadan önce sor” talimatı yerine yüklemenin gizli başlaması, yanlış bir anda yayına çıkma ihtimalini kod düzeyinde kapatır. Aynı ilke halka açık yazma için de geçerli: yanıt aracının docstring’i onay ister, ama asıl güvence aracın tek bir yoruma tek bir metin yazmasıdır.
Resmi olmayan kütüphane, bakım borcudur. Altyazı aracı kota harcamadığı için değerli; ancak Google tarafında bir değişiklik olduğunda ilk kırılacak parça odur. Bu tür bağımlılıkları ayrı bir araçta tutmak, geri kalan on üç aracın çalışmaya devam etmesini sağlar. Aracın nasıl kullanıldığı ve MCP kararının nasıl verildiği Yazılım & AI bölümündeki yazılarda anlatılır.
02 İlgili
İlgili yazılar ve kayıtlar
Birlikte
Birlikte
çalışalım.
Az sayıda uygun işi alıyorum. İhtiyacını kısaca yaz; uygunsa bir tanışma görüşmesi planlayalım.
- Özel yazılım & AI otomasyon
- Trading sistemi & otomasyon geliştirme
- Özel eğitim (grup / bire bir)
- Yazılım danışmanlığı & iş birliği
2 iş günü içinde yanıt 20 dakikalık tanışma görüşmesi