Przejdź do treści
fansuby

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

  1. Krok 1: Zapisz drugi skrypt

    Wklej kod do pliku fansuby_library.py, obok fansuby_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ę
  2. Krok 2: Uruchom go na katalogu z anime

    Terminal
    python3 fansuby_library.py /media/anime

    Dla 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 nazwy
  3. Krok 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.

Co dalej

↑↓ wybórEnter otwórz