YSG (YouTube Subtitle Grabber)

Krótki opis

Stworzyłem bardzo prosty skrypt do masowego pobierania automatycznie wygenerowanych napisów/transkrypcji filmów z YouTube. Narzędzie ma pomagać analizować treści na YouTube bez potrzeby oglądania ich w całości. Narzędzie pobiera napisy i generuje plik .csv i .txt, które pomagają w późniejszej analizie.

Skrypt można pobrać tutaj: YSG 0.1

Jak działa skrypt

Mój skrypt wykorzystuje znacznie bardziej zaawansowane narzędzie YT-DLP pozwalające na pobieranie filmów na YouTube. YT-DLP w wersji podstawowej jest jednak bardzo niepraktyczne, ma skomplikowaną strukturę i pozwala na pobranie materiałów z wybranego kanału. Jeśli chcemy przeanalizować filmiki z 3 ostatnich dni, które pojawiły się na 20 kanałach moje narzędzie powinno być znacznie bardziej użyteczne.

Oczywiście w wielu przypadkach można zrobić tę pracę „na piechotę", mój skrypt się przydaje przy analizie dużej ilości treści z różnych kanałów co może mieć zastosowanie przy monitorowaniu np. kanałów ekstremistycznych.

Jak używać skryptu

Przed pierwszym użyciem

Zainstaluj:

  • Python 3
  • ffmpeg
  • yt-dlp

Ustawienia:

  • W folderze settings znajduje się plik channels.txt. W osobnych wierszach wklejaj kanały YouTube, które mają być uwzględniane przez narzędzie.
  • W folderze settings znajduje się plik language.txt. Jego treść to kod języka (domyślnie ustawiony jest Polski) w jakim mają być pobrane napisy, które wygenerował YouTube
  • W folderze settings nie ma pliku cookies.txt. Jest on potrzebny, i użytkownik dopiero musi go wkleić do folderu. Aby to zrobić zainstaluj wtyczę Cookies.txt dla Firefoxa lub Chrome, wejdź na YouTube i zapisz plik cookies.txt. Dzięki temu narzędzie będzie mogło pobierać napisy z wielu kanałów.

Działanie w praktyce

python3 ysg.py -d 3

Uruchomienie skryptu z flagą -d 3 pobierze transkrypcje filmów z ostatnich 3 dni z wybranych kanałów. Domyślnie parametr -d wynosi 1. Narzędzie testowałem do tej pory na maksymalnie 20 kanałach. Przed każdym użyciem trzeba generować od nowa plik cookies.txt.

Jeśli wszystko poszło zgodnie z planem to w terminalu powinno dać się zobaczyć coś w tym stylu:

ysg

Napisy będą zapisane w folderze subitles, zaś w folderze output znajdą się dwa pliki. Plik output.csv i output.txt, oba pliki będą zawierajać datę, tytuł filmu, nazwę kanału i transkrypcję.

Gdyby pojawiły się problemy w folderze skryptu powinien się pojawić plik log.txt, w którym znajdą się szczegóły działania skryptu.