Alexa端末にしゃべらせたりmp3を再生する alexa-remote-control スクリプトの設定(2025)

ALL
スポンサーリンク

Linuxマシンや RaspberryPi で実行するalexa-remote-control スクリプトは、 Alexa端末(AmazonEcho、Fireタブレットや FireTV Stick )に、しゃべらせたり、mp3の再生や、最後に呼びかけた端末名取得・最後に呼びかけた内容取得ができます。

スクリプトから Fireタブレットや FireTV Stick にしゃべらせる – パソコン鳥のブログ
Amazon Echo でMP3ファイルを再生する(Linux) – パソコン鳥のブログ
スクリプトからEchoでAlexa Skills Kitサウンドライブラリのサウンド再生 – パソコン鳥のブログ
複数のAlexa端末のどれから呼びかけたのか判定する(RaspberryPi,Ubuntu) | パソコン鳥のブログ
最後にAlexa端末に話しかけた内容を確認する | パソコン鳥のブログ

この alexa-remote-control の設定方法について説明します。

なお、 alexa-remote-control は、実行しても最近次のエラーが出るようになっていました。

cookie expired, logging in again ...
log in failed, aborting

どうもAmazon側の挙動が変わったようで、11/7に対応した alexa-remote-control がリリースされています。以前から alexa-remote-control を使用していて最近動かなくなっていた方は、更新してください。

alexa_remote_control.sh login failed · Issue #189 · thorsten-gehrig/alexa-remote-control
switched to new auth-status detection by adn77 · Pull Request #191 · thorsten-gehrig/alexa-remote-control · GitHub
Lötzimmer: Alexa Remote Control Shell Script

スポンサーリンク

リフレッシュトークンの取得

alexa-remote-control に設定するためのリフレッシュトークンを取得します。リフレッシュトークンは、クライアント専用に割り当てられる値なので、以下の設定はクライアントごとに必要です。

alexa-cookie-cliを取得し、ディレクトリに展開します。

wget https://github.com/adn77/alexa-cookie-cli/archive/refs/heads/master.zip
unzip master.zip
cd alexa-cookie-cli-master/

次のコマンドを実行します。

npm install

次を実行します。/tmp/.alexa.* が存在している場合、ここに Alexaのセッション情報などが保存されているので削除しておきます。

rm /tmp/.alexa.*

次を実行します。
実行で、「Error: Please open http://127.0.0.1:8080/ with your browser and login to Amazon. The cookie will be output here after successfull login. / null」と出ても気にしないでください。

node cli.js -p amazon.co.jp -a ja-JP -P 8080

上記実行で、待ち状態になります。

上記を実行したクライアント上で、ブラウザで http://127.0.0.1:8080 にアクセスし、Amazonのアカウントでサインインしてください。
(テキストベースで動作するブラウザ lynx でもOKです。lynx で2段階認証も通せます)

ブラウザでサインインすると、上記の node cli.js~を実行していたターミナルに、Atnr| で始まるコードが表示されます。
これがリフレッシュトークンです。
後で、alexa_remote_control.sh に設定します。

node cli.js~ を実行していたターミナルで CTRL-C を押して終了させます。
ブラウザは閉じて構いません。
また、alexa-cookie-cli を展開したディレクトリは消してOKです。

alexa_remote_control.sh の設定

alexa_remote_control.sh を取得します。

wget https://raw.githubusercontent.com/thorsten-gehrig/alexa-remote-control/master/alexa_remote_control.sh
chmod +x alexa_remote_control.sh

alexa_remote_control.sh 内の SET_REFRESH_TOKEN に、先ほどの「リフレッシュトークンの取得」の手順で取得したリフレッシュトークン(Atnr| で始まるコード)を記述します。

また、その他の変数を下記のように設定します。

SET_TTS_LOCALE='ja-JP'
SET_AMAZON='amazon.co.jp'
SET_ALEXA='alexa.amazon.co.jp'

これで、alexa_remote_control.sh の設定は完了です。

動作確認

alexa_remote_control.sh -a を実行すると、下記のようにAlexa端末の一覧が表示されます。

$ ./alexa_remote_control.sh -a
cookie does not exist. logging in ...
device list does not exist. downloading ...
the following devices exist in your account:
子供部屋
リビング
台所
FireHD8
FireHD7
Fire TV stick
This Device

動作しない場合は、リフレッシュトークンを alexa_remote_control.sh 内の SET_REFRESH_TOKEN に間違いなく設定したか確認してください。
また、リフレッシュトークンは、クライアント専用の値のため、別のクライアントでの値を設定していないか確認してください。

コメント