A tool to help manage Tidal music playlists and songs.
Note: This project is currently in early development.
- Backend: Python 3.14, FastAPI, SQLModel, Alembic
- Frontend: TypeScript, Vue.js 3, Pinia, Tailwind CSS
- Database: SQLite
- Infrastructure: Docker, Docker Compose
- Docker and Docker Compose installed on your machine.
-
Clone the repository:
git clone <repository-url> cd tidal-helper
-
Environment Setup: Create a
.envfile from the example template:cp .env.example .env
-
Start the Application: Run the following command to build and start the services:
docker-compose up --build
-
Access the Application:
- Frontend: http://localhost:22002
- Backend API Docs: http://localhost:22001/docs
cd backend
poetry install
poetry run uvicorn app.main:app --reloadcd frontend
npm install
npm run devThe project uses Alembic for database schema migrations.
If the alembic directory doesn't exist, initialize it:
cd backend
poetry run alembic init alembicAfter modifying your SQLModel models, generate a new migration:
cd backend
poetry run alembic revision --autogenerate -m "Description of changes"This will create a new migration file in backend/alembic/versions/.
To apply all pending migrations to the database:
cd backend
poetry run alembic upgrade headTo rollback the last migration:
cd backend
poetry run alembic downgrade -1To rollback to a specific revision:
cd backend
poetry run alembic downgrade <revision_id>To see the current migration version:
cd backend
poetry run alembic currentTo see migration history:
cd backend
poetry run alembic historyFor quick database initialization without migrations, you can use the init_db.py script:
cd backend
poetry run python init_db.pyNote: This creates all tables based on your SQLModel definitions but doesn't track migration history. For production use, prefer Alembic migrations.
This project utilizes tiddl for music downloads and backups.
Note: A local version of
tiddlis currently included in this repository to incorporate specific fixes that are pending approval in the upstream repository. Once these changes are merged, this local dependency will be removed in favor of the official library.