Laravel Türkiye Discord Kanalı Forumda kod paylaşılırken dikkat edilmesi gerekenler!Birlikte proje geliştirmek ister misiniz?

Herkese selamlar, bir kurs projesi yapıyorum fakat kafama takılan çok fazla konu var ve ilerleyemez hale geldim bir kurguya ihtiyacım var ama çözemiyorum, yardımlarınıza ihtiyacım var bilgi verebilirseniz çok sevinirim

1) Vimeo videolarını, admin panelde lesson'a video ekletmek için bir modal yapacağım, fakat Apiden gelen tüm datayı mı döndürmeliyim yoksa videoları Videos tablosu gibi bir tabloya kayıt mı etmeliyim? Burada kafamı karıştıran şey api istek limiti var fakat nasıl bir yol izleyebilirim bilmiyorum.

2) Vimeo videolarında "expiry" parametresi var. Tahmini olarak apiden gelen videolar 1 gün kadar yayında kalıyor ve sonrasında siliniyor. Yani videoları güncellemem lazım gibi ama nasıl yapacağımı bilmiyorum.

Nasıl bir yol izlememi önerirsiniz?

Video yüklendikten sonra videos tablosunda expiry_date sütununda dönen expiry değerini tutarsınız. Süresi dolan videoları da bir scope kullanarak kullanıcılara göstermezsiniz. API istek limitini arttırmak için de plan yükseltmelisiniz, aklıma farklı bir çözüm gelmiyor.

    mkeremcansev en üst paket var hocam yanılmıyorsam, expiry değeri bitince ama videolar iptal olsun istemiyorum, bir eğitim sitesi yapıyoruz, vimeo videoların çalınmasını önlemek için böyle bişey yapmış sanırım güzelde fakat o videoları kullanıcı izlerken kesinti yaşamaması lazım yani istek atıldığında güncel verimi gelmesi gerekir tam bilemedim ama

    Vimeo tarafında bir ayarı vardır, ya da video yüklerken siz gönderiyor olabilirsiniz. Bu expiry olayını Vimeo tarafından kaldırıp güvenlik önlemlerini sizin tarafta yapmanız lazım.

      mkeremcansev Teşekkür ederim bakıyım hocam, ama tam çözüm bu da değil gibi. Videoları isteğe göre tekrar veritabanına almak yada güncellemek gibi şeyler geçiyor aklımdan, yani vimeodan gelen isteği alıp videos tablosuna kaydedip videostan sonuç döndürmek ama oradaki urlyi güncelletmek gerekiyor gibi kafam karman çorman oldu 😃 teşekkür ederim

      Bir video yüklendikten sonra URL değişmiyor diye biliyorum. Neden URL i güncelliyorsunuz?

        mkeremcansev

        Şöyle izah ediyim hocam size tam olarak. Apiden mesela linki çektim diyelim bana vimeonun verdiği bir video datası misalen;

        https://player.vimeo.com/progressive_redirect/playback/xxx22545/rendition/1080p/file.mp4?loc=external&oauth2_token_id=xxxx55833&signature=xxxxxx40aa147166e1c14d9c5cedb240b5522937569347f

        Bu link aktif olması lazım bu arada, bu linke tıkladığınız zaman ise yapı değişiyor ve link farklı bir hale geliyor (exp parametreleri falan burada ekleniyor.

        https://download-video.akamaized.net/v3-1/playback/xxxxx-d4d3-4ce2-a328-9c6bbf801115/b9f5d6b5?__token__=st=1708090753~exp=1708105153~acl=%2Fv3-1%2Fplayback%2F386dbbb7-d4d3-4ce2-a328-9c6bbf801115%2Fb9f5d6b5%2A~hmac=xxxxxed32486b1fb7b1f782c86f9b28eb04d99a416b9212acf0e19e3&r=dXMtd2VzdDE%3D

        Ben localde çalışıyorum genelde, localde bir sorun yoktu fakat geçen canlıya yüklediğimde müşteri videoları izleyemiyoruz dedi, baktığımda videoların olmadığını gördüm o sırada linkteki exp değerini farkettim.

        Sonrasında ise tıkandım kaldım ne yapacağımı bilemedim 🙂

          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.

            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.

            smh

            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?

                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

                  5 gün sonra

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