staging.inyokaproject.org

Für diese Funktion musst du eingeloggt sein.

Eigene Playlist erstellen(Netz + lokale Medien)

Status: Gelöst | Ubuntu-Version: Kein Ubuntu
Antworten |

Marant--

Anmeldungsdatum:
4. April 2022

Beiträge: 680

Aufgabenstellung: Aus Internet und lokalen Medien Playlist schnell erzeugen.

Benötigt wird yad,xsel.

Woher kommen die Pfade?

Netz: "Link Kopieren" des Videos bzw. Browseradresse kopieren. Lokal+NAS: Über Dateimanger "Copy Pfad"

Pfad ist dann in Zwischenablage.

Vorgehen:

#!/bin/bash
yad --center --on-top --sticky --no-focus --timeout="600" --width="100" --title="tmp.m3u" --button="zu tmp.m3u":"bash -c '$HOME/scripte/m3u_tmp_erzeugen.sh' "

YAD Fenster ist dauerhaft(600s) im Vordergrund. Nun Video,Audio(im Browser,Dateimanger) auswählen und dessen Link kopieren.

Dann im YAD Fenster "zu tmp.m3u" betätigen.

Pfad wird in tmp.m3u geschrieben. Abspielbar mit fast jedem Player. Bei Netzvideos besser MPV wg. yt-dlp nutzen.

Wenn Interesse besteht stelle ich das Fehlende(m3u_tmp_erzeugen.sh → tmp.m3u) noch ein.

Axel-Erfurt

Anmeldungsdatum:
18. Mai 2016

Beiträge: 1347

Das ist natürlich so überhaupt nicht nutzbar.

Marant--

(Themenstarter)

Anmeldungsdatum:
4. April 2022

Beiträge: 680

Wäre ja nur ZWA → m3u.

Oder vllt. so:

#!/bin/bash
#Dateiname ist "m3u_tmp_erzeugen.sh"

wohin=m3u-Speicherort
#m3u-Speicherort ersetzen mit eigenem Speicherort, nur Ordner z.b. $HOME/Downloads oder $HOME/M3U

notify-send -t 2000 "tmp.m3u erzeugen" -i dialog-information

zuweisung="$1"
if [ ! "$zuweisung" ]; then
	zuweisung="$(xsel -sb)"
fi

if [ ! -f  $wohin/tmp.m3u ]; then
	touch $wohin/tmp.m3u
fi
test -s $wohin/tmp.m3u || leer=1
if [ "$leer" = 1 ]; then 
	echo "#EXTM3U" >> $wohin/tmp.m3u
	echo "/home/USER/Videos/irgendwas.mkv" >> $wohin/tmp.m3u
fi
#2.echo: Bsp., lokales Video, dass in Playlist als erstes erscheint, sinnvoll falls Netzvideos nicht mehr verfügbar und Player somit bei Start Problem macht

cp $wohin/tmp.m3u $HOME/tmp.m3u.tmp
title=$(youtube-dl -e $zuweisung)
#title=$(yt-dlp -e $zuweisung)
#youtube-dl bzw. yt-dlp wählen

if [ "$title" ]; then
	echo "#EXTINF:0,INET $(date +%d.%m-%H:%M) - $title" >> $wohin/tmp.m3u
	echo "$zuweisung" >> $wohin/tmp.m3u 
else
	for datei in "$zuweisung"
	do
		echo "#EXTINF:0,$(basename "$datei")" >> $wohin/tmp.m3u
		echo "$datei" >> $wohin/tmp.m3u 
	done
fi	

diffausgabe=$(wdiff -3 $wohin/tmp.m3u $HOME/tmp.m3u.tmp)
notify-send -t 15000 -i dialog-information "Hinzugefügt:" "$diffausgabe"
rm $HOME/tmp.m3u.tmp
#xkbbell

Beide Scripte, yad Button + Dieses liegen hier in $HOME/scripte.

"wdiff" kann noch inst. werden. Schlusstest, was geschrieben wurde.

Soll neue tmp.m3u angelegt werden, bisherige umbenennen, bzw, löschen. Editieren: Die "#EXTINF:0," Zeile des Pfades/url mit löschen.

Falls Titel des YAD Fensters stört, dann "--undecorated" yad hinzufügen.

--geändert.–

Marant--

(Themenstarter)

Anmeldungsdatum:
4. April 2022

Beiträge: 680

Update:

  • lokale Pfade: funktionieren falls vorh. mit Leerzeichen

  • Anzahl übernommener Pfade wird angezeigt

  • Screenshots angehängt

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
#!/bin/bash

#notwendiges Installieren: yad xsel yt-dlp wdiff
#Sinnvoll: beide Scripte in gemeinsames Verzeichnis legen. Hier im Beispiel '$HOME/scripte'.
#Bei eigenem Verzeichnis "--button="zu tmp.m3u":"bash -c '$HOME/scripte/m3u_tmp_erzeugen.sh" anpassen. Namen der Datei "m3u_tmp_erzeugen.sh" lassen oder auf Wunsch umbenennen, dann auch Namen des 2. Scriptes passend dazu.
#Dieses Script nach Wunsch benennen, Beide Scripte ausführbar machen. Dieses starten von Desktop, Programme, Taste, etc. .
#Ablauf:
#Dieses Script starten. Taste erscheint und bleibt 600s im Vordergrund. Schliessen bspw. über Taskleiste.
#NetzVideo: Link des Videos  bzw. Browseradresse kopieren. YAD Button betätigen.
#Lokale Medien: im Dateimanager (ggf. bei Mehreren markieren) dann "Copy Pfad". YAD Taste betätigen. 
#Übernommene Pfade werden angezeigt.
#
#"--undecorated" entfernen - Titelleiste wird angezeigt.

yad --center --on-top --sticky --no-focus --undecorated --timeout="600" --width="100" --title="tmp.m3u" --button="zu tmp.m3u":"bash -c '$HOME/scripte/m3u_tmp_erzeugen.sh' "
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
#!/bin/bash
IFS=$'\n'

#Dateiname: m3u_tmp_erzeugen.sh
#Ausgabepfad(wohin) setzen, momentan "~/Downloads"
#
#Funktionen:
#xsel: auslesen aus Zwischenablage
#yt-dlp: Holen des Titels/Namen; falls gewünscht mit youtube-dl ersetzen
#wdiff: hinzugefügte Einträge listen
#
#"/home/USER/Musik/irgendwas.mkv" mit eigener lokaler Datei ersetzen, (Zeile 31) Start der Playlist: vermeidet so falls Pos1 Netzpfad und Player damit Probleme hat.

wohin=~/Downloads
#Pfad wohin tmp.m3u gespeichert werden soll. Nur Pfad/Ordner z.B. ~/Downloads ; ~/M3U

[ ! -d ${wohin}/ ] && notify-send -i dialog-close "Fehler!" "Verzeichnis\n${wohin}\nnicht vorhanden." && exit
notify-send -t 1000 -i dialog-information "tmp.m3u erzeugen"

zuweisung=$1
if [ ! "$zuweisung" ]; then
zuweisung=$(xsel -sb)
fi

if [ ! -f  $wohin/tmp.m3u ]; then
touch $wohin/tmp.m3u
fi
test -s $wohin/tmp.m3u || leer=1
if [ "$leer" = 1 ]; then 
	echo "#EXTM3U" >> $wohin/tmp.m3u
	echo "/home/USER/Musik/irgendwas.mkv" >> $wohin/tmp.m3u
fi	
cp $wohin/tmp.m3u $HOME/tmp.m3u.tmp

title=$(yt-dlp -e "$zuweisung")
    
if [ "$title" ]; then
	echo "#EXTINF:0,INET $(date +%d.%m-%H:%M) - '$title'" >> $wohin/tmp.m3u
	echo "$zuweisung" >> $wohin/tmp.m3u && let u++
else
	for datei in $zuweisung
	do
		echo "#EXTINF:0,$(basename "$datei")" >> $wohin/tmp.m3u
		echo "$datei" >> $wohin/tmp.m3u && let u++
	done
fi	

diffausgabe=$(wdiff -3 $wohin/tmp.m3u $HOME/tmp.m3u.tmp)
notify-send -t 15000 -i dialog-information "Hinzugefügt: _ $u _" "$diffausgabe"
rm $HOME/tmp.m3u.tmp
#xkbbell
Bilder
Antworten |