- Flutter app (Android/iOS): home, explore, albums, search, player with equalizer, mini player, sign up/sign in with email codes, profile, encrypted offline downloads, About page - server/: one-command deploy of self-hosted Supabase behind HestiaCP/nginx (or Caddy), migrations, backups, email templates - supabase/migrations: schema, row-level security, profiles - tools/: song scanner and importer Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
22 lines
1.1 KiB
Markdown
22 lines
1.1 KiB
Markdown
# Song import
|
|
|
|
1. **Scan** (already run once; run again if you add files to `songs/`; it overwrites the CSV, so save your edits under another name first):
|
|
```sh
|
|
pip install mutagen
|
|
python tools/scan_songs.py songs songs_manifest.csv
|
|
```
|
|
2. **Review** `songs_manifest.csv` in Excel:
|
|
- `title`: required. Songs without a title are skipped.
|
|
- `singers`: separate names with commas (`Gowtham, Bharathi`). It can stay empty; the app then shows "Singer not credited yet".
|
|
- `occasion`: one of `huttu habba madhuvae devotional folk saavu instrumental`.
|
|
- `include`: `yes` or `no`. Duplicates and the `old hits` folder (Tamil film songs) start as `no`.
|
|
- `notes` says what needs a look. Save as **CSV UTF-8**.
|
|
3. **Check**: `python tools/import_songs.py --dry-run`
|
|
4. **Import** (the server must be running and the migrations applied):
|
|
```sh
|
|
set NK_URL=https://app.nkbmusic.com
|
|
set NK_SERVICE_KEY=<SERVICE_ROLE_KEY from the server .env>
|
|
python tools/import_songs.py # pending; add --approve to publish now
|
|
```
|
|
Re-running skips songs already imported, so you can import in batches as you finish reviewing.
|