Vimeo panelinden video ayarlarını bir inceleyin siz. Büyük ihtimalle orada bir seçeneği vardır. Ek olarak siz API'dan videonun URL değerini alacaksınız. Kullanıcıya sadece videoyu izletebilmek için URL dönseniz yeterli.
Vimeo Api ve Expiry Konusunda Yardıma İhtiyacım Var
mkeremcansev Aslında haklısınız üstteki link ziyaret edildiğinde aşağıdaki link oluşuyorsa kullanıcı girdiğinde zaten o data otomatik oluşur gibi bunu test edeceğim. Peki hocam son bir sorum daha var sizlere. Bu videoları ben sürekli apiden tümünü gösterecek şekilde mi yapacağım admine? yani bu videoları videos gibi bir tabloda tutup oradan işlem yapmak istesem nasıl bir yol izlemem gerekir yada mantıklımı?
İlginiz için çok teşekkürler bu arada
Her yeni video eklendiğinde videos
tablosuna kayıt yapacaksınız. Eğer yükleme yapmadığınız bir videoyu eklemek isterseniz el ile manuel olarak ya da API'a istek atarak (var mı bilmiyorum) alabilirsiniz.
Daha önce vimeo kullanarak ufak bir proje geliştirmiştim. Yanlış hatırlamıyorsam vimeo video ayarlarında hangi siteden görüntüleme yapabileceğinizi ayarlayabiliyordunuz. Ben video id lerini veritabanında kayıt edip login olan kullanıcılara eğer o video atanmışsa vimeo embed api ile sadece video id girerek videoyu kendi sitemden görüntüleyebiliyordum. Belki bu tarz bir yöntem işinizi görebilir.
o video atanmışsa vimeo embed api ile sadece video id girerek videoyu kendi sitemden görüntüleyebiliyordum.
Hocam aradığım bu tarz bişey olabilir, fakat yukarıdaki alıntıladığım kısmı tam olarak anlamadım. Biraz daha açabilir misiniz?
Şöyle düşün, bi videos tablosu var, bi users tablosu. Her user birden fazla videoyu satın almış olabilir. Burda bir relationship kurulacak ve video izleme ekranında kontrol sağlanacak kullanıcı bu videoyu satın almış mı şeklinde. Bunun sonrasında embed api ile video kullanıcıya gösterilecek. Fakat benim yaptığım projede videolar satın alınmıyordu, kullanıcı sadece abone oluyordu bundan dolayı pek güvenlik tarafını düşünmemiştim. Sizin o taraflarıda düşünmenizde fayda var.
beyondelayer İndirme linki oluşturduğunuz için zaman aşımı süresi var. Videoyu indirmek mi istiyorsunuz izlemek mi?
- Düzenlendi
kursatcanciger o kısımları full hallettim hocam tüm herşey hazır sadece video mantığını halletmem lazım.
mgsmus Abi şöyle ben api ile videoları çekeyim kursun ilişkili olduğu lessonların içine her birine birer tane video seçeyim ve o videolar kaydedilsin, bir video playerda hazırladım zaten video.js ile oda güzel çalışıyor. Sadece wordpress medya seçim ekranı gibi bi ekram yapıp seçim yaptığım videolar lessona atansın istiyorum, kursu satın alan kişi ne zaman izlemek isterse tıklasın ve izlesin yani, videos diye bir tabloda oluşturdum lesson içinede video_id diye bi alan verdim ama kurguyu kafamda oturtamadım hala
beyondelayer Güncel, fikir ve önerilere açığım
- Düzenlendi
Hala yardıma ihtiyacım var mantığını tam olarak oturtamadım
Yani vimeo apisi ile videoları çekiyorum bir servis oluşturdum içerisine gereken bir kaç metod yazdım ve bir videos tablosu oluşturdum.
Kafamı karıştıran şey şu;
-Videoları vimeo api üzerinden çekip ajax ile bir modalda göstertip seçtirecek miyim, yoksa bu videoları önce bir veri tabanıma kaydedip modal içerisinde o tablodaki itemleri mi göstereceğim?
-Videoları veritabanına kaydedersem mesela bir video yükleyip modala geri döndüğümde sync güncelleme nasıl yapacağım yani video yüklendi diyelim fakat modalım veritabanındaki datalardan ibaret, videonun ne zaman yükleneceğide belli değil belki şimdi belki 2 saat sonra o yüzden cron tarafıda uymuyor.
Bir callback url oluşturma alanı var acaba webhook varmı diye baya bir araştırma yaptım ama oda yok gibi OTT diye bir hizmetinin var sadece sanırım.
Lütfen bilgisi olan varsa ve cevaplarsa çok sevinirim, sadece bilgili kişiler tarafından genel bir kurguya, mantık yürütmeye ihtiyacım var
beyondelayer Her videonun bir Vimeo video id'si var. https://player.vimeo.com/video/{id} şeklinde id'yi ekleyip iframe ile kullanabiliyorsunuz:
<iframe src="https://player.vimeo.com/video/286898202" width="800" height="600"></iframe>
Siz bu id'yi bir tabloda tutacaksınız. Sonra istediğiniz yerde kullanacaksınız. Ben ne yapmaya çalıştığınızı anlamadım.
mgsmus Abi bu bir eğitim sitesi. Vimeonun en üst paketini aldık. Kursların içerisinde section ve lesson alanları var. Lesson tablosunun içerisinede videoyu adminden eklerken seçtirmem lazım, yani kursu ekleyen admin lesson için video seçmeli. Videolar api ile geliyor (yüklü videolar toplu çekilebiliyor), linkleri cover imageleri vs herşeyi. Benim yapmam gereken tek şey lesson içerisinde kullanıcının o derse ait videoyu seçmesi, embed olarak kullanmıyoruz. Direkt linki seçtirip kaydettiğimde video ön planda lessona işlemiş olacak ve izleyebilecekler
beyondelayer Ben hala anlamadım Videoları bir tabloda tutuyorsunuz zaten. Model adı da Video olsun mesela. Şunu yapmıyor musunuz:
$lesson = Lesson::findOrFail(1);
$video = Video::findOrFail(1);
$lesson->videos()
->attach($video);
- Düzenlendi
mgsmus abi işte sorunda burda Videoları bir tabloda tutmayı planlıyorum ama nasıl tutacağımı bilmiyorum
Neden derseniz eğer mesela önce tüm datayı bikere yükletip sonra mı işlem yapacağım, video linkleri değişebilir video linklerinin içerisinde exp= parametresi var süresi falan doluyor yani ben mesela videos tablosuna hangi aşamada bağlanıp videoları vimeodan çektirmeliyim veya çekmiş olduğum bir video linki artık vimeoda farklı bir urlye sahipse yeni bir video eklendi ama benim veritabanımda yok gibi bir çok soru işareti oldu kafamda aslında sormak istediğim tek şey tek cümleyle açıklarsak "ben vimeo apiyle kendi videos tablomu sürekli nasıl sync tutacağım"
- Düzenlendi
beyondelayer Size exp parametresinin sadece indirme linklerinde olduğunu söyledim. O yüzden size sordum videoyu indirtmek mi istiyorsun izletmek mi diye ama net bir yanıt veremediniz. Her bir videonun değişmeyen bir Vimeo video id'si var. Siz sadece bu id ile thumbnail_url değerini tutsanız bile yeterli, url değişir diye bir şey yok siz id'den url'yi istediğinizde oluşturabiliyorsunuz:
https://developer.vimeo.com/api/reference
https://developer.vimeo.com/api/reference/videos
- Düzenlendi
mgsmus Çok pardon abi sorunuzu kaçırmışım, videoyu izletmek istiyorum indirme olmayacak, siz videonun idsini al veritabanına kaydet zaten o id ile sorgu atınca geri kalan herşeyinede api üzerinden erişebilirsiniz diyorsunuz anladım, peki yeni bir video ekledim mesela vimeoya, ama videos tablomda kaydı yok bunun kurgusunu nasıl yapmalıyım acaba.
İlginiz için çok teşekkür ederim
beyondelayer Kendi tarafınızda video yükleme yapabiliyorsunuz ama bu zahmete girmek istemiyorsanız Vimeo tarafında videoyu yükleyin ve id'sini alıp kendi tarafınızda video ekle deyip id ile videoyu ekleyin. Ekleme sırasında isterseniz API'a istek atıp name, description gibi bilgileri alabilirsiniz ya da bu bilgileri hiç Vimeo'yu karıştırmadan kendiniz de ekleyebilirsiniz. Sonuçta Vimeo'dan bağımsız kendi sitenizde videoları izlettirmek istiyorsunuz, kullanıcı Vimeo'ya hiç girmeyecek ise oradaki name, description, image gibi alanları da kullanmasına gerek yok.
Kendiniz upload etmediğiniz sürece yeni video eklenip eklenmediğini anlık tespit etmenin yolu yok, zaten bakmışsınız webhook yok demişsiniz. O zaman bir cron ile her dakika istek atıp Vimeo video id'sine göre kontrol edip videos tablosunu doldurabilirsiniz, yoksa ekle varsa bir şey yapma gibi. Dediğim gibi o sırada upsert yaparak eğer name, description gibi bilgileri de API aracılığıyla almak isterseniz bu sırada alabilirsiniz yada Vimeo'yu sadece video deposu olarak kullanıp sitede göstermek istediğiniz bilgileri kendi tarafınızda oluşturabilirsiniz ya da ikisini birlikte tutabilirsiniz:
+----+-----------+----------------------+--------------------------+----------------------+--------------------------+
| id | video_id | name | description | video_name | video_description |
+----+-----------+----------------------+--------------------------+----------------------+--------------------------+
| 1 | 286898202 | Adminin girdiği isim | Adminin girdiği açıklama | Vimeo'dan gelen isim | Vimeo'dan gelen açıklama |
+----+-----------+----------------------+--------------------------+----------------------+--------------------------+
Eğer Vimeo'nun oynatıcısını kullanacaksanız bir iframe ile zaten https://player.vimeo.com/video/286898202 şeklinde yapabiliyorsunuz ama kendi oynatıcınızı kullanacaksanız kullanıcı video izlemek istediğinde API'ya istek atıp video izleme adresini alıp onu kendi oynatıcınıza vereceksiniz. Böylece linkte expiration, token vs varsa onları güncellemekle uğraşmayacaksınız, anlık linki oluşturacaksınız.
mgsmus Detaylı açıklama için çok teşekkür ederim abi, maalesef embed tarafını kullanamıyoruz bir video player tasarladık onun içerisine direkt link olarak veriyoruz. Biraz inceledim sizin dediğinizden yola çıkarak aslında benim zaten kendi name description alanlarım var o yüzden bu alanlara hiç ihtiyacım yok o yüzden videos tablosunda sadece id, vimeo_id ve cover_image alacağım.
Sizin dediğinizden yola çıkarak bir deneme yaptım şöyle videoya ulaşabiliyorum id ile (örnek)
$videoId = $lesson->video->vimeo_id;
$request = Vimeo::request("/videos/{$videoId}", [], 'GET');
$video = $request['body']['files'][0]['link']; // bunuda <video> tagının içerisine verince çalıştı
Birinci yol olarak yeni yüklenen videolar varsa lessona videoyu eklemeden önce bir butonla ajax isteği yaparak videoları senkronize yapsam, var olan idleri es geçip yeni varsa sadece onları eklese, video select modalının içerisine direkt videos tablosundaki verileri basabilirim. Birde cron job tanımlarsam hem adminden bir butonla videolar anlık sync olabilir hemde cron çalışır. Sizce bu yol iyi mi?
İkinci yol olarak ise modal açılırken yine ajax ile istek atıp arkaplanda güncellemelerle birlikte güncellenmiş sonucunu göstertmeyi deneyebilirim diye düşündüm.
İlginiz içinde minnettarım çok sağolun
beyondelayer Birinci yolu kullanın.
mgsmus Hakkınız ödenmez çok teşekkür ederim abi