通勤中にスマホで気になることをググったり、はてなブックマークやTwitterで話題の記事を見たりするのが習慣なのだが、一度開いたページを閉じられない病にかかっている。 後で見返したいページはブクマして閉じればいいし、実際そうしようと努力しているのだが、それすら面倒くさくて常時100個以上のタブを開きっぱなしにしている。 ところが先日新しいスマホを買ったので、いよいよタブを整理する時が来てしまった。 スマホでポチポチするのは面倒なので、PCからAndroid版Chromeアプリで開いているタブを全部取得する方法を調べた。
結論を言うと、Chromeのリモートデバッグ機能で取得できる。 その機能からタブ一覧を取得するにはPCのChrome Dev Toolを使う方法と、ADBコマンドを使う方法がある。 下記のリンクで紹介されているのは後者の方法である。
How can I export the list of open Chrome tabs? - Android Enthusiasts Stack Exchange
上記URLの回答に書かれているコマンドを実行する。
adb forward tcp:9222 localabstract:chrome_devtools wget -O tabs.json http://localhost:9222/json/list
すると、 tabs.json
にJSON形式でタブ情報が出力される。
[ { "description": "", "devtoolsFrontendUrl": "http://chrome-devtools-frontend.appspot.com/serve_rev/@cde02e463b24edb4a3547e35f9e462fe4c6bxxxx/inspector.html?ws=localhost:9222/devtools/page/20091", "id": "20091", "title": "GitHub - twindb/undrop-for-innodb: TwinDB data recovery toolkit for MySQL/InnoDB", "type": "page", "url": "https://github.com/twindb/undrop-for-innodb", "webSocketDebuggerUrl": "ws://localhost:9222/devtools/page/20091" }, { "description": "", "devtoolsFrontendUrl": "http://chrome-devtools-frontend.appspot.com/serve_rev/@cde02e463b24edb4a3547e35f9e462fe4c6bxxxx/inspector.html?ws=localhost:9222/devtools/page/17473", "id": "17473", "title": "オブジェクトベースなUIデザインに取り組むための心構え|usagimaru ⌘ Satori Maru|note", "type": "page", "url": "https://note.mu/usagimaruma/n/nee69529402f6", "webSocketDebuggerUrl": "ws://localhost:9222/devtools/page/17473" }, { ...
アプリ上で表示されるタブの順序と、このJSONの順序は無関係だった点は残念。