![Создайте скрипт для автоматической загрузки m3u в VLC Network (MojaveOS)](https://rvso.com/image/1711478/%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%B9%D1%82%D0%B5%20%D1%81%D0%BA%D1%80%D0%B8%D0%BF%D1%82%20%D0%B4%D0%BB%D1%8F%20%D0%B0%D0%B2%D1%82%D0%BE%D0%BC%D0%B0%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%BE%D0%B9%20%D0%B7%D0%B0%D0%B3%D1%80%D1%83%D0%B7%D0%BA%D0%B8%20m3u%20%D0%B2%20VLC%20Network%20(MojaveOS).png)
Так что мне надоело постоянно открывать 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