Erstellen Sie ein Skript zum automatischen Laden von m3u im VLC-Netzwerk (MojaveOS).

Erstellen Sie ein Skript zum automatischen Laden von m3u im VLC-Netzwerk (MojaveOS).

Ich habe es satt, zum Laden immer VLC/Open Network öffnen und meine IPTV-m3u-Netzwerkadresse kopieren und einfügen zu müssen.

Kann mir jemand (falls möglich) helfen, ein Skript zu erstellen, das VLC automatisch öffnet und meine m3u lädt, ohne dass ich den Link jedes Mal kopieren und einfügen muss?

Ich weiß, dass ich mit meinem m3u eine einfache Wiedergabeliste erstellen kann, aber das Problem besteht darin, dass sie entweder die Kanäle ändern und/oder Kanäle hinzufügen/entfernen.

Daher wäre ein automatisches Skript hilfreich, das stets eine aktuelle Liste lädt.

Antwort1

GUI-Weg

vlc http://link.to/playlist.m3u

oder reines Terminal

nvlc http://link.to/playlist.m3u

Antwort2

Wie kann ich VLC öffnen und meine m3u laden, ohne den Link immer kopieren und einfügen zu müssen?

Verwenden Sie eine der [stream]Befehlszeilenoptionen. Wenn Sie Windows verwenden, können Sie Ihre VLC-Verknüpfung ändern, um zusätzliche Befehlszeilenoptionen einzuschließen.

Usage: vlc [options] [stream] ...
You can specify multiple streams on the commandline.
They will be enqueued in the playlist.
The first item specified will be played first.

...

Stream MRL syntax:

  [[access][/demux]://]URL[#[title][:chapter][-[title][:chapter]]]
  [:option=value ...]

  Many of the global --options can also be used as MRL specific :options.
  Multiple :option=value pairs can be specified.

URL syntax:
  file:///path/file              Plain media file
  http://host[:port]/file        HTTP URL
  ftp://host[:port]/file         FTP URL
  mms://host[:port]/file         MMS URL
  screen://                      Screen capture
  dvd://[device]                 DVD device
  vcd://[device]                 VCD device
  cdda://[device]                Audio CD device
  udp://[[<source address>]@[<bind address>][:<bind port>]]
                                 UDP stream sent by a streaming server
  vlc://pause:<seconds>          Pause the playlist for a certain time
  vlc://quit                     Special item to quit VLC

QuelleVLC-Befehlszeilenhilfe – VideoLAN Wiki

Wenn Sie Shell-Skripte verwenden können, können Sie das folgende Skript verwenden und es Ihren spezifischen Anforderungen entsprechend ändern:

if [[ "$1" == "" ]] ; then
    exit 1
fi

DUMMY=""

# location of playlist
PLAYLIST=/tmp/playlist.m3u

### the playlist is only updated from the Freebox if the playlist file does 
### not exist
###   simply remove the playlist file given by the location $PLAYLIST 
###   to force an update the next time the script is called
if [[ ! -f $PLAYLIST ]] ; then
    RAWPLAYLIST=`mktemp`
    echo "recovering Playlist"
    wget -q http://mafreebox.freebox.fr/freeboxtv/playlist.m3u -O $RAWPLAYLIST
### the following trick is found from:
### http://stackoverflow.com/questions/10207354/how-to-remove-all-of-the-diacritics-from-a-file
### and allows to replace accent characters by non-accent characters
    iconv -f utf8 -t ascii//TRANSLIT $RAWPLAYLIST > $PLAYLIST
    \rm $RAWPLAYLIST
fi

COMMAND="grep -v rtsp $PLAYLIST | grep -v EXTM3U "
for i in $@ ; do
    if [[ $i == "-dummy" ]] ; then
        DUMMY=dummy
    else
        COMMAND=$COMMAND" | grep -i "$i
    fi
done

COMMAND=$COMMAND" | head -1"

FLINE=`mktemp`
eval $COMMAND > $FLINE
LINE=`cat $FLINE`

N=`grep -xn -f $FLINE $PLAYLIST | cut -d : -f 1`

\rm $FLINE

N=$((N + 1))
LINK=`head -n $N $PLAYLIST | tail -1`

if [[ "$LINE" == "" ]] ; then
    echo "No matching channel found"
    exit 1
fi

echo "Opening vlc for: $LINE"
echo $LINK

if [[ "$DUMMY" == "" ]] ; then
    vlc "$LINK" --network-caching=1500 --no-loop
fi

Sie speichern es an einer Stelle in Ihrem PATH (vielleicht in Ihrem privaten Bin-Ordner: ~/bin/wenn dieser in Ihrem PATH ist), beispielsweise als FB_VIEW.sh, und machen es durch ausführbar chmod +x FB_VIEW.sh.

Dann ist die einfache Verwendung:

FB_VIEW.sh "list of patterns"

um den ersten Kanal in der Wiedergabeliste zu starten, der diese Muster enthält (die Reihenfolge der durch Leerzeichen getrennten Untermuster ist nicht wichtig). Die Musterliste kann das Wort „-dummy“ enthalten, in diesem Fall werden nur der gefundene Kanal und der RTSP-Link angezeigt, VLC wird jedoch nicht gestartet. Die Musterübereinstimmung ist nicht groß-/kleinschreibungsabhängig. Sie können auch die Programmnummer des Kanals als Muster verwenden, aber auf der Freebox haben Sie möglicherweise verschiedene Flüsse (ADSL, TNT, HD, Standard, Bas-Debit) für dieselbe Nummer und müssen möglicherweise ein zweites Muster wie HD oder TNT hinzufügen, um den richtigen TV-Fluss auszuwählen.

In dieser Version lädt das Skript beim ersten Start die Playlist von der Freebox herunter (mit wget), ersetzt die akzentuierten Buchstaben durch Buchstaben ohne Akzent und speichert sie am Standardspeicherort /tmp/playlist.m3u (ich habe gestern den Trick dafür gefunden). Wenn Sie später eine Aktualisierung der Playlist erzwingen möchten, entfernen Sie einfach die vorhandene Datei und die Aktualisierung wird beim nächsten Aufruf des Skripts durchgeführt (das dauert etwa 1-2 Sekunden). Beachten Sie, dass Free regelmäßig bestimmte (normalerweise geringfügige) Änderungen an der Playlist vornimmt.

Sie können den Namen/Standardspeicherort der Wiedergabeliste einfach ändern und auch den „Update-Teil“ entfernen (wenn er Ihnen nicht gefällt). In diesem Fall müssen Sie die Wiedergabeliste manuell am entsprechenden Speicherort bereitstellen.

QuelleBestimmtes Element in der M3U-Wiedergabeliste abspielen!? - Die VideoLAN-Foren


Weitere Informationen

verwandte Informationen