Lovi-0/StreamingCommunity

Docker dont work.

Closed this issue · 18 comments

Ciao,
Nel docker dopo aver scaricato video e audio da un errore "FileNotFoundError: [Errno 2] No such file or directory:" esattamente nella riga:
File "/app/Src/Lib/Hls/downloader.py", line 454, in clean
os.rename(out_path, self.output_filename)

Sembrerebbe che non trova il file o il path è configurato male. Riesci a darci un occhio ?

Se invece utilizzato senza docker funziona molto bene.

ps: Nel requirements manca "unidecode".

Grazie

Ciao unidecode dopo lo aggiungo invece per docker ho visto il problema ma non ho tempo per trovare la soluzione dato che cercando sembrebbe un problema interno a docker. Forse però mi sbaglio

Se guardo dentro alla folder di destinazione esiste la cartella temporanea, sembrerebbe qualcosa della funzione clean che non gli piace. Altrimenti non riuscirebbe proprio a scrivere nemmeno il video o l'audio

Esistono anche i 0.ts per video e audio ?

sto provando con una serie, nella cartella che crei della puntata ho dentro:
Screenshot 2024-05-26 alle 21 11 50

Ok perfetto sembra tutto corretto, allora si è un problema nel clean finale.

Allora in questo caso bisognerebbe fare il print di out_path e verificare che esiste vermante: https://github.com/Ghost6446/StreamingCommunity_api/blob/main/Src%2FLib%2FHls%2Fdownloader.py#L454

Forse c'è un caso che non ho previsto perché v_v è solo video, v_a è video con audio e v_s può essere sia video e sottotitoli o video con audio e sottotitoli.

Infatti forse manca il join con i sottotitoli.

Da questa riga è quelle in po' sotto c'è la decisione dei file da rinominare e sicuramente anche l'errore: https://github.com/Ghost6446/StreamingCommunity_api/blob/main/Src%2FLib%2FHls%2Fdownloader.py#L516

se però provo ad aprire v_a.mp4 è corrotto, non so se viene fatta qualche operazione finale prima di salvarlo con il nome corretto e spostarlo nella directory della serie

l'errore più completo è:
[21:22:15] Find audios => ['ita', 'eng'] downloader.py:172
Find subtitles => ['eng', 'ger', 'gre', 'fre', 'forced-ita', 'ita', 'ukr'] downloader.py:185
Find resolution => [(854, 480), (1280, 720), (1920, 1080)] downloader.py:202
Find codec => ('v': libx264, 'a': aac, 'b': 4500000) downloader.py:223
Video already exists. downloader.py:258
Audio (ita) already exists. downloader.py:304
Subtitle (eng) already exists. downloader.py:354
Conversion => (Audio: True, Subtitle: True) downloader.py:513
ERROR:root:Error: [mov,mp4,m4a,3gp,3g2,mj2 @ 0x563ee6737700] moov atom not found
Video/streamingcommunity/Serie/SERIE_NAME/S1/EPISODIO_NAME/v_a.mp4: Invalid data found when processing input

ERROR:root:Error: Video/streamingcommunity/Serie/SERIE_NAME/S1/EPISODIO_NAME//v_s.mp4: No such file or directory

Traceback (most recent call last):
File "/app/run.py", line 145, in
main()
File "/app/run.py", line 139, in main
run_function(input_to_function[category], CLOSE_CONSOLE)
File "/app/run.py", line 87, in run_function
func()
File "/app/Src/Api/Streamingcommunity/init.py", line 38, in main_film_series
download_series(
File "/app/Src/Api/Streamingcommunity/series.py", line 179, in download_series
donwload_episode(tv_name, list_season_select[0])
File "/app/Src/Api/Streamingcommunity/series.py", line 137, in donwload_episode
donwload_video(tv_name, index_season_selected, list_episode_select[0])
File "/app/Src/Api/Streamingcommunity/series.py", line 99, in donwload_video
).start(SERVER_IP)
^^^^^^^^^^^^^^^^
File "/app/Src/Lib/Hls/downloader.py", line 529, in start
self.clean(converted_out_path)
File "/app/Src/Lib/Hls/downloader.py", line 454, in clean
os.rename(out_path, self.output_filename)
FileNotFoundError: [Errno 2] No such file or directory: 'Video/streamingcommunity/Serie/SERIE_NAME/S1/EPISODIO_NAME/v_s.mp4' -> 'Video/streamingcommunity/Serie/SERIE_NAME/S1/EPISODIO_NAME.mp4'

Andando con il debug il percorso che mi da è questo: "Video/streamingcommunity/Serie/SERIE_NAME/S1/EPISODIO_NAME"

Non vorrei che dentro il container preferisce avere /app/Video/streamingcommunity/Serie/SERIE_NAME/S1/EPISODIO_NAME

Probabilmente è un errore di ffmpeg che non funziona bene e questo deriva dal fatto che non scaricare bene, prova a vedere se è presente nel docker open ssl, altrimenti bisogna installare pycryptodome

ora è tardi ;)
domani sera provo a fare un test

Aggiungere un ulteriore controllo se ffmpeg funziona alla fine del join o meno però teoricamente è quello.

ora è tardi ;)
domani sera provo a fare un test

Certamente infatti l'ho sempre rimandato perché serviva molto tempo per trovare il problema.

Okay allora il problema è che prende sempre come root path: video e non quello passato da docker

Ora dovrebbe andare