kellnerd / harmony

Music Metadata Aggregator and MusicBrainz Importer
MIT License
22 stars 6 forks source link

Metadata Providers #5

Open kellnerd opened 1 month ago

kellnerd commented 1 month ago

List of sources/websites for which a metadata provider has been implemented or requested.

Leave a comment which includes at least a link to an example release for a quick provider request, or create a separate issue which is named after the provider and labeled with https://github.com/kellnerd/harmony/labels/provider if you have more research to share. Detailed requests for sources with an open API and good documentation are more likely to be implemented. Edit: Let's be honest, every request which contains more details than just the name or URL of the source is probably worth its own issue already.

If you plan to work on a provider, be it doing more research or actually implementing it, please create a separate issue which is named after the provider and ask for it being assigned to you.

Open JSON API

Restricted JSON API

Tokens and other secrets should not be included in this repository but loaded from environment variables.

HTML Scraping

Uncategorized Requests

tigerman325 commented 3 weeks ago

My free time has been scarce these past few months. I like it, but I'll likely hold off on using it often until Spotify is included. It's puzzling why Spotify now limits visibility to only see releases in one's own country, but thankfully, a-tisket remains reliable for those releases if you know the URL. With some luck, I'll have the opportunity to explore it further.

wileyfoxyx commented 3 weeks ago

Would be interesting to see some kind of Yandex Music implantation is such service.

Example of an album: https://music.yandex.ru/album/12353342 Open JSON API: https://api.music.yandex.net/albums/12353342/ (or https://api.music.yandex.net/albums/12353342/with-tracks for additional info on tracks from album, such as the distributor of release). You might need VPN to open those, but here's a mirror for the "with-tracks" response: https://www.jsonkeeper.com/b/YKSE

The API does not support neither GTAN nor ISRC. Also the "label" section of response takes the info from the P-line of release and in most cases would remove words "Productions", "Music", "Publishing" and etc., as well as split one label onto multiple ones if there's a slash in its name (like here).

They also support showing whether it's an album, single, podcast or an audiobook (since they all have a link of https://music.yandex.ru/album/album_id).

There's also an unofficial implantation of an API at https://github.com/MarshalX/yandex-music-api/releases

UltimateRiff commented 3 weeks ago

one big provider (or two, depending on how you count it) I see missing is YouTube/YouTube Music. I feel like it might be right to kinda treat them seperately (as a user, not a developer)

the main things I know to look out for on YouTube

I can make a ticket or two for this pair if you'd like~

wileyfoxyx commented 3 weeks ago

@UltimateRiff, I'd either would and would not count YouTube and YouTube Music as separate, mostly because of the so-called Art Tracks (that look like ordinary track in any music service on YTM yet as an ordinary video with "Provided to YouTube by..." line in the description on YT)

reubot commented 3 weeks ago

7digital.com has API docs at https://docs.7digital.com .

c0b41 commented 3 weeks ago

YouTube.js support youtube music api, no token required and GTIN search works. Also support deno.

kellnerd commented 3 weeks ago

@wileyfoxyx Thank you for the detailed request, this is enough to warrant a separate ticket. Can you please make one? (I will then leave my comments over there.)

@UltimateRiff One YouTube ticket should be enough for the start, we can always create a new ticket if it turns out there will be multiple providers and only one of them is implemented initially. And the library suggested by @c0b41 should also be linked from there. Although I am not sure whether we will just have our own simple implementation inspired by the library, since we need to make requests in a way which is compatible with Harmony's caching.

If I am being honest, even a request with just a link to a good API documentation is enough for a separate issue. Can you please make one @reubot? I will clarify that in the description of this issue.

phw commented 3 weeks ago

PR #11 adds initial support for Tidal