Portál AbcLinuxu, 27. července 2025 13:15
Zdravím,
mám takový menší problém, stáhl jsem si tento python script - youtube-dl na stahování youtube .flv videí.
Všechno funguje v pořádku, video se stáhne tak jak má, ale problém je v tom, že při zadání příkazu do sh:
youtube-dl youtube-odkaz
mi python vypíše PID procesu, ukáže se shell ( který normálně reaguje na příkazy ), ale ten youtube-dl script pokračuje dál a až skončí a zmáčknu ctrl-c vypíše:
[1]+ Done youtube-dl http://www.youtube.com/watch?v=9-Y7trsjKxw
takže kompletní výpis pres putty vypadá takto:
localhost:~# youtube-dl http://www.youtube.com/watch?v=9-Y7trsjKxw&feature=related
[1] 32460
localhost:~# [youtube] Setting language
[youtube] 9-Y7trsjKxw: Downloading video webpage
[youtube] 9-Y7trsjKxw: Downloading video info webpage
[youtube] 9-Y7trsjKxw: Extracting video information
[download] Destination: 9-Y7trsjKxw.flv
[download] 100.0% of 2.39M at 51.15k/s ETA 00:00
(( tady jsem stlačil ctrl-c, protože se to na tom seklo - chovalo jako shell ))
[1]+ Done youtube-dl http://www.youtube.com/watch?v=9-Y7trsjKxw
localhost:~#
zkoušel jsem to na VPS, kde je debian tak na stolním PC, kde mám ubuntu
Chtěl bych docílit toho, aby tento script byl zpuštěny klasicky a ne asynchronně, tzn. zadám příkaz a až po kompletním vykonání příkazu, je shell spustítelný, takže aby tento příkaz byl spustíteny z vlastního c++ programu, kdy to nyní ( tak jako shell ) zmrzne po downloadu a fce system("youtube-dl video_url"); zamrzne.
Neexistuje proto příkaz aby to python spustíl normálně ? Experimentoval jsem s příkazem python youtube-dl youtube_url, ale dopadlo to stejně s tím rozdílem, že mi to vypsalo tohle:
[2] 24402
[1] Done python youtube-dl http://www.youtube.com/watch?v=9-Y7trsjKxw
localhost:~# [youtube] Setting language
[youtube] 9-Y7trsjKxw: Downloading video webpage
[youtube] 9-Y7trsjKxw: Downloading video info webpage
[youtube] 9-Y7trsjKxw: Extracting video information
[download] Destination: 9-Y7trsjKxw.flv
[download] 100.0% of 2.39M at 50.72k/s ETA 00:00
(( ctrl-c ))
[2]+ Done python youtube-dl http://www.youtube.com/watch?v=9-Y7trsjKxw
localhost:~#
Řešení dotazu:
&
), tak je možné, že ho bash interpretuje a spustí ten skript na pozadí. Zkus dát tu adresu do uvozovek.
youtube-dl "http://www.youtube.com/watch?v=lAl28d6tbko"
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.