ミゲル君が消臭力の歌を歌ってくれる Amazon Dash Button を作ってみました。

作り方

Amazon Dash Button を購入する

まずは Amazon Dash Button を購入します。もちろん、消臭力がいいと思います。

消臭力 Dash Button
消臭力 Dash Button

Amazon Dash Button をただの IoT ボタンにする

下記ページを参考に Amazon Dash Button をただの IoT ボタンにします。

Amazon Dash ButtonをただのIoTボタンとして使う – Qiita

上記ページに出てくる dasher の使い方については下記のページが詳しいです。

Amazon Dash Button と slackを連携させる – kakts-log

下記コマンドで Amazon Dash Button の MAC アドレスを確認して、

$ script/find_button

config/config.json を下記のように作って、

{
  "buttons":[
    {
      "name" : "Sing a song of syosyuriki",
      "address": "{Amazon Dash Button の MAC アドレス}",
      "url": "http://localhost:4567",
      "method": "get"
    }
  ]
}

下記コマンドで dasher を立ち上げます。

$ sudo npm start

config/config.json は後述する sinatra で http://localhost:4567 を立ち上げるので、そこにアクセスするだけの簡単仕様です。

mp3 を用意する

「消臭力〜♪」のところだけの音声データが欲しいので、 YouTube から CM 動画をダウンロードしてきて、音声をトリミングします。

youtube-dl を使って CM 動画をダウンロードする

YouTube の動画をダウンロードできる youtube-dl を使って、 CM 動画をダウンロードしてきます。

参考: コマンドラインからyoutubeを再生する – Qiita

youtube-dl のインストール
$ brew install youtube-dl
CM 動画のダウンロード
$ youtube-dl 'https://www.youtube.com/watch?v=s39_de-2dpQ'

CM 動画を mp3 に変換する

ffmpeg のインストール
$ brew install ffmpeg
ダウンロードした mp4 を mp3 に変換する
$ ffmpeg -i cm.mp4 -ab 128 cm.mp3

参考: ffmpegを使用した、mp4ファイルからmp3ファイルを作成するコマンド – Daily noise

mp3 から必要な部分だけトリミングする

QuickTime Player でトリミングができるので、がんばって作ります。

消臭力ボタンを押すとミゲル君が歌うようにする

dasher がアクセスするページを作ります。

サクッと作りたかったので、 sinatra を使いました。

sinatra のコードは下記の通りです。

require 'sinatra'

get '/' do
  system 'afplay syosyuriki.mov'
end

下記コマンドで sinatra を立ち上げて、

$ bundle exec rack app.rb

http://localhost:4567 にアクセスすると消臭力の歌が流れます。

 

以上です。

本当は YouTube をそのまま再生しようと思ったんだけど、ちょうどいい尺の動画がなかったので、わざわざ音声データを作ったんだけど、途中、「僕は何をやってるんだろう…。」とはちょっと思った。