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);
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);
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"
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
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
mgsmus Abi selamlar tekrardan, sitemizi tamamladık herşey için çok teşekkür ederim. İzninizle bir soru daha sorarak engin tecrübelerinizden faydalanmak isterim Sunucu kullanmadan muhtemelen çok mümkün değildir ama video içerisinde source linki olarak url kabak gibi duruyor açıkcası ve çok rahatlıkla download edilebiliyor, yani direkt vimeodan gelen bir url sonuçta fakat bunu korumanın gizlemenin yada kısmende olsa şu önlemi alabiliriz diyeceğiniz yollar var mı acaba?
beyondelayer Size dönen video linkleri içerisinde HLS (HTTP live streaming) link varsa (.m3u8 ile biter) onu src olarak kullanın. Bu HLS olayını araştırabilirsiniz.
mgsmus Çok sağolun araştırıyorum, js ile blob yapma varmış demin araştırırken gördüm yaptım aslında işimide gördü kısmen gizlenmiş oldu video ama yüklenme süresi 10 saniyeyi geçti bunu araştırayım ben çok teşekkürler abi.
mgsmus Düzeltme: https://player.vimeo.com/video/{videid}/config şeklinde 'avc_url' m3u8 dosyasına ulaşabiliyorum video playerda'da oynattım fakat api üzerinden ulaşmayı başaramadım bu linke ancak guzzle üzerinden ulaşabiliyorum api sonucu bu linki dönmüyor mu acaba
beyondelayer https://developer.vimeo.com/api/files/video-links#returning-a-video-file-links Buraya bakılırsa geliyor.