
Forumul dedicat sistemului de operare Ubuntu în România
Forumul Ubuntu România
Forumul de discuții și asistență al comunității Ubuntu din România
Forumul dedicat sistemului de operare Ubuntu în România
Forumul de discuții și asistență al comunității Ubuntu din România
Neautentificat.
Pagini: 1
Am un raspberry care îl folosesc pentru diverse chestii. Printre care să păstrez muzică, filme și altele..
Am instalat youtube-dl pentru a putea descărca de pe youtube. Dar nu vreau ca de fiecare dată să fiu nevoit sa intru cu ssh și să dau comanda. De aceea m-am gândit că poate reușesc să fac un script să ruleze comanda pentru mine, dintr-o pagina web. Am instalat ce era necesar, și acum am un youtube.php cu codul ăsta :
<html> <head> <title>YouTube Download...</title> </head> <body> <form method="post"> Link: <input type="text" name="name"><br> <input type="submit" value="Download mp3!"><br> <?php $youtube = "youtube-dl -o \"/media/SAMSUNG/youtube_music/%(title)s.%(ext)s\" -x --audio-format mp3"; $dlink = $_POST["name"]; echo "The link is: $dlink <br>"; echo "The command is: $youtube"; $test = shell_exec('$youtube $dlink'); echo "<pre>raspberry is running:\n $test</pre>"; ?> </form> </body> </html>
îmi recunoaște comanda, și link-ul, de aceea am băgat echo la ele, ca să mă asigur.
Dar totuși nu execută comanda.. Poate mă ajută cineva, și mă luminează unde greșesc, sau cât de mult.
Editat ultima oară de SkyWay (22 Feb 2016 21:56:19)
Offline
Vezi ce spare in loguri. Mai cred ca trebuie sa specifici calea completa catre binarul youtube-dl, so sa aiba drept serverul web sa il execute.
Offline
Ah ...
Ideea e constructiva insa nu cred ca functioneaza atat de usor scripturi de comanda cmd in php.
Ar trebui sa ai php cli in rapsbery.
In consola merge sa dai aceasta comanda cu php in fata? Iti functioneaza comanda
php youtube-dl -o \"/media/SAMSUNG/youtube_music/%(title)s.%(ext)s\" -x --audio-format mp3
E posibil ca de la asa ceva sa ti se traga ...
Offline
osmc@RaspberryPi:~$ php youtube-dl -o \"/media/SAMSUNG/youtube_music/%(title)s.%(ext)s\" -x --audio-format mp3 https://www.youtube.com/watch?v=Ja2PEFD6t-c -bash: syntax error near unexpected token `('
Nu i-au plăcut ghilimelele..am refăcut
osmc@RaspberryPi:~$ php youtube-dl -o '/media/SAMSUNG/youtube_music/%(title)s.%(ext)s\' -x --audio-format mp3 https://www.youtube.com/watch?v=Ja2PEFD6t-c Could not open input file: youtube-dl
osmc@RaspberryPi:~$ which youtube-dl /usr/local/bin/youtube-dl osmc@RaspberryPi:~$ php /usr/local/bin/youtube-dl -o '/media/SAMSUNG/youtube_music/%(title)s.%(ext)s\' -x --audio-format mp3 https://www.youtube.com/watch?v=Ja2PEFD6t-c # EASY-INSTALL-ENTRY-SCRIPT: 'youtube-dl==2016.01.15','console_scripts','youtube-dl' __requires__ = 'youtube-dl==2016.01.15' import sys from pkg_resources import load_entry_point if __name__ == '__main__': sys.exit( load_entry_point('youtube-dl==2016.01.15', 'console_scripts', 'youtube-dl')() ) osmc@RaspberryPi:~$
Offline
<html> <head> <title>YouTube Download...</title> </head> <body> <form method="post"> Link: <input type="text" name="name"><br> <input type="submit" value="Download mp3!"><br> <?php $dlink = $_POST["name"]; $youtube = "youtube-dl -o \"/home/emanuel/Music/youtube/%(title)s.%(ext)s\" -x --audio-format mp3 $dlink"; echo "The link is: $dlink <br>"; echo "The command is: $youtube"; $whoami = exec('whoami'); echo "<br>$whoami<br>"; $test = shell_exec("$youtube 2>&1 | tee -a /tmp/debug_log.txt 2>/dev/null >/dev/null &"); echo "<textarea rows=\"30\" cols=\"80\">" . file_get_contents('/tmp/debug_log.txt') . "</textarea>"; ?> </form> </body> </html>
Încearcă așa.
La comanda whoami mie îmi afișează: www-data. Mai departe e problemă de permisiuni.
Editat: am modificat userul în configurația apache și acum merge.
Editat ultima oară de Anca_Emanuel (21 Feb 2016 12:53:45)
Offline
În stringurile delimitate cu apostroafe nu sunt expandate variabilele; în cele delimitate cu ghilimele sunt expandate. Încearcă:
$test = shell_exec("{$youtube} {$dlink}");
Dacă tot nu merge, fă un link la program în /usr/bin sau în /bin .
Offline
@csilviu: php nu are permisiuni de scriere, mai precis www-data nu are permisiuni de scriere în directorul destinație.
De citit http://askubuntu.com/questions/244406/h … ome-folder
Editat ultima oară de Anca_Emanuel (21 Feb 2016 12:16:58)
Offline
Acum ceva timp am facut un script in bash pentru asa ceva, nu mai stiu exact dece insa am hotarit sa obtin adresa (youtube-dl -g[/url]), si sa o descarc sau sa o redau cu o terta, nu prin pipe-
succes.
Offline
Offline
@Anca_Emanuel , soluția cu modificarea userului în configurația apache a rezolvat problema. Mulțumesc..
Offline
Pagini: 1