Saving all tabs on Android Chrome and Firefox to file
export all tabs, save open tabs
Pre svega je potrebno instalirati adb uz komandu scoop install adb
i na telefonu enable USB debugging. Zgodno je u “Developer options” uključiti i opciju “Stay awake”.
Firefox
Chrome
2.
Ovaj proces ipak ne izvlači sve tabove, a ne znam zašto, odnosno izvlači zadnjih X komada, pa moraš da radiš u grupama
Kao prvo, ne zaboravi da open Chrome on phone and leave it open.
U Chrome na računaru samo idi na chrome://inspect/#devices
Poslednjih X tabova će biti izlistano, ali copy-paste neće dobro raditi jer odseca dugačke URL-ove. Verovatno možeš iz console sa JS da izvučeš full URL list, ali čak i da su URL kompletni, to nije future-proof jer Chrome u svakom trenutku može da promeni HTML te strane.
Zato je meni mnogo bolji metod uz adb, odnosno to isto, preko CLI i adb komande ali i kroz standardni API koji daje rezultat u JSON formatu. Inaće, ceo API je dokumentovan ovde: bugger-daemon/README.md at master · buggerjs/bugger-daemon
# allow usb debugging on phone popup when asked
adb forward tcp:9222 localabstract:chrome_devtools_remote
# should respond with "9222"
# create file chrome-tabs.json or you can open URL in browser
wget http://localhost:9222/json/list -O chrome-tabs.json
Zatim da malo sve to obradimo… Ali da ne veruješ šta sve moram da uradim da bi ovo radilo u PowerShell, zbog toga što on dobro ne radi sa UTF8:
# prvo pokreni ovo da bi UTF8 bio pravilan
$OutputEncoding = [console]::InputEncoding = [console]::OutputEncoding = New-Object System.Text.UTF8Encoding
# in powershell, we must escape double-quote by putting \` in front
jq -r ".[] | \`"[\`" + .title + \`"](\`" + .url + \`")\`"" chrome-tabs.json > chrome-list-of-tabs-urls.md
# kreiraj powershell commands to close tabs
jq -r ".[] | \`"curl.exe -s http://localhost:9222/json/close/\`" + .id + \`"; sleep 1; echo ''\`"" chrome-tabs.json > chrome-close-tabs.ps1
# a zatim i pokreni tu komandu
./chrome-close-tabs.ps1
Svo vreme dok script uklanja tab-ove, možeš u browseru da proveravaš kako se broj tabova smamnjuje.
API endpoint za clos tab-a je
http://localhost:9222/json/close/{pageId}
Konverzija JSON-a u CSV
|
|
Skriptovi koji rade ovo isto, ali ne olakšavaju skoro pa nimalo:
- https://github.com/ampil/export-android-tabs in PowerShell
- https://github.com/machinateur/android-chrome-tab-transfer in PHP
ali oba ustvari ne rade baš ništa osim one dve komande.
Firefox
Firefox takođe ima remote debugging, ali sve to nije potrebno jer ima opciju “Share All Tabs”. Ne možeš baš da odmah pošalješ na Telegram, ali prvo snimi u TXT fajl pa zatim pošalji fajl.