Fire TV Stickのスクリーンショットを撮る
こんにちは、ノムノムです。
Fire TV Stickの画面をきれいに撮りたいなと思っていたら、Amazonのサイトにやり方乗っていました。
今回は、その方法を忘れないようにメモっておきたいと思います。
https://developer.amazon.com/ja/docs/fire-tv/connecting-adb-to-device.html
https://developer.amazon.com/ja/docs/app-submission/taking-screenshots.html
Android SDK のインストール
Android SDKの中にはAndroid Debug Bridge(ADB)が入っており、このADBを使ってFire TV Stickのスクリーンショットを撮ります。
ADBを取得するには以下の2つの方法があります。どちらでも構いませんが、単にADBだけ欲しいということであればSDKだけダウンロードすればよいかと思います。
SDKのダウンロード
以下のサイトにあります。
サイトの中にダウンロードのリンクがあります。

Zipファイルがダウンロードできますので解答すると中にADBが入っています。
AndroidStudioにも含まれています。
以下のサイトにAndroid Studioのインストーラーがあり、SDKはその中に含まれます。
https://developer.android.com/studio?hl=ja
インストール方法は以下の記事に以前書いています。

Fire TVのADBを有効にする
Fire TVの方にADBで接続できるように設定を有効にします。
設定から「My Fire TV」を選択します。

「開発者オプション」を選択します。

「ADBデバッグ」をオンにします。

Fire TV StickのIPアドレスを知りたい場合、バージョン情報のネットワークにあります。

PCからデバイス検索
コマンドラインで実行します。adbのあるフォルダ(Android SDKのplatform-tools)でコマンドを実行します。
cdコマンドでカレントディレクトリを変更するのが面倒な場合は、フォルダの上に「cmd」と入力するとそのディレクトリでコマンドラインが起動します。
まずは以下のコマンドを実行してみてください。
adb devices

Fire TV Stickには以下のような画面がでているので、「このコンピュータを常に許可」にチェックを入れてOKを選択します。

もう一度コマンドを実行すると以下のようになりました。未認証ってことですね。

コネクション接続
それではFire TV Stickに繋いでみましょう。
コネクション接続をするコマンドは以下です。
adb connect 192.168.1.7:5555
IPアドレスとポート番号は、「adb device
」コマンドで取得した値です。
スクリーンショットを取得
スクリーンショットを撮ります。以下のコマンドを実行します。
adb shell screencap -p /sdcard/fire_tv_screen.png
adb pull /sdcard/fire_tv_screen.png
adb shell rm /sdcard/fire_tv_screen.png
簡単に説明すると
screencap
で今のFire TV Stickの画面のスクリーンショットをFire TV Stickに保存します。pull
でパソコンにダウンロードします。rm
でFire TV Stick内のスクリーンショット画像を削除します。
ということになります。
このままだと以下の問題があります。
- adbがあるplatform-toolsフォルダ内に保存されるので手で移動させることが必要
- 出力ファイル名が固定なので撮るたびに上書きされてしまうので退避させるのが面倒
コネクション切断
パソコンの電源を切ればコネクションは切れるんですが、明示的に切りたいので以下のコマンドをします。
adb disconnect
これで切れます。
一連の流れをBAT化
BAT化しておけば実行するだけでOKです。楽チン。
コードをテキストエディタに張り付けて、以下の部分を書き換えて拡張子をbatにしてください。
set fireip=
にFire TV StickのIPアドレスとポートを設定するset adb=
にadb.exeのファイルパスを設定する
実行するとBATのあるフォルダに撮った日付(YYYYMMDDHHMMSS)で保存されます。
set fireip=192.168.1.7:5555
set adb="D:\Program Files\Android\SDK\platform-tools\adb.exe"
rem yyyymmddhhmmssで今の日時を取得する
set time_tmp=%time: =0%
set now=%date:/=%%time_tmp:~0,2%%time_tmp:~3,2%%time_tmp:~6,2%
echo %now%
rem コネクション接続
%adb% connect %fireip%
rem スクリーンショットを撮る
%adb% shell screencap -p /sdcard/%now%.png
%adb% pull /sdcard/%now%.png
%adb% shell rm /sdcard/%now%.png
rem コネクション切断
%adb% disconnect
pause
録画もできるらしい
screencapの部分を以下に書き換えることで録画することも可能だそうです。
adb shell screenrecord /sdcard/x.mp4
録画を停止するには「Ctrl+c」を押します。
Fire TV Stickは容量が8GBですが使用できるスペースが4.5GB程度なので動画を撮る場合、残りの容量には注意です。
Fire TVであればmicro SDが刺せるので増やせます。
まとめ
普通にamazonのサイトにやり方が書いてあってビックリでした。非推奨な方法ではないようですね。さすがAmazonといったところでしょう。
ここまで読んで頂いてありがとうございます。