Using gooseneck
Catalogs
The main catalog is curated. Add your own next to it, or follow someone else's, and they merge everywhere.
#The main catalog
artists.json lists about 1,650 artists, each with a YouTube Music channel, a picture and tags. A GitHub Action refreshes it daily. gooseneck downloads it on first run; refresh it with:
goose catalog update
goose tags # famous, chasidish, israeli, american, female, kids, dj, acapella
goose artists --tag chasidish#Your own catalog
goose catalog new mine # create a personal catalog
goose catalog add-artist mine "Yaakov Shwekey" # by name (YouTube Music search)
goose catalog add-artist mine https://music.youtube.com/channel/UC… --tag chasidish
goose catalog remove-artist mine shwekeyFrom an artist page in the TUI, ctrl+p → add-to-catalog does the same thing.
#Following someone else's
goose catalog add friends https://example.com/artists.json
goose catalog # list catalogs and counts
goose catalog rm friends # stop using it (--delete also removes a personal file)Followed catalogs are cached under ~/.config/gooseneck/catalogs/ and refreshed by goose catalog update. A broken one never blocks startup.
#How merging works
- Every catalog shows up everywhere: search, library, completion, radio.
- Duplicates merge by channel id. The main catalog's name and picture win, and tags are combined.
- Browse one catalog with
--catalog mine(onsearchandartists) or c in the TUI library.
#Publishing yours
Catalog files use the same shape as the main one, so you can host mine.json anywhere and others can goose catalog add it.
{"count": 1, "artists": [
{"id": "UC…", "name": "Yaakov Shwekey", "thumbnail": "https://…", "isChasid": false, "isFamous": true}
]}