Fire TV Stickのスクリーンショットを撮る

2021年4月10日

こんにちは、ノムノムです。

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

インストール方法は以下の記事に以前書いています。

【Androidスマホアプリを作ってみる】 インストール
【Androidスマホアプリを作ってみる】 インストール
こんにちは、ノムノムです。 今回からAndroidアプリの作成に入ろうかと思います。実はずっと前からスマホアプ…
http://nomux2.net/android-install/

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

簡単に説明すると

  1. screencapで今のFire TV Stickの画面のスクリーンショットをFire TV Stickに保存します。
  2. pullでパソコンにダウンロードします。
  3. 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といったところでしょう。

ここまで読んで頂いてありがとうございます。