API / Poradniki
Napisy dla całej biblioteki
Skrypt z poprzedniego poradnika przechodzi po całym katalogu i uzupełnia tylko to, czego brakuje.
- 5 minut
- Python 3
- klucz API
Zacznij od poradnika Napisy do jednego pliku wideo. Ten skrypt używa pliku
fansuby_sub.py stamtąd, więc muszą leżeć w jednym katalogu.Zrób to
Krok 1: Zapisz drugi skrypt
Wklej kod do pliku
fansuby_library.py, obokfansuby_sub.py.fansuby_library.py #!/usr/bin/env python3 """Uzupełnia polskie napisy dla wszystkich odcinków w katalogu.""" import sys import time from pathlib import Path from fansuby_sub import fetch_for VIDEO = {".mkv", ".mp4", ".avi"} for video in sorted(Path(sys.argv[1]).rglob("*")): if video.suffix.lower() not in VIDEO: continue print(f"{video.name}: {fetch_for(video)}") time.sleep(2.5) # pobieranie ma limit 30 plików na minutęKrok 2: Uruchom go na katalogu z anime
Terminal python3 fansuby_library.py /media/animeDla każdego odcinka zobaczysz jedną linię z wynikiem. Pliki, które mają już napisy, są pomijane.
Wynik Spy x Family - 07.mp4: brak napisów [Erai-raws] Sousou no Frieren - 01 [720p].mkv: pobrano (Erai-raws, srt) [SubsPlease] Jujutsu Kaisen - 01 (1080p) [AB12CD34].mkv: już są losowy plik.mkv: nie rozpoznano nazwyKrok 3: Uruchamiaj regularnie
Na Linuksie wystarczy wpis w crontabie. Raz dziennie jest w sam raz: brakujące odcinki dociągną się, kiedy ktoś doda napisy.
crontab -e 0 4 * * * FANSUBY_KEY=fsb_… python3 /opt/fansuby/fansuby_library.py /media/anime >> /var/log/fansuby.log 2>&1
Warto wiedzieć
Skrypt robi pauzę 2,5 sekundy między plikami, bo pobieranie ma limit 30 plików na minutę. Tysiąc odcinków za pierwszym razem to około godziny. Potem przebiegi są szybkie, bo większość plików jest pomijana.
Klucz w crontabie widzą wszyscy z dostępem do konta na serwerze. Zrób do tego zadania osobny klucz, żeby w razie czego usunąć go, nie ruszając innych.