szmichal
#programowanie #programista15k #devops #linux #docker

Hej, używam ffmpeg'a i youtube-dl w dockerze.

Przy lokalnym developmencie na windowsie wszystko śmiga (pobieranie wideo) schody zaczynają się kiedy stawiam sobie obraz dockerowy na kompie, wtedy pobieranie filmu z yt za pomocą ffmpega cały czas wyrzuca kod HTTP 403. Chce mieć to skonteneryzowane bo będę wystawiał dynamicznie na chmurze on demand (najprawdopodobniej jakaś kolejka). Any ideas, dlaczego ffmpeg i yt-dl zwraca taki błąd a developując lokalnie na windowsie już nie? W obu przypadkach te same argumenty
1
  • Najlepsze
  • Wszystkie komentarze
typ_z_internetu_pro
typ_z_internetu_pro
coś masz z credentialami, może źle przekazujesz jakieś zmienne środowiskowe. Możliwe że nie przekazałeś wszystkiego co masz lokalnie do docker-a. 403 to problem z uwierzytelnieniem
6
simply_pretentious
@szmichal: ja myślę że to przez development na Windowsie ( ͡° ͜ʖ ͡°)
2
a.....e
@szmichal: film to pobierasz raczej za pomoca youtubedl a nie ffmpeg...

Jak masz net? Wykluczyles wszelkie proxy do netu, a raczej ich brak?
Z tego ko tenera mozesz poprawnie pobrac cos z innych stro?
1
szmichal
@simply_pretentious: czyli windows lepszy bo na nim wszystko śmiga ( ͡° ͜ʖ ͡°) mało tego, ten kejs na ażurowym appservice (windows) też śmigał ale muszę to przepisać na Linuxa + docker bo koszta duże
1
wykopyrek
@szmichal: albo windows, albo docker.
Najprościej będzie ci uruchomić kontener, wbić do środka i z palca wywołać to, co ma robić twoja aplikacja.
Swoją drogą, do takiej pierdoły to się nie pisze aplikacji, skrypt powłoki zrobi robotę w mniejszej ilości linijek.
W dodatku możesz go spreparować klejąc kolejne komendy wypracowane na zwykłym linuksie.
TL&DR: wbijasz gwoździa kluczem francuskim. W dodatku tępą stroną gwoździa w ścianę.
1
kao3991
@szmichal: nie sądzę żeby to było związane bezpośrednio z dockerem. podejrzyj sobie jakie requesty robi jeden i drugi (jeśli możesz wymusić http zamiast https to wiresharkiem np, jeśli nie to musisz coś wykombinować) i zobacz czy nie różnią się np useragentem, refererem itp. Ogólnie musisz jak najlepiej udawać prawdziwego usera.
w sumie nie byłoby dziwne gdyby linuksowy ffmpeg był na jakiejś blackliście, a windowsowy nie bo i tak nikt tego
1
szmichal
@annotate: net 300/30mbps, na neta bym nie zwalał bo przy developmencie lokalnie wszystko śmiga (czy użyję wsl2, ffmpeg.exe, fasady na to w postaci .neta) po wystawieniu tego w obrazie dockerowym sypią mi się 403-ki.

Używam ffmpega do pobierania filmów z YT, gdyż ten umożliwia mi pobieranie tego w częściach. Za pomocą Youtube-dl wyciągam tylko link do odpowiedniego formatu. Pobieram filmy w chunkach po 30 sekund a potem lepie w całość.
0
szmichal
@annotate a no i dockerimaga nie pchałem nigdzie, uruchamiam go lokalnie za pomocą Docker for Desktop (ta windowsowa apka)
0
szmichal
@typ_z_internetu_pro: nie używam żadnych envow ani secretow do yt-dl i ffmpeg. Czyste binarki z apt geta
0
typ_z_internetu_pro
typ_z_internetu_pro
@szmichal: Jak nic masz coś nie tak z konfiguracja tego obrazu, może obraz dockerowy nie ma dostępu do twojej lokalniej sieci (albo potrzebuje jakiegoś specjalnego) przez co nie może prawidłowo się połączyć (jest odseparowany)
0
typ_z_internetu_pro
typ_z_internetu_pro
@simply_pretentious: moze tak być że na windowsie dzieje się jakiś proces który separuje dockerowe obrazy
fyi @szmichal
0
szmichal
@typ_z_internetu_pro: w dockerze jestem świeży, ot jedyne co umiem to klepnać dockerfile pod prostą apke. Podlinkowalbys, o czym mówisz? O sieć bym się nie martwił bo na tym samym obrazie pobieranie z twitcha działa tylko tam nie używam ani ffmpega ani YT-dl
0
szmichal
@typ_z_internetu_pro: olso, zalecasz może wystawić ten obraz jakoś "inaczej" lokalnie? Może jakoś przez wsl?
0
typ_z_internetu_pro
typ_z_internetu_pro
@szmichal: szczerze to hipotytezuje - ciężko mi powiedzieć co mogłoby pomóc,
tutaj trochę o networkingu w docker-e: https://docs.docker.com/network/network-tutorial-host/
tutaj o łączeniu docker-a: https://blog.oddbit.com/post/2014-08-11-four-ways-to-connect-a-docker/

ale coś mi sie wydaje że to niekoniecznie może być problemem. Bo jak masz 403 to niby się połączył więc sieć jest OK. Problem może być gdzieś z jakimiś ustawieniami które lecą z request-em -> sprawdź co leci z request-em lokalnie i co leci z docker-a
0
wojciet
@simply_pretentious też tak myślę. Pierwsze co bym zrobił to wyeliminował windows
0
szmichal
@wykopyrek: Czy ja wiem, czy strzelam z aramty do wróbla? ffmpega i yt-dl owrapowałem .netem, mam error handling, pętle, jakieś cuda wianki. Ja wiem, że o-----------m to samo jakimś skryptem powershellowym ale PSa też nie znam i szybciej to klepnąłem w c# niż miałbym się uczyć PS bo gołe wywoływanie komend z argumentami tu nic nie da, gdzie musze pobierać po 30 sekund party a tak sobie elegancko sklejam memory
0
wykopyrek
Czy ja wiem, czy strzelam z aramty do wróbla? ffmpega i yt-dl owrapowałem .netem,


Zawijasz aplikacje w inne aplikacje, w dodatku uzależniasz od bibliotek „windowsowych”, chociaż będziesz pracował na linuksie (kontener dokerowy to linuks).

mam error handling, pętle, jakieś cuda wianki.


To
0