freetar - an open source alternative front-end to ultimate-guitar.com
This is like Invidious but only for Ultimate Guitar.
Instances
Features
- no ads, popups, AI, blockchain. Just a simple design
- search for tabs and view them
- save your favorite chords as favs (everything is stored in session storage (not send to the server), no account needed)
- dark mode
- auto scroll
- useful for printing chords
- show chords
- prvent screen from turning off (using WakeLock API)
How to use it
After successful installation, there is an executable called freetar in the PATH. Execute it without parameters and it listens on 0.0.0.0:22000. You can specify a custom listen host or port by using environment variables.
Environment variables
FREETAR_HOSTFREETAR_PORTFREETAR_CACHING(ram(default) for memory caching, useofffor developing/debugging,diskfor disk cache)FREETAR_CACHE_TIMEOUT(how log should tabs be cached in memory, reduces the requests to Ultimate Guitar, defaults to 0 (inifnity), only needed iframordiskcaching is used)FREETAR_CACHE_DIR(location of disk cache, defaults to /tmp)FREETAR_LOCAL=1fetches directly from Ultimate Guitar instead of the public Freetar proxies.
PyPi
Package: https://pypi.org/project/freetar/
pip install freetar
Docker
Image: https://hub.docker.com/r/kmille2/freetar
Port: 22000
sudo docker pull kmille2/freetar
sudo docker run -p 127.0.0.1:22000:22000 kmille2/freetar
Or use Docker compose:
sudo docker compose up -d
Set a custom bind port with the environment variable FREETAR_PORT
You can also build and run the local repository instead of pulling from Docker Hub:
docker compose build
docker compose up -d
Dev environment
You need uv. Then:
FREETAR_CACHING=off uv run freetar/backend.py # dev server
FREETAR_CACHING=off uv run freetar # production server
vim freetar/*.py
Visit localhost:22000 in browser
# static files: freetar/static/*
# html templates: freetar/templates/*
Future work
- improve UX on mobile devices
- package it as PGA (Progressive Web App)
share chords (qr code)?(done by #12 with export/import functionality)- save favs encrypted server side?
Browser Extension like Invidious Redirection(done)- show qr code to quickly share a tab?
Contributions
Feel free to contribute, but please create an issue before with a proposal of the feature. I don't want freetar to be bloated (neither UI nor functionality).
Release files for freetar 0.21.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| freetar-0.21.0.tar.gz | 116.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| freetar-0.21.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 234.3 kB
Release files / freetar-0.21.0.tar.gz
| Download URL | freetar-0.21.0.tar.gz |
|---|---|
| Size | 116.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
c8533b18fbd7c97c7aae274501bffb5296314782f6514c098ec68ecb9d8e8f4f
|
|
BLAKE2b-256 checksum How to use checksums |
5a7ba102e54008da96c9e824ed48eb69e30e96fe0eceab9590330276c387444b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.18 {"installer":{"name":"uv","version":"0.12.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Arch Linux","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / freetar-0.21.0-py3-none-any.whl
| Download URL | freetar-0.21.0-py3-none-any.whl |
|---|---|
| Size | 117.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
54d64bd3a3f1480836ca090107386cd6519f1993fcffeeee80d70ed5524e1d4e
|
|
BLAKE2b-256 checksum How to use checksums |
017310bd074747ca4bb5de4b34d8650796a0a8805a86bcc62138043a8889a1ca
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.18 {"installer":{"name":"uv","version":"0.12.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Arch Linux","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|