Extract guitar tabs from a TabsLite Android app backup file using the Ultimate Guitar API.
UG has an IP-hostile API, and throttles requests in a sophisticated pattern with a release rotation. You get a couple shots a day to perform a full extraction. Sometimes, you may need to just wait awhile (a week) before you can sync again.
In Tabs Lite on your android phone, go to
Settings (Guitar in search field) > Export favorits and playlists.
This will save tabslite_backup.json on your phone. Copy this to your computer.
-
Install dependencies
git clone https://github.com/brege/tabslx npm install -g
-
Configure the extractor
cp config.default.yaml config.yaml
Then edit
config.yamljson: "tabslite_backup.json" data: "tabslite-export" cache: true filename: lowercase: false space: "-" id: true format: "{artist}---{song}-{id}.txt"
jsonis the exported TabsLite backup.datais the output directory (device id cache lives here).filename.spacereplaces whitespace with the given string.filename.idtoggles whether{id}stays in the template.
Basic extraction
# npm install
node cli.js --helpor
npm install -g
tabslx --helpForce re-download (overwrite files on disk)
tabslx --forceRotate device identity
tabslx --refreshDeletes <data>/.device_id before starting so a new ID is generated for that output directory.
Use custom config
tabslx --config config.yamlConfig hierarchy: config.yaml > --config > config.default.yaml.
Filename pattern
- With
filename.id: true# "{artist} - {song} [{id}].txt" 'The Weakerthans - Virtute The Cat Explains Her Departure [1068619].txt' - With
filename.id: false# "{artist} - {song}.txt" 'The Weakerthans - Virtute The Cat Explains Her Departure.txt' - Lowercase plus dash spacing:
# "{artist}---{song}-{id}.txt" the-weakerthans---virtute-the-cat-explains-her-departure-1068619.txt