所以我厌倦了总是要打开 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
如果您可以使用 shell 脚本,那么您可以使用以下脚本并根据您的特定要求进行修改:
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、标准、bas-debit),并且您可能需要添加第二个模式(如 HD 或 TNT)来选择正确的电视通量。
在此版本中,首次启动脚本时,它将从 Freebox 下载播放列表(使用 wget),将重音字符替换为非重音字符,并将其存储在默认位置 /tmp/playlist.m3u(我昨天发现了这个技巧)。当您稍后想要强制更新播放列表时,只需删除现有文件,下次调用脚本时就会完成更新(这大约需要 1-2 秒)。请注意,Free 会定期对播放列表应用某些(通常是适度的)更改。
您可以轻松修改播放列表的名称/默认位置,也可以删除“更新部分”(如果您不喜欢它),在这种情况下您必须在适当的位置手动提供播放列表。
来源播放 m3u 播放列表中的特定项目 !? - VideoLAN 论坛