![VLC ネットワークで m3u を自動的にロードするスクリプトを作成する (MojaveOS)](https://rvso.com/image/1711478/VLC%20%E3%83%8D%E3%83%83%E3%83%88%E3%83%AF%E3%83%BC%E3%82%AF%E3%81%A7%20m3u%20%E3%82%92%E8%87%AA%E5%8B%95%E7%9A%84%E3%81%AB%E3%83%AD%E3%83%BC%E3%83%89%E3%81%99%E3%82%8B%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%97%E3%83%88%E3%82%92%E4%BD%9C%E6%88%90%E3%81%99%E3%82%8B%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、標準、bas-debit) がある場合があり、正しい TV フラックスを選択するために HD や TNT などの 2 番目のパターンを追加する必要がある場合があります。
このバージョンでは、スクリプトを初めて起動すると、Freebox からプレイリストがダウンロードされ (wget を使用)、アクセント付き文字がアクセントなし文字に置き換えられ、デフォルトの場所 /tmp/playlist.m3u に保存されます (昨日、このトリックを見つけました)。後でプレイリストを強制的に更新したい場合は、既存のファイルを削除するだけで、スクリプトが次に呼び出されたときに更新が行われます (これには約 1 ~ 2 秒かかります)。Free は、プレイリストに定期的に特定の (通常は控えめな) 変更を適用することに注意してください。
プレイリストの名前/デフォルトの場所を簡単に変更でき、また「更新部分」を削除することもできます (気に入らない場合)。その場合は、適切な場所にプレイリストを手動で提供する必要があります。
ソースm3u プレイリスト内の特定のアイテムを再生する!? - The VideoLAN フォーラム