15
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

コマンドラインで名取さなを再生する

Last updated at Posted at 2018-06-26

Nodeが入っていれば、

$ npx sana-voice てね
$ npx sana-voice エッチ

はい。という感じで再生されます。

もちろんインストールした方がいいでしょう。

$ npm i -g sana-voice

さなボタン から引数なしならランダムもしくはキーワード付きで再生します。また一度再生したものはキャッシュされます。

GitHub: akameco/sana-voice: さなボタンからランダムに再生するCLI

コマンドラインでmp3を再生するには

さて、sana-voiceを作るに当たりそれぞれのOSのmp3プレイヤーをラップしたmp3プレイヤーのCLIツールであるsymphogearを書きました。

GitHub: akameco/symphogear: cacheable mp3 player from files and url for CLI

npm install --global symphogear

でインストールできます。

それぞれのOSにはコマンドラインで動作するシンプルなmp3プレイヤーがあります。
例えば、MacOSならデフォルトでafplayが使えます。

mplayer等について以下の記事が役立つと思います。

mplayerというソフトが素晴らしすぎて困る - プログラムモグモグ

symphogearは以下のプレイヤーのラッパーです。

  • mplayer
  • afplay
  • mpg123
  • mpg321
  • play
  • omxplayer
  • aplay
  • cmdmp3

ヒットしたプレイヤーによってmp3を再生します。
これによって、環境の差異を考えずに済みます。

Node.jsでこのようなコマンドを実行したいときは、Promiseベースでchild_processを扱えるexecaが便利です。await execa(player, [await fetch(link)])みたいな感じで書けます。

また、afplayなどはurl形式を直接再生できず、ローカルにファイルを保存する必要がありますが、symphogearはurlを指定して直接再生することが可能です。
また一度再生したファイルをキャッシュされるので同じurlが指定されてもhttpリクエストが飛ぶことはありません。

関連

さなボタン http://sanabutton.ojaru.jp/ は一言でいうと努力が素晴らしいので、一度その情熱を確認すべきだと思います。

名取さな関連でいうと、24時間名取さなのことを考えているオタクが作ったttene.nvimがオススメです。

15
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
15
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?