Google Meet'te yaptığınız koçluk görüşmelerinin ve canlı etkinliklerin (webinar, atölye) kayıtlarını öğrencilerinize ilgili sayfada gösterebilirsiniz. Bu rehber, kaydı otomatik eklemeyi anlatır: kurduğunuz tek bir otomasyon (Apps Script, Make ya da n8n gibi), bir Meet kaydı hazır olduğunda onu doğru görüşmeye ya da etkinliğe kendisi ekler ve öğrenciye kaydın hazır olduğunu bildirir. Otomasyonu içerik başına ayrı ayrı kurmanız gerekmez; kuruluş genelinde tek bir kural yeterlidir.
Nasıl çalışır
Otomasyonunuz, kendi Google hesabınızdan (Takvim/Meet) tamamlanan kaydı ve onun Meet bağlantısını okur, kaydı Teachfluence'a gönderir. Teachfluence bu bağlantıdaki Meet koduyla doğru koçluk görüşmesini ya da canlı etkinliği bulur, kaydı ekler ve öğrenciye e-posta gönderir. Teachfluence arayüzünden içerik başına kimlik kopyalamanız gerekmez.
Başlamadan önce
- Kuruluşta sahip veya yönetici yetkiniz olmalı (token yalnızca sahip/yönetici tarafından oluşturulur).
- Otomasyon aracınız (Apps Script, Make, n8n gibi) kendi Google hesabınıza bağlı olmalı; tamamlanan kaydı ve onun Takvim/Meet bilgisini bu hesaptan okur.
- Tarayıcıda oynatılabilen bir kayıt bağlantısı (aşağıya bakın).
En kritik nokta: oynatılabilir bağlantı
Teachfluence gönderdiğiniz bağlantıyı öğrencinin tarayıcısında oynatır; videoyu indirmez, dönüştürmez veya yeniden barındırmaz. Google Meet kayıtları genelde Google Drive'a düşer ve bir Drive /view bağlantısı oynatılmaz, izleyene "Erişim iste" ekranı gösterir. Otomasyonunuz kaydı önce listelenmemiş bir YouTube videosuna, Vimeo'ya ya da doğrudan bir .mp4 dosyasına dönüştürmelidir.
Ön koşul: Google Meet'te kaydı açma
Bu akış tamamlanmış Meet kayıtlarını işler; dolayısıyla önce Meet'te kaydın açık olması gerekir.
Google Workspace gerekir
Google Meet kaydı yalnızca kaydı destekleyen bir Google Workspace sürümünde çalışır (ör. Business Standard ve üzeri, Education Plus). Ücretsiz kişisel @gmail.com hesapları Meet kaydı yapamaz.
- Yönetici kaydı açar. Workspace yöneticisi Admin Console (yeni sekmede açılır) > Uygulamalar > Google Workspace > Google Meet > Meet video ayarları > Kayıt yolundan "Kullanıcıların toplantılarını kaydetmesine izin ver" seçeneğini açar.
- Toplantıda kaydı başlatın. Ana bilgisayar (veya yardımcı sunucu), toplantı sırasında sağ alttaki Etkinlikler > Kayıt > Kaydı başlat ile kaydı başlatır.
- Kayıt Drive'a düşer. Toplantı bitince kayıt, organizatörün Drive'ındaki Meet Recordings klasörüne kaydedilir; otomasyonunuz bu klasörü izler.
Otomatik kayıt yok
Google Meet'te yerleşik bir "her toplantıyı otomatik kaydet" seçeneği yoktur; kaydı her toplantıda elle başlatmanız gerekir. Bu rehberdeki otomasyon, kayıt hazır olduktan sonrasını otomatikleştirir.
1. API token'ı oluşturun
Ayarlar > Entegrasyonlar > Geliştirici bölümüne gidin ve API Token'ları kartındaki Token oluştur düğmesine tıklayın.
Açılan pencerede token'a tanıyabileceğiniz bir ad verin (örn. "Meet kayıt otomasyonu"). İsterseniz bir son kullanma tarihi belirleyin; sürekli çalışan bir otomasyon için boş bırakın. Kapsam otomatik olarak Kayıt aktarımı olur.
Token oluştur'a tıkladığınızda token yalnızca bir kez gösterilir. Kopyalayıp otomasyon aracınızın güvenli alanına (kimlik bilgisi / secret) kaydedin.
Token'ı bir daha göremezsiniz
Pencereyi kapattıktan sonra token değeri tekrar gösterilmez. Kaybederseniz eskisini iptal edip yenisini oluşturun. Bir token, onu oluşturan üye gibi davranır: o üye düzenleme yetkisini kaybeder ya da kuruluştan ayrılırsa istekler 403 döner ve token'ı aktif bir yönetici altında yeniden oluşturmanız gerekir.
2. Uç noktayı ve kod parçasını kopyalayın
Aynı sayfada, Uç noktalar > Organizasyon geneli kayıt aktarımı kartında uç nokta adresini ve hazır kod parçalarını bulacaksınız.
Uç nokta adresi:
https://api.teachfluence.com/api/recording-ingest
Karttaki hazır kod parçası, koçluğa özel googleEventId alanıyla gelir. Hem koçluk hem canlı etkinlikler için aşağıdaki 4. adımda gösterilen meetLink + recordedAt alanlarını kullanın.
3. Kaydı oynatılabilir bir bağlantıya dönüştürün
Otomasyonunuz kaydı göndermeden önce onu oynatılabilir bir bağlantıya çevirmelidir. Hangi bağlantıların oynatıldığı:
| Bağlantı türü | Öğrencilere oynatılır mı? |
|---|---|
Doğrudan video dosyası (.mp4) veya HLS (.m3u8), herkese açık | Evet (önerilen) |
| Listelenmemiş veya herkese açık YouTube bağlantısı | Evet |
| Vimeo bağlantısı (herkese açık / listelenmemiş) | Genellikle evet |
Google Drive /view veya "paylaş" bağlantısı | Hayır (görüntüleyici sayfası açar, "Erişim iste" ister) |
| Dropbox / OneDrive önizleme bağlantısı ya da girişe kapalı herhangi bir sayfa | Hayır |
4. Otomasyonu kurun
Otomasyonunuzda üç adım vardır: kaydın hazır olduğunu algılayan bir tetikleyici, kaydı oynatılabilir bağlantıya çeviren bir adım ve uç noktaya POST isteği gönderen bir adım.
Görüşmeyi veya etkinliği eşleştirmek için kaydın Meet bağlantısını (meetLink) ve başlangıç zamanını (recordedAt) gönderin. Bu ikisi hem koçluk hem canlı etkinlikler için çalışır. <YOUR_TOKEN> yerine token'ı yazın:
curl -X POST 'https://api.teachfluence.com/api/recording-ingest' \
-H 'Authorization: Bearer <YOUR_TOKEN>' \
-H 'Content-Type: application/json' \
-d '{"externalUrl":"https://your-storage.example.com/recording.mp4","meetLink":"https://meet.google.com/abc-defg-hij","recordedAt":"2026-07-24T10:02:00Z"}'
Eşleştirme alanları:
| Alan | Ne işe yarar | Kapsam |
|---|---|---|
meetLink + recordedAt | Bağlantıdaki Meet koduyla eşler; aynı bağlantı tekrar kullanıldığında recordedAt (ISO-8601, saat dilimli) ile doğru olayı zamana göre ayırır | Koçluk + canlı etkinlik |
googleEventId | Google Takvim etkinlik kimliğiyle kesin eşleşme sağlar | Yalnızca koçluk |
En geniş kapsam
Üç alanı da (meetLink, recordedAt ve googleEventId) birlikte gönderebilirsiniz: koçlukta googleEventId ile kesin eşleşir, canlı etkinlikte ise meetLink devreye girer.
Canlı etkinlikler için koşul
Bir canlı etkinlik kaydının eşleşmesi için, etkinliğin toplantı bağlantısı bir Google Meet linki olmalıdır (etkinlik ayarlarındaki bağlantı alanına yapıştırılmış olmalı). Meet yerine Zoom kullanıyorsanız bu akış onu bulamaz — Zoom kayıtları zaten Zoom entegrasyonuyla otomatik eklenir. Dilerseniz her içeriğin kendi Kayıt kartından elle de ekleyebilirsiniz (aşağıya bakın).
Kaydı bağlantı yerine kütüphanenizdeki bir videodan eklemek isterseniz externalUrl yerine videoId gönderin (externalUrl / videoId ikilisinden yalnızca birini gönderin).
Otomasyon aracını seçin
Bu akışı istediğiniz araçla kurabilirsiniz. Aşağıda önce ücretsiz seçenekler, en altta diğer araçlar yer alır.
Her yolda ortak adım
Hangi aracı seçerseniz seçin, kaydı göndermeden önce oynatılabilir bir bağlantıya çevirmeniz gerekir (yukarıdaki 3. adım). En pratik yol, kaydı listelenmemiş bir YouTube videosuna yüklemektir.
Google Apps Script (önerilen, sıfır altyapı)
Kod doğrudan Google hesabınızda çalışır; Drive, Takvim ve Meet'e doğal erişimi olduğu için ayrı bir araç ya da sunucu gerekmez ve tamamen ücretsizdir.
- script.google.com (yeni sekmede açılır) adresine gidip Yeni proje oluşturun.
- Sol menüden Hizmetler'in (+) yanından iki gelişmiş hizmeti ekleyin: Google Calendar API ve YouTube Data API v3.
- Aşağıdaki betiğin tamamını yapıştırın;
TOKENveFOLDER_IDdeğerlerini doldurun. - Soldaki Tetikleyiciler (saat simgesi) bölümünden
syncRecordingsiçin zaman güdümlü bir tetikleyici ekleyin (örn. saatte bir). - İlk çalıştırmada Google, Drive/Takvim/YouTube izinlerini ister; onaylayın.
const TOKEN = 'lerec_...'; // Ayarlar > Entegrasyonlar > Geliştirici
const ENDPOINT = 'https://api.teachfluence.com/api/recording-ingest';
const FOLDER_ID = 'DRIVE_KLASOR_ID'; // Meet Recordings klasörü
// Klasördeki yeni kayıtları tarar; her birini bir kez işler.
function syncRecordings() {
const seen = PropertiesService.getScriptProperties();
const files = DriveApp.getFolderById(FOLDER_ID).getFilesByType('video/mp4');
while (files.hasNext()) {
const file = files.next();
if (seen.getProperty(file.getId())) continue; // daha önce gönderildi
const ev = findMeetEventForFile(file); // { googleEventId, meetLink, recordedAt }
if (!ev || !ev.meetLink) continue; // eşleşen Meet etkinliği yok; sonraki tarama denesin
const playableUrl = uploadToYouTubeUnlisted(file);
const res = UrlFetchApp.fetch(ENDPOINT, {
method: 'post',
contentType: 'application/json',
headers: { Authorization: 'Bearer ' + TOKEN },
muteHttpExceptions: true,
payload: JSON.stringify({
googleEventId: ev.googleEventId, // koçlukta kesin eşleşme
meetLink: ev.meetLink, // canlı etkinlik + koçluk için
recordedAt: ev.recordedAt, // meetLink ile zorunlu
externalUrl: playableUrl,
}),
});
if (res.getResponseCode() < 300) {
seen.setProperty(file.getId(), '1'); // yalnızca başarıda işaretle
} else {
console.log('Gönderim başarısız: ' + res.getResponseCode() + ' ' + res.getContentText());
}
}
}
// Drive'daki videoyu YouTube'a "unlisted" olarak yükler, izlenebilir bağlantıyı döndürür.
// (YouTube Data API v3 gelişmiş hizmeti gerekir.)
function uploadToYouTubeUnlisted(file) {
const video = YouTube.Videos.insert(
{
snippet: { title: file.getName(), description: 'Teachfluence görüşme kaydı' },
status: { privacyStatus: 'unlisted' },
},
'snippet,status',
file.getBlob()
);
return 'https://youtu.be/' + video.id;
}
// Kaydın ait olduğu Meet etkinliğini bulur ve Meet bağlantısı + başlangıç zamanı +
// Takvim kimliğini döndürür. Kayıt, toplantı bittikten kısa süre sonra Drive'a düştüğü
// için, dosyanın oluşturulma zamanına en yakın BİTEN Meet etkinliğini eşler.
// (Google Calendar API gelişmiş hizmeti gerekir.)
function findMeetEventForFile(file) {
const created = file.getDateCreated();
const windowStart = new Date(created.getTime() - 6 * 60 * 60 * 1000); // 6 saat öncesi
const res = Calendar.Events.list('primary', {
timeMin: windowStart.toISOString(),
timeMax: created.toISOString(),
singleEvents: true,
orderBy: 'startTime',
});
let best = null;
(res.items || []).forEach(function (e) {
const isMeet = e.hangoutLink || (e.conferenceData && e.conferenceData.conferenceId);
if (!isMeet || !e.end || !e.end.dateTime) return;
if (new Date(e.end.dateTime) > created) return; // henüz bitmemiş
if (!best || new Date(e.end.dateTime) > new Date(best.end.dateTime)) best = e;
});
if (!best) return null;
return {
googleEventId: best.id,
meetLink: best.hangoutLink, // https://meet.google.com/abc-defg-hij
recordedAt: best.start.dateTime, // ISO-8601, saat dilimli
};
}
Bilmeniz gerekenler
- Betiği, Meet kayıtlarının Drive'da tutulduğu ve (koçluk için) Teachfluence'ta Google Takvim entegrasyonuna bağlı olan Google hesabında çalıştırın.
- Etkinlik eşleştirme zamana dayalı bir tahmindir (kayıttan hemen önce biten Meet etkinliği). Üst üste binen toplantılarınız varsa
findMeetEventForFile'ı kendi durumunuza göre daraltın. YouTube.Videos.insertbasit yükleme yapar; çok büyük/uzun kayıtlar boyut ve süre sınırlarına takılabilir. Bu durumda kaydı S3 gibi bir yere.mp4olarak yükleyip o bağlantıyı kullanın.
Make (ücretsiz katman, düşük hacim)
Make'in ücretsiz katmanında ayda 1.000 işlem hakkı vardır ve HTTP ile Google modülleri dahildir (Zapier'in aksine ek ücret istemez).
- Yeni bir senaryo oluşturun.
- Google Drive > Watch Files modülü (Meet Recordings klasörü).
- Kaydı yeniden barındıran bir modül (ör. YouTube > Upload a Video, Unlisted).
- HTTP > Make a request modülü: POST,
https://api.teachfluence.com/api/recording-ingest,Authorization: Bearer <YOUR_TOKEN>başlığı ve JSON gövde (meetLink+recordedAt+externalUrl).
n8n veya Zapier
Bu araçlarla da kurabilirsiniz; akış aynıdır (tetikleyici, yeniden barındırma, HTTP POST). n8n'de bir HTTP Request düğümü, Zapier'de Webhooks by Zapier kullanılır.
Ücret notu
Zapier'in ücretsiz planı bu akışı çalıştıramaz, çünkü gereken "Webhooks by Zapier" ücretli bir özelliktir.
n8n HTTP Request düğümü alanları:
Method: POST
URL: https://api.teachfluence.com/api/recording-ingest
Authentication: Generic Credential Type -> Header Auth
Header Name: Authorization
Header Value: Bearer <YOUR_TOKEN>
Send Body: On (JSON)
Body:
{
"externalUrl": "https://your-storage.example.com/recording.mp4",
"meetLink": "https://meet.google.com/abc-defg-hij",
"recordedAt": "2026-07-24T10:02:00Z"
}
5. Teachfluence ne yapar
Bir istek geldiğinde Teachfluence, gönderilen bilgiyi kendi kuruluşunuz içinde arar, doğru koçluk görüşmesini ya da canlı etkinliği bulur, kaydı ekler ve (o içeriğe ilk kez kayıt ekleniyorsa) öğrenciye kaydın hazır olduğunu bildiren bir e-posta gönderir.
Eşleşti ama eklenmedi (skipped)
Bir istek doğru içeriğe ulaşıp da eklenmeyebilir; örneğin orada otomatik yayınlama kapalıysa, aynı kayıt zaten ekliyse ya da içerik iptal edildiyse. Bu durumda yanıt { "ok": true, "skipped": "..." } olur. Bu normaldir; isteği tekrar göndermeyin.
Yanıt kodları
Uç nokta, "isteğiniz hatalı, tekrar denemeyin" ile "geçici bir aksaklık, tekrar deneyin" durumlarını ayırır. Otomasyonunuzu buna göre kurun:
| Kod | Anlamı | Otomasyon ne yapmalı |
|---|---|---|
| 200 | Kayıt eklendi | Tamam |
200 (skipped) | İçerik bulundu ama eklenmedi (otomatik yayınlama kapalı, kayıt zaten ekli veya içerik iptal) | Tamam, tekrar denemeyin |
| 403 | Token geçersiz, süresi dolmuş veya iptal edilmiş; ya da token'ı oluşturan üye yetkiyi kaybetmiş | Token'ı düzeltin veya yeniden oluşturun |
| 404 | Bu bağlantıya/kimliğe uyan görüşme ya da etkinlik bulunamadı | Meet bağlantısını ve zamanı kontrol edin |
| 409 / 422 | Belirsiz eşleşme ya da geçersiz girdi (meetLink için zaman eksik, hem videoId hem externalUrl gönderildi, bozuk gövde) | İsteği düzeltin |
| 429 | Çok fazla istek (hız sınırı) | Bekleyip tekrar deneyin |
| 500 | Geçici sunucu hatası | Güvenle tekrar denenebilir |
Başarılı yanıt:
{ "ok": true }
Alternatif: kaydı elle ekleme
Tek bir kayıt için otomasyona gerek yoktur; içeriğin Kayıt kartından elle ekleyebilirsiniz.
- Koçluk görüşmesi: Ürünler > 1:1 Görüşmeler altından görüşmeyi açın, Seanslar sekmesinde tamamlanan rezervasyonun detayına gidin, Kayıt kartından ekleyin. (Kart yalnızca tamamlanmış görüşmelerde görünür.)
- Canlı etkinlik: Ürünler > Canlı Etkinlikler altından etkinliği açın, Ayarlar > Genel sekmesindeki Kayıt kartından ekleyin.
Her iki kartta da bir bağlantı yapıştırabilir ya da kütüphaneden bir video seçebilirsiniz. Yayında olan bir içeriğe eklenen ilk kayıt, öğrenciye e-posta gönderir.
Güvenlik ve bakım
- Token'ı parola gibi saklayın.
lerec_ile başlar ve kuruluşunuzda kayıt ekleme yetkisi verir; otomasyonun secret alanında tutun, düz metin akışlarına yazmayın. - Ekip değişiminde yenileyin. Token, onu oluşturan üye gibi davrandığından o kişinin rolü değişince veya kuruluştan ayrılınca token'ı iptal edip yeniden oluşturun.
- Süre belirleyin. Süreli otomasyonlar için son kullanma tarihi ekleyin; sürekli çalışanlarda boş bırakın.
- İptal edin. Token listesindeki İptal et ile bir token'ı anında geçersiz kılarsınız. İptal edilmiş ve süresi dolmuş token'lar 403 döner.
Sorun giderme
| Belirti | Olası neden | Çözüm |
|---|---|---|
| Öğrenciler "Erişim iste" veya boş oynatıcı görüyor | Google Drive /view bağlantısı gönderildi | Listelenmemiş YouTube/Vimeo ya da doğrudan .mp4 bağlantısı gönderin |
| 404 (bulunamadı) | Meet bağlantısı yanlış, recordedAt eksik/yanlış, ya da (canlı etkinlik) etkinliğe Meet linki girilmemiş | Meet bağlantısını ve zamanı kontrol edin; canlı etkinliğin bağlantı alanına Meet linkini yapıştırın |
| Her istek 403 dönüyor | Token iptal edilmiş, süresi dolmuş ya da oluşturan üye yetkiyi kaybetmiş | Aktif bir yönetici altında yeniden oluşturun |
Yanıt skipped dönüyor ama kayıt görünmüyor | İçerikte otomatik yayınlama kapalı ya da içerik iptal | İçerik ayarlarını kontrol edin; gerekirse kaydı elle ekleyin |
| Zoom görüşmesinin kaydı gelmiyor | Bu akış Google Meet içindir | Zoom kayıtları Zoom entegrasyonuyla otomatik eklenir |
| E-posta gitmedi | İçeriğe daha önce bir kayıt eklenmişti veya içerik yayında değil | Yalnızca ilk kayıt bildirir |
