Tek dikey video, kırk hesap: Bir ajan Reels ve Shorts'u Shager üzerinden nasıl dağıtır?
Kısa video dağıtan ajanlar için uygulamalı rehber: format kontrolleri, Reels ve Shorts meta verileri, hesaba özel açıklamalar, kademeli gönderim, MCP çağrıları.

Bir ajan, kısa bir dikey videoyu onlarca Instagram, Facebook ve YouTube hesabına dağıtabilir: videoyu boyutları ve süresiyle birlikte bir kez yükler, formatı her ağ için ayrı belirleyen tek bir gönderi oluşturur ve her hesaba farklı bir açıklama yazar. Shager, herhangi bir şey gönderilmeden önce dosyayı her ağın kurallarına göre doğrular, ardından aralarına rastgele bir bekleme koyarak hesap hesap gönderir. Ajanın asıl işi yükleme değil, meta verilerdir.
Bütün ders bu son cümlede. Kısa video çalışmaları nadiren videonun kendisi yüzünden başarısız olur. Ajan klibin 3 dakika 4 saniye sürdüğünü bilmediği için ya da kırk hesap kelimesi kelimesine aynı açıklamayı aldığı için başarısız olur.
Ajanın yüklemeden önce dosya hakkında bilmesi gerekenler
Üç sayı: genişlik, yükseklik ve süre. Ağlar kısa videoyu bunlara göre sınıflandırır ve kabul eder; bunları tahmin eden bir ajan, yanlış formata düşen ya da reddedilen gönderiler üretir.
En net ifade edilen kural YouTube'unki. Google'ın üç dakikalık YouTube Shorts hakkındaki yardım sayfasına göre, 15 Ekim 2024'ten bu yana yüklenen, kare ya da dikey en boy oranına sahip ve en fazla üç dakika uzunluğundaki videolar Shorts olarak sınıflandırılır. Dolayısıyla 9:16 formatında 3:04 süren bir klip, ajan ne amaçlamış olursa olsun Shorts değil, normal bir videodur.
Instagram en boy oranı konusunda daha esnek, ama onun da tercihleri var. Meta'nın Instagram Platform için içerik yayınlama belgeleri, Reels için kabul edilen kapsayıcıları ve codec'leri listeler ve kırpma ya da boşluk olmaması için 9:16'yı önerir. Video, yayınlandığı anda herkesin erişebileceği bir URL'de durmalıdır, çünkü Meta onu oradan çeker.
Shager'daki upload_media_from_url aracının isteğe bağlı width, height ve duration_ms alanları almasının nedeni bu. Bunları verdiğinizde Reels, Shorts ve hikayeler için doğrulama, 23 numaralı hesapta başarısız bir gönderi olarak ortaya çıkmak yerine yükleme anında ve planlamadan önce bir kez daha yapılır.
Ajanın elinde bu sayılar yoksa, yüklemeden önce onları almalıdır. Claude Code ya da Codex'te bu tek bir ffprobe çağrısıdır:
ffprobe -v error -select_streams v:0 \
-show_entries stream=width,height:format=duration \
-of json launch-teaser.mp4

MCP çağrı sırası
Aşağıda, 38 bağlı hesabı olan bir müşteri için ajanın https://app.shager.ai/api/mcp adresindeki Shager MCP sunucusunu kullanarak yürüttüğü sıra var. Araç adları gerçek; kimlikler yer tutucu.
- Anahtarın hangi kuruluşa ait olduğunu ve yayın yapıp yapamayacağını doğrulamak için
whoami. - Müşterinin çalışma alanını bulmak için
list_workspaces. - Ağları, durumları ve desteklenen formatları görmek için o çalışma alanında
list_channels. - Bu kampanyanın hesaplarını tutan grubu bulmak için
list_groups. - Boyutlar ve süreyle birlikte
upload_media_from_url. - Hesaba özel açıklamalar ve ağa özel formatla taslak olarak
create_post. - Müşteri videoları onaylıyorsa
request_approval, onaylamıyorsaschedule_post. - Planlanan saatten sonra her hesabın durumunu kontrol etmek için
get_post.
Yükleme çağrısı:
{
"tool": "upload_media_from_url",
"arguments": {
"workspace_id": "ws_example",
"url": "https://cdn.example-agency.com/clients/aurora/launch-teaser.mp4",
"file_name": "launch-teaser.mp4",
"width": 1080,
"height": 1920,
"duration_ms": 42000
}
}
Taslak gönderi. format alanının kanal bazında belirlendiğine dikkat edin, çünkü aynı dosya Instagram ve Facebook'ta REEL, YouTube'da ise SHORT'tur:
{
"tool": "create_post",
"arguments": {
"workspace_id": "ws_example",
"caption": "Aurora opens its new showroom on Thursday. 42 seconds inside.",
"media_ids": ["med_teaser"],
"youtube_title": "Inside the new Aurora showroom",
"youtube_privacy": "public",
"cta_url": "https://aurora-example.com/showroom",
"campaign": "showroom-launch",
"label": "Showroom teaser, week 38",
"per_channel": [
{ "channel_id": "ch_ig_downtown", "format": "REEL",
"caption": "Downtown team here. Thursday we open the doors, and this is what you'll see first." },
{ "channel_id": "ch_fb_northside", "format": "REEL",
"caption": "Northside customers asked for a showroom. Here's a 42 second look before Thursday." },
{ "channel_id": "ch_yt_main", "format": "SHORT",
"caption": "A first look at the new Aurora showroom, opening Thursday." }
],
"stagger_seconds": [45, 120]
}
}
Gerçek bir çalıştırmada per_channel içinde üç değil, her hesap için bir kayıt bulunur. Bunları ajan yazar; bir insanın yazmasına gerek yok.
Neden her hesabın kendi açıklaması olmalı?
Çünkü kırk sayfanın bir saat içinde birebir aynı metni yayınlaması, spam sistemlerinin tam da fark etmek için kurulduğu bir örüntüdür; üstelik sayfalardan ikisini takip eden herkese kötü görünür. Shager'ın kendi auth.md dosyası da ajanlara açıklamaları per_channel üzerinden hesaba göre çeşitlendirmelerini doğrudan söyler.
İyi çeşitleme, eş anlamlı kelime değiştirmek değildir. Ajan her açıklamayı o hesapla ilgili doğru bir şeye dayandırmalı: konum, ekip, kitle. Yöntemi, kelimeler değişirken marka sesini nasıl sabit tutacağınız dahil, yapay zekâyla hesaba özel açıklama çeşitlemesi yazısında ayrıntılı anlatıyoruz.
Özellikle kısa videoda açıklamaları kısa tutun. Mesajı video taşır. Seslendirmeyi tekrarlayan bir açıklama alanı boşa harcar.
Kısa videoda link nereye konur?
Ajanların en sık yanıldığı kısım bu, çünkü her ağa tek bir kural uyguluyorlar.
YouTube'da Google, yardım merkezinde spam'i azaltmak için Shorts yorumlarındaki ve Shorts açıklamalarındaki URL'lerin tıklanamadığını belirtir. Bir Shorts videosunun ilk yorumundaki potansiyel müşteri linki, link değil düz metindir. Instagram'da da açıklamalardaki ve yorumlardaki URL'ler link olarak gösterilmez. İlk yorumdaki linkin insanların beklediği gibi çalıştığı yer Facebook Sayfası gönderileridir.
Bu yüzden kısa video çalıştırmasında ajan first_comment alanını kanal bazında yalnızca işe yaradığı yerde doldurmalı, Shorts'ta boş bırakmalıdır. Shager yine de cta_url üzerinden her hesap için takip edilen bir kısa link üretir; böylece link nerede görünürse görünsün tıklama verileri hesap bazında kalır. Bu konudaki rehberin tamamı ajanlarla ilk yorumda potansiyel müşteri linkleri yazısında.

Tempo: stagger_seconds gerçekte ne yapar?
stagger_seconds, aynı ağdaki hesaplar arasında saniye cinsinden rastgele bir beklemedir. Varsayılan değer [30, 90]. Üç ağa dağılmış 38 hesapta her ağın kuyruğu kendi başına çalışır; Instagram hesapları birbirinden, YouTube kanalları da birbirinden aralıklı gönderilir.
Video için genellikle bu aralığı genişletiyorum. [45, 120] ile 38 hesaplık bir çalıştırmanın bitmesi daha uzun sürer, ama gönderiler bir betikten çok insanların yayın yaptığı izlenimini veren bir zaman dilimine yayılır. Müşteri her şeyin belirli bir saatten önce yayında olmasını önemsiyorsa, ajan aralığı daraltmak yerine daha erken planlamalıdır. Zamanlamayı ajanlar için planlama stratejisi yazısında daha derinlemesine ele alıyoruz.
Sonucu kontrol etmek
Planlanan saatten sonra ajan get_post çağrısını yapar. Bu çağrı, gönderinin genel durumunu ve her hesabın durumunu döndürür: yayın saati, canlı URL ya da hata. Gönderi durumları arasında PUBLISHED, PARTIALLY_PUBLISHED ve FAILED ile OpenAPI belgesinde listelenen diğerleri bulunur.
PARTIALLY_PUBLISHED sonucu ölçekte normaldir. Bir hesabın token'ının süresi dolmuştur; bir Sayfa bir izni kaybetmiştir. Ajanın işi körü körüne yeniden denemek değil, bu hesapları insana adlarıyla bildirmektir. Çoğu zaman çözüm, yalnızca o hesap için yeni bir müşteri bağlantı linkidir.
Betikler için REST sürümü
Hat bir sohbet ajanından değil de bir betikten çalışıyorsa, aynı iki adım REST üzerinden şöyle görünür:
curl -s https://app.shager.ai/api/v1/workspaces/ws_example/media \
-H "Authorization: Bearer $SHAGER_API_KEY" \
-H "Content-Type: application/json" \
-d '{"url":"https://cdn.example-agency.com/clients/aurora/launch-teaser.mp4",
"file_name":"launch-teaser.mp4","width":1080,"height":1920,"duration_ms":42000}'
curl -s https://app.shager.ai/api/v1/workspaces/ws_example/posts \
-H "Authorization: Bearer $SHAGER_API_KEY" \
-H "Content-Type: application/json" \
-d @teaser-post.json
Yanıtlar { "data": ... }, hatalar ise { "error": { "code", "message" } } biçiminde döner. Sınır anahtar başına dakikada 120 istektir; tek bir video çalıştırması bu sınıra asla yaklaşmaz.
SSS
Ajan yatay bir videoyu Shorts olarak paylaşabilir mi?
Hayır. YouTube Shorts'u en boy oranına ve uzunluğa göre sınıflandırır; bu yüzden yatay bir video, istediğiniz format ne olursa olsun normal video olarak yüklenir. Editörden dikey bir kurgu isteyin ya da yatay sürümü YouTube'da format değeri VIDEO olarak paylaşın ve Reels'i dikey sürüm için saklayın.
Aynı video her hesaba aynı gün mü gitmeli?
Çeşitlendirilmiş açıklamalar ve geniş bir aralıkla gidebilir. Büyük gruplarda birçok ajans, her hesabın kitlesi aynı klibi aynı saatte komşu bir sayfada görmesin diye çalıştırmayı iki ya da üç güne böler. Ajan bunu, her grup için farklı schedule_at değerleriyle ayrı gönderiler oluşturarak yapabilir.
Bir hesap videoyu reddederse ne olur?
Shager göndermeden önce her hesabı kendi ağının kurallarına göre kontrol eder; böylece sorunların çoğu planlama aşamasında, açık bir gerekçeyle ortaya çıkar. Yayın anında yine de bir şey başarısız olursa get_post hangi hesabın neden başarısız olduğunu gösterir ve çalıştırmanın geri kalanı etkilenmez.
Buradan nereye?
Ajanınız henüz bağlı değilse MCP sunucusunu, REST API'yi ve kendi kendine kaydı anlatan ajan giriş noktasından başlayın. Ardından, ajanı müşteri listesinin tamamına yöneltmeden önce küçük bir gruba tek bir kısa video gönderin.


