シェルスクリプトで作ってみた

このシェルスクリプトは、

  • Linuxを使ってゐて (もちろんCUIで簡単なコマンドが使へる程度の能力が必要)
  • 作業用BGMにニコニコ動画を使ってゐて
  • NicoCacheを常用してゐて
  • マイリスト内の動画を、キャッシュを使ってMPlayerのやうなプレーヤーで一括再生したいなーと思ってゐる

といふ人向けです。

その1 - mylist2lst.sh

ニコニコ動画からマイリストのRSSを取得し、動画ID(sm9など。動画URLではない)の一覧を標準出力へ出力する。

使ひ方:

$ ./mylist2lst.sh http://www.nicovideo.jp/mylist/5822120 > 5822120.lst

mylist2lst.sh

#!/bin/bash
wget -O - $1?rss=2.0 | sed -e '

# <link>タグ以外は無視する
/<link>.*watch/!{
    D
}

# URLを取り出す
s/^[^<]*<link>http:\/\/www.nicovideo.jp\/watch\/\([^<]*\)<\/link>/\1/

# 改行コードの変換 (\r\n → \n)
s/\r$//
'

その2 - lst2m3u.sh

↑のmylist2lst.shで生成したlstファイルを元に、キャッシュ内の対応する動画ファイルの一覧を標準出力へ出力する。

検索方法: 例へば sm9 に対応する動画を探す場合、キャッシュの置かれてゐるディレクトリ内 (サブディレクトリも含む) で sm9_* に当てはまるファイルを検索します。

使ひ方:

$ ./lst2m3u.sh < 5822120.lst > 5822120.m3u

または

$ ./mylist2lst.sh http://www.nicovideo.jp/mylist/582212 | ./lst2m3u.sh > 5822120.m3u

lst2m3u.sh

#!/bin/bash

while read id
do
    find /var/cache/nicocache/cache/ -name "${id}_*"
    echo -n ". " >&2
done

echo "終了しました" >&2

「/var/cache/nicocache/cache/」の部分は自分が設定してゐるディレクトリに置き換へてください。

まとめ

作業用BGMとしてMPlayerで聞くなら、

$ ./mylist2lst.sh http://www.nicovideo.jp/mylist/582212 | ./lst2m3u.sh > 5822120.m3u
$ mplayer -novideo -playlist 5822120.m3u

とするといいよ!