Создайте скрипт для автоматической загрузки m3u в VLC Network (MojaveOS)

Создайте скрипт для автоматической загрузки m3u в VLC Network (MojaveOS)

Так что мне надоело постоянно открывать VLC / Open Network, копировать и вставлять сетевой адрес IPTV m3u для загрузки.

Может ли кто-нибудь помочь мне (если это возможно) создать скрипт, который автоматически откроет VLC и загрузит мой m3u, без необходимости каждый раз копировать и вставлять ссылку?

Я знаю, что могу создать простой плейлист с помощью m3u, но проблема в том, что они либо меняют каналы, либо добавляют/удаляют каналы.

Поэтому было бы полезно иметь автоматический скрипт, который загружал бы и всегда загружал бы актуальный список.

решение1

способ графического интерфейса

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

или чистый терминал

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

решение2

Как открыть VLC и загрузить m3u, не копируя и не вставляя ссылку каждый раз?

Используйте один из [stream]параметров командной строки. Если вы используете Windows, вы можете изменить ярлык VLC, чтобы включить дополнительные параметры командной строки.

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

ИсточникСправка по командной строке VLC - VideoLAN Wiki

Если вы умеете использовать скрипты оболочки, то вы можете использовать следующий скрипт и изменить его в соответствии со своими требованиями:

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

Вы сохраняете его в месте, указанном в вашем PATH (возможно, в вашей личной папке bin: ~/bin/если она есть в вашем PATH), например, как FB_VIEW.sh, и делаете его исполняемым с помощью chmod +x FB_VIEW.sh.

Тогда простое использование будет таким:

FB_VIEW.sh "list of patterns"

для запуска первого канала в плейлисте, который содержит эти шаблоны (порядок не важен между подшаблонами, разделенными пробелом). Список шаблонов может содержать слово "-dummy", в этом случае отображаются только найденный канал и ссылка rtsp, но vlc фактически не запускается. Соответствие шаблону не чувствительно к регистру. Вы также можете использовать номер программы канала в качестве шаблона, но на Freebox у вас могут быть разные потоки (Adsl, TNT, HD, standard, bas-debit) для одного и того же номера, и вам может потребоваться добавить второй шаблон, такой как HD или TNT, чтобы выбрать правильный поток TV.

В этой версии при первом запуске скрипта он загрузит плейлист из Freebox (используя wget), заменит акцентированные символы на неакцентированные и сохранит его в расположении по умолчанию /tmp/playlist.m3u (я нашел трюк для этого вчера). Если позже вы захотите принудительно обновить плейлист, вы просто удалите существующий файл, и обновление будет выполнено при следующем вызове скрипта (это займет около 1-2 секунд). Обратите внимание, что Free регулярно применяет определенные (обычно скромные) изменения в плейлисте.

Вы можете легко изменить название/местоположение плейлиста по умолчанию, а также удалить «часть обновления» (если она вам не нравится), в этом случае вам придется вручную разместить плейлист в соответствующем месте.

ИсточникВоспроизвести определенный элемент в плейлисте m3u !? - Форумы VideoLAN


Дальнейшее чтение

Связанный контент