放送の仕組みとかジャンルとか操作とか
最近、ついったでShoutcastのstreamingを操作するということをしてます。
そして、いろいろ拡張してきたので整理してみます。マニュアルってことですね。
放送の開始
bot鯖の起動時にShoutcastを起動するshellが動くようにしてます。
UbuntuってGUIでログイン時の起動jobの管理ができるので、そこで指定してます。
途中でおっこちることもあるので、Shoutcast起動shellは定期的にcronで実行するようにしてる。pgrepでプロセスを確認して、死んでたら起動するようなshellなのは。
ぷれいりすと
Shoutcastのlinux版は、sc_trans_linuxというプログラムがplaylistを指定していて、sc_serveに送る(?)という仕様。事前にmp3の絶対パスを指定したplaylistを作っておく必要がある。
で、いちいち手打ちでplaylistを作るなんてのはありえないので、scriptを書くわけで。そこらへんがunixの便利なところなのです。findコマンドを使って、mp3ファイルを検索して、パスをファイルに書き出せばplaylistの出来上がり。
あとは、mp3ファイルをひたすらためこんでおけばいいのだね。
ジャンルわけ
ただ、Rockからアニソンまでいろいろあるので、playlistをわけたいところ。それなら、ディレクトリをわけて、findで探すディレクトリをジャンルによって変えればいい。playlistを作るshellの引数にディレクトリ名を指定するようにしてみた。
んで、このshellをついったのPOSTで制御できればいいのだな。perlのscriptで、つぶやきに「ジャンル変更」とあると、このshellをcallするようにした。そして、「アニソン」の文字列があればアニソンのplaylist、「ロック」とあればロックなplaylistといった具合にしてみたわけ。
ジャンルと指定ワードの対応表(予告なく変更することありけり
アニソン:アニメ アニソン ANIME Anime anime
ロック:ロック ROCK Rock rock
ポップス:ポップス POPS Pops pops
JPOP:邦楽 Jポップ JーPOP Jポップ JPOP J-POP J-Pop
王様:王様
アニメタル:アニメタル ANIMETAL Animetal animetal
東方アレンジ:東方 IOSYS
アニメセリフ:台詞 セリフ ナレーション 演説
攻殻関係:攻殻 タチコマ たちこま
ギャグ漫画日和:ギャグ漫画 日和
ニコ動:ニコニコ ニコ動
新曲:新曲
電波ソング:電波 デンパ デムパ ユンユン ゆんゆん
メタル:メタル METAL Metal metal HM
ジャンル変更を問答無用に
ただ、人が気持ちよく聴いているところをがつんと変えられるのもどうかと思って、誰かが聴いている時は変更不可にしてみた。これは、あまりくわしくかけないがネットワークコネクションをちょっと確認して、誰かが繋ぎにきてれば放送を聴いてるなーと判断してます。
で、「他の人が聴いているから変更できないよ」としてます。
が、それでもやっぱりがつんと変えたいといういわば「お茶の間のチャンネル争い」的なことができてもそれはそれで楽しい。ので、「問答無用」という文言を含めてPOSTされれば、変えてしまうという仕様にしてみた。
放送している曲名をつぶやく
放送してるよーというアッピールも含め、定期的に放送中の曲名をつぶやくようにしてみた。ま、Shoutcastのstreamingをしてることを知ってる人以外にはなんのことやら意味不明かもしれないのだが。
曲名検索を中途半端に実装してみた
「曲検索」と曲名を指定してPOSTされたら、曲を検索してplaylistに存在していたら、あるよーと教えるscriptも実装。ただ曖昧検索ができないので、それほど有用でもないかな。ま、とりあえず作ってみたという感じ。そのうちもう少し手直ししてみたいけど、結構難しいんだよなー。全部英語なら楽だけど、日本語だとなぁ。
そして、いろいろ拡張してきたので整理してみます。マニュアルってことですね。
放送の開始
bot鯖の起動時にShoutcastを起動するshellが動くようにしてます。
UbuntuってGUIでログイン時の起動jobの管理ができるので、そこで指定してます。
途中でおっこちることもあるので、Shoutcast起動shellは定期的にcronで実行するようにしてる。pgrepでプロセスを確認して、死んでたら起動するようなshellなのは。
ぷれいりすと
Shoutcastのlinux版は、sc_trans_linuxというプログラムがplaylistを指定していて、sc_serveに送る(?)という仕様。事前にmp3の絶対パスを指定したplaylistを作っておく必要がある。
で、いちいち手打ちでplaylistを作るなんてのはありえないので、scriptを書くわけで。そこらへんがunixの便利なところなのです。findコマンドを使って、mp3ファイルを検索して、パスをファイルに書き出せばplaylistの出来上がり。
あとは、mp3ファイルをひたすらためこんでおけばいいのだね。
ジャンルわけ
ただ、Rockからアニソンまでいろいろあるので、playlistをわけたいところ。それなら、ディレクトリをわけて、findで探すディレクトリをジャンルによって変えればいい。playlistを作るshellの引数にディレクトリ名を指定するようにしてみた。
んで、このshellをついったのPOSTで制御できればいいのだな。perlのscriptで、つぶやきに「ジャンル変更」とあると、このshellをcallするようにした。そして、「アニソン」の文字列があればアニソンのplaylist、「ロック」とあればロックなplaylistといった具合にしてみたわけ。
ジャンルと指定ワードの対応表(予告なく変更することありけり
アニソン:アニメ アニソン ANIME Anime anime
ロック:ロック ROCK Rock rock
ポップス:ポップス POPS Pops pops
JPOP:邦楽 Jポップ JーPOP Jポップ JPOP J-POP J-Pop
王様:王様
アニメタル:アニメタル ANIMETAL Animetal animetal
東方アレンジ:東方 IOSYS
アニメセリフ:台詞 セリフ ナレーション 演説
攻殻関係:攻殻 タチコマ たちこま
ギャグ漫画日和:ギャグ漫画 日和
ニコ動:ニコニコ ニコ動
新曲:新曲
電波ソング:電波 デンパ デムパ ユンユン ゆんゆん
メタル:メタル METAL Metal metal HM
ジャンル変更を問答無用に
ただ、人が気持ちよく聴いているところをがつんと変えられるのもどうかと思って、誰かが聴いている時は変更不可にしてみた。これは、あまりくわしくかけないがネットワークコネクションをちょっと確認して、誰かが繋ぎにきてれば放送を聴いてるなーと判断してます。
で、「他の人が聴いているから変更できないよ」としてます。
が、それでもやっぱりがつんと変えたいといういわば「お茶の間のチャンネル争い」的なことができてもそれはそれで楽しい。ので、「問答無用」という文言を含めてPOSTされれば、変えてしまうという仕様にしてみた。
放送している曲名をつぶやく
放送してるよーというアッピールも含め、定期的に放送中の曲名をつぶやくようにしてみた。ま、Shoutcastのstreamingをしてることを知ってる人以外にはなんのことやら意味不明かもしれないのだが。
曲名検索を中途半端に実装してみた
「曲検索」と曲名を指定してPOSTされたら、曲を検索してplaylistに存在していたら、あるよーと教えるscriptも実装。ただ曖昧検索ができないので、それほど有用でもないかな。ま、とりあえず作ってみたという感じ。そのうちもう少し手直ししてみたいけど、結構難しいんだよなー。全部英語なら楽だけど、日本語だとなぁ。
コメント
コメントの投稿
トラックバック
http://auxo.blog59.fc2.com/tb.php/683-f082f12e
この記事にトラックバックする(FC2ブログユーザー)
