Instruktaż/Tutorial QNAP sam szuka napisów do filmów

Nicodem

Staff
Contributor
15 Sierpień 2008
145
2
18
45
Warszawa
HOW-TO to to nie jest :). Na razie mocno skomplikowana sprawa ale może z czasem uda się to jakoś wrzucić mi lub komuś w skrypt automatyzujący wszystko. Osoby kiepsko poruszające się w linux'ie będą jeszcze musiały poczekać...

Co trzeba mieć zainstalowane:
z ipkg:
busybox
p7zip

z QPKG:
Python

Skrypt sciagajacy napisy od http://hacking.apcoh.com/:
http://napi.py.googlepages.com/napi.py który wrzucamy do /usr/local/bin

Co robimy?
Po pierwsze zmiana chroot na rootfs_2_3_6:
# chroot /mnt/HDA_ROOT/rootfs_2_3_6

w przypadku różnych konfiguracji RAID HDA_ROOT należy zamienić na odpowiednik.

będąc już w chroot będziemy mogli odpalić skrypty w Python'ie
busybox był potrzebny do rozwinięcia komendy find
wchodzimy do katalogu w którym mieszczą się filmy (mogą być w podkatalogach) i np dla filmów AVI odpalamy komende:
busybox find -type f -name "*.avi" -exec napi.py "{}" \; > napisy.txt
i czekamy spokojnie na napisy. Jeśli napisy istnieją w napistrefie to zostaną ściągnięte. Lista ściągniętych napisów znajdzie się
na koniec w pliku napisy.txt

to tyle. Oczywiście temat wymaga poważnego rozwinięcia. Przydałoby się zapamiętywać które napisy już są, umożliwiać konwersję np do SRT itp itd. Można uruchomić find z opcją np -mtime -30 (czyli pliki nie starsze niż 30 dni. Do konwersji użyć subconv (http://sourceforge.net/projects/subconv/)
To tylko mała 'zajawka' tego co można zrobić bezpośrednio na QNAPie.
 
jezeli ktos jest chetny mam skrypt ktory:

- sciaga napisy z napiprojekt
- konwertuje je do srt
- sciaga okladke filmu (mozna wylaczyc w konfigu)
- kasuje plik .txt (mozna wylaczyc w konfigu)

oczywiscie wszystko sie robi jedno po drugim po wydaniu jednej komendy, mozna pobrac napisy do jednego filmu lub calego katalogu z okresleniem sciezki lub tam gdzie sie go odpali.

Dzisiaj go testowalem na QNAP TS-210 i dziala OK :)
 
Witam

Oto program zapozyczony z forum o xtreamerze autorstwa lkemot. Przerobilem pare linijek w nim by dzialal na QNAP TS-210 ale mysle ze powinien w tej konfiguracji dzialac na kazdym QNAPie. Jezeli nie mysle ze silas lub ktos inny obeznany w polozeniach niektorych programow przerobi szybko to pod inne wersje QNAPa jezeli oczywiscie bedzie cos na innych nie dzialac.

Program sciaga napisy z napiprojekt i konwertuje je z .txt do .srt

1. Instalujemy biblioteki

ipkg install bash
ipkg install file
ipkg install python

2. Wrzucamy zawartosc archiwum do (jakos tak sie przyzwyczailem do wrzucania do sbin :) ):

/share/MD0_DATA/.qpkg/Optware/sbin

3. Zmieniamy prawa na plikach:

chmod 775 /share/MD0_DATA/.qpkg/Optware/sbin/napisy
chmod 775 /share/MD0_DATA/.qpkg/Optware/sbin/subconv.py
chmod 775 /share/MD0_DATA/.qpkg/Optware/sbin/pynapi.py

4. Uruchamiamy skrypt z dowolnego miejsca (najlepiej w katalogu z dana pozycja do ktorej chcemy zassac napisy):

napisy -o .

- skrypt w danym katalogu odszuka pliki typu .avi .mkv i zacznie szukac na napiprojekt do nich napisow
- zamiast . mozna wskazac dana lokalizacje pliku lub katalogu ktory ma byc przeszukany, uwazam jednak ze najlepiej wychodzi wejscie do katalogu z serialem lub filmem i odpalenie skryptu wtedy mamy pewnosc ze program szuka tylko do tego napisow
- parametr -o nie pobiera okladek do filmow poniewaz tez jest taka opcja lecz uwazam ja za zbedna poniewaz do czegos takiego swietnie np spisuje sie thumbgen

mysle ze to tyle i wszystkim powinno smigac bez problemu :) u mnie na TS-210 dziala bez zajakniecia i po skonczonej pracy mam juz gotowy plik .srt czyli taki jaki dziala na kazdym pleyerze w komputerze jak i stacjonarnych sieciowych typu popcorn, xtreamer, icybox, ariva, hyundai, asus o!play itd... wszytskie one wymagaja napisow polskich w formacje .srt i wlasnie do tego zostal stworzony ten skrypt przez kolege lkemot z forum xtreamera za co duzo ludzi jest mu wdziecznych :)
 

Załączniki

  • napisy.rar
    7,5 KB · Wyświetleń: 222
Na TS-409 z RAID5 niestety nie działa. Utworzone zostają jedynie przypadkowe pliki .txt zawierające informację o nieznalezieniu pliku tymczasowego. Skrypt odpalany jest z katalogu z filmami bez napisów. Pozdrawiam!
 
Qnap TS-110 ma inne oznaczenie dysku, wystarczyło tylko zmienić w skryptach lokalizacje:

z
/share/MD0_DATA/.qpkg/Optware/sbin
na
/share/HDA_DATA/.qpkg/Optware/sbin

Na innych Qnapach może być podobnie. Dlatego należy sprawdzić jakie mamy oznaczenia dysków.

Instrukcja krok po kroku ;) :

1. Logujemy się do naszego Qnapa przez SSH.

2. Wpisujemy cd /

3. Instalujemy biblioteki
(jeśli mamy zainstalowane Optware z QPKG)

ipkg install bash
ipkg install file
ipkg install python

4. Następnie wpisujemy

# cd /share/
# ls
wyświetla się lista katalogów
przechodzimy do pierwszego
# cd /XXX_DATA/
gdzie XXX to nazwa dysku
# cd /.qpkg/Optware/sbin
Tutaj kopiujemy zawartość archiwum (najlepiej przez mc)

5. Zmieniamy prawa na plikach:

chmod 775 /share/XXX_DATA/.qpkg/Optware/sbin/napisy
chmod 775 /share/XXX_DATA/.qpkg/Optware/sbin/subconv.py
chmod 775 /share/XXX_DATA/.qpkg/Optware/sbin/pynapi.py

6. Będąc cały czas w katalogu sbin

# vi napisy
Tutaj zmieniamy w pierwszej linijce
!/share/HDA_DATA/.qpkg/Optware/bin/bash
na
!/share/XXX_DATA/.qpkg/Optware/bin/bash
gdzie XXX to nazwa Twojego dysku

analogicznie robimy to w:
# Lokalizacja programów
progNapi="/share/XXX_DATA/.qpkg/Optware/sbin/pynapi.py"
progFile="/share/XXX_DATA/.qpkg/Optware/bin/file"
progMediaInfo="/usr/bin/mediainfo"
progSubConv="/share/XXX_DATA/.qpkg/Optware/sbin/subconv.py -f"

Zapisujemy i zamykamy plik napisy (klawisz ESC i wpisujemy :wq)

# vi pynapi.py
zmieniamy tę linijkę na swoje oznaczenie dysku:
#!/share/XXX_DATA/.qpkg/Optware/bin/python
Zapisujemy i zamykamy plik pynapi.py

W pliku subconv.py robimy to samo co w pynapi.py


7. Uruchamiamy skrypt z dowolnego miejsca

napisy -o .
Lub
napisy -o nazwa_pliku

Mam nadzieję że pomogłem.
Załączam działający skrypt na TS-110.
Pozdrawiam
 

Załączniki

  • napisy v. TS-110.rar
    7,5 KB · Wyświetleń: 171
  • Wow
Reakcje: Silas Mariusz
Po sprawdzeniu wszystkich odwołań do dysku w skryptach (MD0 na TS-409 z RAID5) nadal jest jakiś problem.

W przypadku nieznalezienia napisów niby wyświetla się poprawny tekst "Subtitles NOT FOUND". Jednak, gdy napisy zostają znalezione, zostaje jedynie utworzony plik nazwa_filmu.txt o zawartości "brak pliku tymczasowego".

Proszę o wskazówki. Pozdrawiam!
 
skrypt po instalacji od nowa nie chce działać jak powinien ;/

Kod:
Pobranie napisĂłw dla Bones.S06E14.HDTV.XviD-LOL.avi
pynapi.py: Subtitles language `pl'. Finding video files...
pynapi.py: 1/1: Processing subtitle for /volume1/public/bones6/Bones.S06E14.HDTV.XviD-LOL.avi
pynapi.py: 1/1: SUBTITLE STORED (48940 bytes), .jpeg COVER STORED (7148 bytes)
/opt/bin/napisy.find: line 68: [: too many arguments
fps wynosi lags!
lags!
lags!
lags!
lags!
lags!
lags!
lags!
lags!
lags!
lags!
lags!
lags!
23.98
Traceback (most recent call last):
  File "/opt/bin/subconv.py", line 398, in <module>
    fps = float(arg)
ValueError: invalid literal for float(): lags!
lags!
lags!
lags!
lags!
lags!
lags!
lags!
lags!
lags!
lags!
lags!
lags!
23.98
Błąd konwersji lub plik Srt jest pusty

jakieś pomysły?? ;/
 
Paollo napisał:
Po sprawdzeniu wszystkich odwołań do dysku w skryptach (MD0 na TS-409 z RAID5) nadal jest jakiś problem.

1. W przypadku nieznalezienia napisów niby wyświetla się poprawny tekst "Subtitles NOT FOUND". Jednak, gdy napisy zostają znalezione, zostaje jedynie utworzony plik nazwa_filmu.txt o zawartości "brak pliku tymczasowego".

2. Nie działa również opcja "-o". Po komendzie "napisy -o" dostaję komunikat "option -o not recognized". Dopiero "napisy -o ." prowadzi do działania opisanego w punkcie 1.

Proszę o wskazówki. Pozdrawiam!

Prawdopodobnie nie zmieniłeś praw na plikach, dlatego nie może utworzyć pliku tymczasowego.

Napisałem to we wcześniejszym poście:
5. Zmieniamy prawa na plikach:

chmod 775 /share/XXX_DATA/.qpkg/Optware/sbin/napisy
chmod 775 /share/XXX_DATA/.qpkg/Optware/sbin/subconv.py
chmod 775 /share/XXX_DATA/.qpkg/Optware/sbin/pynapi.py
 
@stanek możesz przybliżyć jak zainstalować Twoje napi.sh? Aktualnie po wgraniu tego do
share/CACHEDEV1_DATA/.qpkg/Entware-ng/sbin/napi.sh dostaję informację
Kod:
BusyBox v1.01 (2018.02.14-18:42+0000) multi-call binary

Usage: readlink

Displays the value of a symbolic link.


napi.sh i subotage.sh nie zostaly poprawnie zainstalowane
uzyj skryptu install.sh (install.sh --help - pomoc)
aby zainstalowac napi.sh w wybranym katalogu