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:
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.