top of page

Śledź nasze wpisy w social media

  • Instagram
  • Facebook
  • Twitter
  • LinkedIn
  • YouTube
Zdjęcie autoraPiotr Kośka

Umarł król, niech żyje król yt-dlp


biblioteka yt-dlp do pobierania wideo z youtube

Do przygotowania i napisania tego artykułu skłoniły mnie ostatnio zmiany na YouTube które, wpłynęły na działanie dość popularnej biblioteki youtube-dl do pobierania filmów z youtube (ale nie tylko). Zmiany w YouTube w sposobie przechowywania metadanych spowodowały, że pobranie ich stało się niemożliwe i próba pobrania ich kończyła się błędem o nie możliwości sparsowania danych w odpowiedni sposób.


Kod który realizował zadanie wygląda w następujący sposób:


Prosty kod który pobiera tagi z wskazanego wideo. I wspomnianego problemu bym nie napotkał gdybym nie pobierał tagów. I tu pytanie po co mi te tagi?


yt-dlp rozwiązaniem problemu


Zanim odpowiem na wcześniej postawione pytanie to z youtube-dl miałem już wcześniej problemy bo wersja na której, bazowałem była dość leciwa wersją biblioteki python. Pochodziła ona według numeru release z 2021. Samo pobieranie wideo i audio w dostępnych formatach na youtube-dl działało. Oczywiście dostępne formaty zależą od danego filmu spójrzmy na przykład:


Wykorzystuje tu binarkę która można pobrać z youtube-dl lub ytdl-nightly. A samo pobranie jest po prostu odwołaniem się do odpowiedniego formatu. Jak interesuje nasz wideo z dźwiękiem to w youtube-dl wskazujemy dostępne formaty jako sumę np 137+140 czyli wideo w formacie 1920x1080 mp4 i audio m4a razem połączone w jeden plik.


Pobranie samych tagów z poziomu binarki youtube-dl nie jest możliwe dlatego powstała potrzeba napisania prostego skryptu w python ktory zaprezentowałem powyżej. Same tagi były mi potrzebne do przygotowania wersji angielskojęzycznej filmu. Tak pobrałem film z Youtube i potem za pomocą aplikacji Captions przerabiałem go na wersję angielską i wrzucałem na drugi kanał. Tagi i inne mata dane opisowa również tłumaczyłem automatyzując cały proces do podania jedynie linku filmu. A cała magia działa się pod spodem za pomocą odpowiedniego połączenia polskiej wersji YouTube i jego odpowiednika w wersji angielskiej. Finalnie moje operacje zamykały się na jedynie opublikowaniu filmu po organoleptycznym przejrzeniu go.


Binarke już dawno zastąpiłem yt-dlp nowsza wesją zgodną za youtube-dl pod względem składni. Więc tak naprawdę w systemie linux była to po prostu podmiana binarki i zmiana nazwy yt-dlp na youtube-dl by zmiana z punktu widzenia pipeline była jak najmniejsza.


Pobieranie potrzebnych opisów tagów i meta tagów odbywała się w następujący sposób. Jak możemy zobaczyć pobieranie tagów realizowane jest przez skrypt:


To już jego poprawiona wersja i biblioteka youtube-dl zastąpiona yt-dlp. Jak widać w jednym i drugim przypadku podmiana była dość organiczna i jedynie skupiała się na zamianie nazwy.


Pobranie samego audio i zapisanie do do pliku odbywa się ze wskazaniem samego formatu audio - jak nie odniesiemy się do wariantu jakościowego formatu pobieranego. To youtube-dl lub jak przeszliśmy tak fajnie na yt-dlp pobierze nam najlepsza wersję.

Z takiego audio łatwo zrobić transkrypcję za wykorzystaniem np wisper od open-ai


Podsumowanie


Obecnie wykorzystuje w pełni bibliotekę yt-dlp. I wygląda że zadomowi się u mnie na długo szczególnie za szybki czas rozwiązywania problemów. A ty jak wykorzystujesz wspomnianą bibliotekę?


Spodobał się artykuł? podziel się nim na swoich social media - dziękuję i pozdrawiam Piotr Kośka.

96 wyświetleń0 komentarzy

Ostatnie posty

Zobacz wszystkie

Comentarios


Śledź nasze wpisy w social media

  • Instagram
  • Facebook
  • Twitter
  • LinkedIn
  • YouTube

Poznaj terraform jedno z najepszych narzedzi do zarządzania infrastrukturą w kodzie (IaC) - w kursie tym przeprowadzam Cię przez proces instalacji i konfiguracji tego narzędzia.

bottom of page