Newsgroup: it.comp.os.linux.iniziare
Titolo: Zenity con Bash

Ciao a tutti e Buona Pasquetta a tutti, nel limite del possibile!!
 
Avrei bisogno, per un’amica non molto esperta, di prepararle 2 script per 
il salvataggio di tutorial video e pagine web in pdf.
 
Per salvare i video in locale il comando utilizzato è *youtube-dl* mentre 
per stampare la pagina web in pdf il relativo comando è *wkhtmltopdf*
 
Tenendo persente che con wkhtmltopdf i campi di input sono due:
1) Input URL video
2) Input nome file.pdf
 
Ho provato a cercare in internet e a fare qualche prova, ma non so come 
combinare/unire i due linguaggi di programmazione.
Qualcuno di voi ha qualche esperienza in merito?
TIA
Nemo


Errata corrige
1) Input URL pagina-web

Il Mon, 13 Apr 2020 07:37:06 +0000, Nemo ha scritto:
 

Premessa:
Questi 2 script me li ha chiesti un'amica, che non è molto pratica con il 
terminale, tuttavia,inserendo una GUI ad uno script è anche fonte di 
crescita personale.
 
Ho trovato YAD, il quale sembra essere più ricco di opzioni, rispetto a 
zenity:
https://wiki.ubuntuusers.de/yad/
 
https://www.thelinuxrain.com/articles/multiple-item-data-entry-with-yad
 
 
 
Sono riuscito ad abbozzare uno snippet, che purtroppo non funziona. 
Qualcuno di voi, sarebbe così gentile da darmi qualche dritta, dicendomi 
dove sbaglio?
Grazie in anticipo.
Nemo
 
#==============================================
STAMPA PAGINA WEB
#!/bin/bash
 
yad --width=400 --title="" --text="Stampa Pagina Web" \
--image="/usr/share/icons/Tango/scalable/emotes/face-smile.svg" \
--form \
--field="URL Sito Web" \
--field="Nome File.pdf"
 
 
INPUT1="URL Sito Web"
INPUT2="Nome File.pdf"
 
 
wkhtmltopdf $INPUT1 $INPUT2
 
#==============================================
SALVA VIDEO TUTORIAL
 
youtube-dl | yad -width=400 --title="" --text="Salva il Video Tutorial:" \
--image="/usr/share/icons/Tango/scalable/emotes/face-smile.svg" \
--form \
--field="URL Video"
 
 

 done
 
Grazie B.C. il tuo script non è male. Potrebbe andare bene come Piano B:
Ho notato che dopo aver inserito l'URL del video (CRTL+Shift+C) mi chiede 
la scelta [v] [s] di quale comando usare. Effettuata la scelta [v], mi 
richiede di nuovo l'URL del video.

 Effettuata la scelta [v], mi richiede di nuovo l'URL del video.
Non l'ho provato, ma credo che manchi uno spazio prima del flag -f...
che sia quello?
 
-- 
Per contattarmi, togliere -NOSPAM- dall'indirizzo.
To contact me, remove -NOSPAM- from address.


Cercando ancora in internet, ho trovato questo sito web:
 
https://www.linux-magazine.com/Online/Blogs/Productivity-Sauce/Dress-Up-
 
Bash-Scripts-with-YAD
 
e analizzando lo script della pagina web, penso di aver risolto, almeno 
uno delle 2 sfide.
 
#==============================================
STAMPA PAGINA WEB 
 
dialog=$(yad --center --width=400 --title="" --text="Stampa Pagina Web" \
--image="/usr/share/icons/Tango/scalable/emotes/face-smile.svg" \
--form \
--field="URL Sito Web" \
--field="Nome File.pdf")
 
url=$(echo $dialog | awk 'BEGIN {FS="|" } { print $1 }')
pdf=$(echo $dialog | awk 'BEGIN {FS="|" } { print $2 }')
 
wkhtmltopdf $url $pdf
 
yad --center --title="Status" --width=300  --button="gtk-ok:0"  --
text="All done. Yay!"
 
Questo script funziona, ora devo capire perchè il Yad con youtube-dl ha 
bisogno di maggior studio!!
 
Intanto, grazie a tutti per il vostro tempo e commenti.
 
Ciao,
Nemo
 


Aggiornamento:
 
Ulteriori risorse per YAD
www.smokey01.com/yad
 
 
YT-dl con GUI, ma non funziona:
https://www.iptest.club/blog/tools/youtube-mp3-downloader-for-linux/
 
 
 
Bash script senza GUI, purtroppo anche questo non funziona:
 
#!/ usr/bin/env bash
# Download youtube video with desired quality
# youtube-dl accepts both fully qualified URLs and video id's such as 
AQcQgfvfF1M
 
url="$*"
 
echo "Fetching available formats for $url..."
youtube-dl -F "$url"
read -p "Please enter the desired quality code: " FORMAT
 
echo "Streaming with quality $FORMAT..."
mpv --cache=1024 $(youtube-dl -f $FORMAT -g "$url")
 

 mpv --cache=1024 $(youtube-dl -f $FORMAT -g "$url")
 
 
Per ora risolto con:
sudo apt install uget
 
poi vedremo più avanti!
Nemo

 
https://mrs0m30n3.github.io/youtube-dl-gui/
 
 
Ciao B.C.
 
grazie per le modifiche allo script. Questo codice mi piace...
 
Ho fatto qualche prova, anche con i tuoi scripts, ma tutto ad un tratto 
il comando youtube-dl non mi funziona più.
 
nemo@nemo:~$ youtube-dl 
https://youtu.be/IAwChBTi3-o
 
[youtube] IAwChBTi3-o: Downloading webpage
[youtube] IAwChBTi3-o: Downloading video info webpage
ERROR: IAwChBTi3-o: YouTube said: Invalid parameters.
 
Ho controllato la versione ed è del 2016.02.22 (youtube-dl –version), ho 
provato ad aggiornare ( youtube-dl -U), ma mi dice: It looks like you 
installed youtube-dl with a package manager, pip, setup.py or a tarball. 
Please use that to update. 
 
Per cui ho rimosso e re-installato youtube-dl (sudo apt-get remove 
youtube-dl && sudo apt-get install youtube-dl), aggiornando tutto il 
sistema, con:
sudo apt update && sudo apt upgrade -y && sudo apt autoremove -y
ma la versione rimane sempre la  2016.02.22.
 
E’ un peccato, che ad un tratto il comando non mi funzioni più. 
Per il mio utilizzo il comando da terminale era sufficiente.
 
Per l’amica, ho risolto il tutto, installando uGet, in quanto si trova 
già nei repository di Ubuntu.
 
Comunque, grazie di tutto!!
Nemo
 
 
 
 

 fanno con ritardo più o meno marcato.
 
 
Grazie, per le info!!
 
Ho scoperto, anche che in uGet è possibile attivare aria2 come 
plugin...molto interessante!!
Ciao

 fanno con ritardo più o meno marcato.
 
Rimosso e installato dal link che mi hai consigliato.
Ora la versione è la: 2020.03.24
 
Lanciato il tuo script con opzione -F, ho scelto il formato e funziona 
tutto bene, si vede addirittura il video in un piccolo frame 
(bellissimo!!!), eccetto che il download si ferma a 99%, il file 
scaricato ha ancora estensione video.mp4.part 
 
Togliendo l'ultima estensione il video diventa visibile, ma è muto e non 
dura fino alla fine.
 
Se invece lancio il comando, senza nessuna opzione, funziona tutto bene:
alfa@alfa:~$ youtube-dl 
https://youtu.be/IAwChBTi3-o
 
 
Hai qualche esperienza in merito?

 a me funziona, sicuro di non aver selezionato un formato video-only?
 
Probabilmente si, avrò selezionato un formato senza l’audio (video only).
 
Ho apportato qualche modifica allo script. 
Ho provato a salvare un video, ma il download ancora avviene al 99%, 
inoltre non trovo nessun video, in nessuna cartella utente, per cui nello 
script, ho inserito la cartella di destinazione, ma idem non funziona.
 
Mi trovo però 2 stringhe in rosso, presumo siano errori. 
[...]
*[vo/opengl] Could not create EGL context!*
[...]
*[ffmpeg] tls: The TLS connection was non-properly terminated.*
AV: 00:01:12 / 00:01:12 (*99%*) A-V:  0.000 Dropped: 6 Cache:  0s+0KB
 
Ho provato a cercare in internet, ma non ho trovato molto, affinerò la 
chiave di ricerca.
 
Potrebbe essere che la versione di ffmpeg non sia agggiornata? 
ffmpeg version 2.8.15-0ubuntu0.16.04.1 Copyright (c) 2000-2018 the FFmpeg 
developers
 
Però se uso il comando: youtube-dl -k 
https://www.youtube.com/watch
?
v=4fRhjQcQI4Q
funziona!! Non capisco.
 
 
Questa è la modifica, ciao.
 
#!/bin/bash
#----------------------------------------
#directory home di "user"
usr="nemo"
 
#directory destinazione:
dst="ytsearch:/home/$usr/video"
 
echo -e "url:"
read url
echo "Fetching available formats for $url..."
youtube-dl -F $url $dst


 $FORMAT $url
 
alla fine del download restituisce questo output:
#================================================
[...]
*[vo/opengl] Could not create EGL context!*
AO: [pulse] 44100Hz stereo 2ch float
VO: [opengl] 1280x720 yuv420p
AV: 00:00:05 / 00:01:12 (7%) A-V:  0.000 Dropped: 1 Cache: 10s+5MB
*[ffmpeg] tls: The TLS connection was non-properly terminated.*
AV: 00:01:12 / 00:01:12 (99%) A-V:  0.000 Dropped: 1 Cache:  0s+0KB
 
 
Exiting... (End of file)
[youtube] 4fRhjQcQI4Q: Downloading webpage
[download] Destination: Mascherina fai da te senza cucire protettive diy 
mask-4fRhjQcQI4Q.mp4
[download] 100% of 7.68MiB in 00:05
nemo@nemo:~$
#================================================
 
Le stringhe di errore rimangono (indagherò del perchè), ma il download 
avviene al 100% e nella home si trova il video-tutorial.
 
Direi che il tutto è RISOLTO, con diversi piano di azione:
 
Piano A = uGet 
Piano B = script.sh
Piano C = comando semplice al terminale: youtube-dl -F url-video-tutorial
 
Grazie mille per il tuo aiuto!
Un cordiale saluto,
Nemo
 
 
 

 fa direttamente il download alla miglior qualità disponibile
 
 
Grazie B.C. avevo già notato questa opzione nella man-page di youtube-dl
 
Grazie mille, per il tuo prezioso tempo e aiuto!
Ciao,
Nemo
 

 Nemo
 
 
Ieri su LFFL (Linux Freedom For Life) è uscita questa guida per creare 
una GUI con il comando yt-dl.
Nemo
 
https://www.lffl.org/2020/05/youtube-dl-scaricare-video-youtube.html