Bu sayfada

Google Meet kayıtlarını otomatik ekleme ve öğrenciye bildirme

Google Meet'te kaydettiğiniz koçluk görüşmelerini ve canlı etkinlik kayıtlarını tek bir otomasyonla doğru içeriğe otomatik ekleyin ve öğrencilere haber verin; içerik başına elle kimlik gerekmez.

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.

Ö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.

  1. 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.
  2. 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.
  3. 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.

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.

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çıkEvet (ö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 sayfaHayı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ı:

AlanNe işe yararKapsam
meetLink + recordedAtBağ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ırKoçluk + canlı etkinlik
googleEventIdGoogle Takvim etkinlik kimliğiyle kesin eşleşme sağlarYalnızca koçluk

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.

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.

  1. script.google.com (yeni sekmede açılır) adresine gidip Yeni proje oluşturun.
  2. Sol menüden Hizmetler'in (+) yanından iki gelişmiş hizmeti ekleyin: Google Calendar API ve YouTube Data API v3.
  3. Aşağıdaki betiğin tamamını yapıştırın; TOKEN ve FOLDER_ID değerlerini doldurun.
  4. Soldaki Tetikleyiciler (saat simgesi) bölümünden syncRecordings için zaman güdümlü bir tetikleyici ekleyin (örn. saatte bir).
  5. İ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
  };
}

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).

  1. Yeni bir senaryo oluşturun.
  2. Google Drive > Watch Files modülü (Meet Recordings klasörü).
  3. Kaydı yeniden barındıran bir modül (ör. YouTube > Upload a Video, Unlisted).
  4. 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.

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.

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:

KodAnlamıOtomasyon ne yapmalı
200Kayıt eklendiTamam
200 (skipped)İçerik bulundu ama eklenmedi (otomatik yayınlama kapalı, kayıt zaten ekli veya içerik iptal)Tamam, tekrar denemeyin
403Token geçersiz, süresi dolmuş veya iptal edilmiş; ya da token'ı oluşturan üye yetkiyi kaybetmişToken'ı düzeltin veya yeniden oluşturun
404Bu bağlantıya/kimliğe uyan görüşme ya da etkinlik bulunamadıMeet bağlantısını ve zamanı kontrol edin
409 / 422Belirsiz 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
500Geç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

BelirtiOlası nedenÇözüm
Öğrenciler "Erişim iste" veya boş oynatıcı görüyorGoogle Drive /view bağlantısı gönderildiListelenmemiş 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üyorToken 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ı gelmiyorBu akış Google Meet içindirZoom kayıtları Zoom entegrasyonuyla otomatik eklenir
E-posta gitmediİçeriğe daha önce bir kayıt eklenmişti veya içerik yayında değilYalnızca ilk kayıt bildirir

İlgili