#metabrainz

/

      • yuzie joined the channel
      • yuzie has quit
      • yuzie joined the channel
      • yuzie has quit
      • Rotab has quit
      • reosarevok
        lucifer, mayhem: wonder whether it would be interesting to see which artists somebody listens to in LB that do not yet have genres, and ask them to improve that? :)
      • I would like to know, at least :D
      • Also, who should I be sending Android app reports of issues to?
      • CatQuest has quit
      • yellowhatpro
        moin!!
      • <reosarevok> "Also, who should I be sending..." <- Maibi I might . What is it??
      • Otherwise akshaaatt or lucifer might help
      • akshaaatt
        You can direct them to me reosarevok
      • reosarevok
        Ok :) I just didn't know how much time you have to deal with it, but I can do that, will forward
      • (if you answer, please cc support)
      • outsidecontext
        zas: can we delay the Picard release, maybe to Thursday? I'd like to investigate https://tickets.metabrainz.org/browse/PICARD-2515 more closely and maybe have this fixed in this release as well.
      • BrainzBot
        PICARD-2515: Swatches not coloured in Options > User Interface > Colours, macOS 12.4
      • mayhem
        reosarevok: that is not a bad idea at all!
      • CatQuest joined the channel
      • alastairp
        hi, will work from home today
      • mayhem
        moin and thanks for that.
      • ansh
        moin!!
      • alastairp: I checked the API again yesterday, the user info getting returned. Some data was missing just because the users did not have an mb username.
      • zas
        outsidecontext: ok, np
      • alastairp
        ansh: right, some users don't have musicbrainz usernames (from reviews that we imported from a separate collection)
      • ansh
        For BB, I just need avg ratings to be returned.
      • alastairp
        which is the other PR?
      • ansh
        I raised CB#401 before, but it requires a lot of changes
      • BrainzBot
        CB-427: Support entity endpoint in the API including average rating: https://github.com/metabrainz/critiquebrainz/pu...
      • alastairp
        what changes does it require?
      • ansh
        We were adding endpoints for every entity type
      • So that needs to be done
      • alastairp
        ah right, because these are entity API endpoints, not review endpoints. got it
      • ansh
        But I was thinking if we can send avg ratings at the review endpoint if the user has given a specific entity_id
      • alastairp
        this is related to CB-437 anyway, right?
      • BrainzBot
        CB-437: Add entity metadata to review get endpoints https://tickets.metabrainz.org/browse/CB-437
      • alastairp
        so within a review block (https://critiquebrainz.readthedocs.io/api/endpo...) we could have an "entity" field, and then inside that the average rating for the entity
      • will that save an API call on BB?
      • monkey
        I was going to suggest the same. Get reviews for an entity, get the average rating as part of the response as well
      • alastairp
        unfortunately we don't have a great API format to get reviews for an entity and then show entity data
      • mmm
      • ansh
        not exactly related to CB-437. It can be done separately also
      • alastairp
        oh, perhaps
      • we _could_ say, only in the case that an entity_id is provided, include another top-level key "entity"
      • it feels a bit funny if that output format changes depending on the query parameters
      • monkey
        Funny but not 🤡
      • alastairp
        scary like that emoji>
      • ?
      • ansh
        Or we can return avg rating here in the review endpoint, and if the user wants the entity metadata also, we can have them in entity endpoints
      • alastairp
        I think we can duplicate some data in places - so we can have the entity metadata + average rating endpoint per entity
      • but also add entity metadata to the review (CB-437), and include average rating there too
      • BrainzBot
        CB-437: Add entity metadata to review get endpoints https://tickets.metabrainz.org/browse/CB-437
      • alastairp
        it would mean that if you get all reviews for a single entity then that metadata will be repeated in all reviews, but I don't think that is a problem
      • ansh
        Yes, it can be done in this way also
      • monkey
        I find the top level key a bit cleaner to avoid duplicating data, but if you definitely want to avoid Schroedinger's response output then duplicated entity info for each review works.
      • ansh
        monkey: When will the next BB dump release?
      • monkey
        Could also be hidden behind an option
      • alastairp
        monkey: yeah, I think we considered some inc parameters, but I don't think that this is going to save us much
      • monkey
        ansh: dumps are created every monday
      • ansh
        okay
      • alastairp: this is how the response will look after adding entity info in the reviews endpoint: https://www.irccloud.com/pastebin/A1YfYQ7g/
      • alastairp
        I looks good. I wonder if we should name the entity key the value of entity_type
      • that is, call it "recording" instead of "entity". I noticed yesterday that this is what the musicbrainz API does when you look up relations
      • monkey
        Doesn't that make the API response a bit harder to work with down the line?
      • ansh
        I agree. Because the api is dynamic to work for every entity type
      • alastairp
        given that we already have `"entity_type":"recording",` I don't think it makes it any more difficult
      • and it certainly makes it a bit easier to define the structure (in pydantic, typescript, etc) of each of the metadata blocks, as we know that they're all separate
      • has a list of "relations", and some of them have a sub-item "artist", and others a subitem "work"
      • ansh
        makes sense
      • Pratha-Fish
        alastairp: moin :)
      • Can we discuss the artist conflation issue today? (whenver you get the time ofc)
      • CatQuest
        I no like clowns :c
      • Pratha-Fish
        CatQuest: That statement makes you vulnerable to "Damn you must hate yourself then" type roasts.
      • reosarevok
        That it does :D
      • Pratha-Fish
        P.S. I didn't mean to actually say it. Just wanted to point out someone else might exploit the vulnerability 💀
      • alastairp
        Pratha-Fish: hi, just finishing up end-of-month paperwork from last week. what a day. I just need to send one more email and then I'll be with you
      • CatQuest
        it's not a vulnerability because i am not a clown. i am a cat
      • ;)
      • alastairp
        zas: hi, is it possible to use gateways config to redirect an http request to another location (permanent redirect)?. I wish to redirect http[s]://ftp.acousticbrainz.org/* to http://ftp.eu.metabrainz.org/pub/musicbrainz/ac...
      • I guess this can be done with a custom nginx config stub in upstreams-auto directory in openresty-gateways repo?
      • zas
        yup
      • but first we need to point ftp.acousticbrainz.org to gateways
      • it can be done using such config
      • in this case there's a subpath, I need to check if it works without changes though
      • it should, but we need to take care of ending /, see https://github.com/metabrainz/openresty-gateway...
      • CatQuest
        wait what's the thing picard uses now. it's not libtunepimp anymore is it? it's called other thing
      • zas
        alastairp: https://github.com/metabrainz/docker-server-con... (but we need a DNS change along this)
      • CatQuest: uses for?
      • CatQuest
        uh.. idk, it's lib
      • it has a lib called libsomethingsomething
      • used to atleast
      • for..
      • uh
      • i dont know :(
      • outsidecontext
        CatQuest: you mean mutagen?
      • CatQuest
        I actually wanted to know because on wikipedia there is actually a page called "libformat" for ffmpeg or something, and I wanted to see if something existed for picard's file
      • hmm
      • .. no mutagen wikipage is not that :D
      • libavformat actually, but whatever
      • libtunepimp doesn't exist on wp
      • outsidecontext
        I don't know exactly what you are looking for or what question you want to answer / problem to solve :D There is no libpicard or something. For reading / writing metadata in audio files there is mutagen
      • CatQuest
      • outsidecontext
        libtunepimp *is* ancient history https://wiki.musicbrainz.org/History:libtunepimp
      • CatQuest
        ah, tnhe I'm just outdated severely. (i remembered the "libtunepimp" name (and it's what I associate "libxxx") with)
      • yea
      • mayhem
        lol, libtunepimp.
      • CatQuest
        i mena i remember he name :D
      • mayhem
        that never took off, lol.
      • CatQuest
        it didn't? huh
      • but such a cool name
      • outsidecontext
        It had been basically become outdated even before I contributed my first code to Picard, and that has been nearly 15 years ago :D
      • CatQuest
        huh. my memory is weird
      • BrainzGit
        [listenbrainz-server] 14staticssleever668 opened pull request #2049 (03master…fix/youtube_short_link): Simplify the code to get Youtube URL from a listen https://github.com/metabrainz/listenbrainz-serv...
      • monkey
        alastairp: Ahaa, first person asking the real questions about our canonical music_service domain name :D -> https://github.com/web-scrobbler/web-scrobbler/...
      • alastairp
        zas: thanks for the redirect configuration
      • mayhem: can you update DNS for ftp.acousticbrainz.org to point to gateways? you can restore TTL to something more sane too
      • monkey: interesting. this comes back to our discussion about "should it be the domain of the music service, or should you generate it from the url that you have", right?
      • monkey
        Yes. The subtlety here is that in JS the browser location will have the full domain (i.e open.spotify.com) but there's no good reliable way to get the root domain (spotify.com) from it (without fetching a giant list of TLDs somewhere)
      • alastairp
        yes right, and the whole idea of webscrobbler is that it's supposed to be generic and magic?
      • in which case having a list of TLDs requires keeping it up to date
      • bandcamp specifically is [bandname].bandcamp.com, right?
      • monkey
        In most cases I can think of
      • That or without the subdomain: `https://bandcamp.com/mr_monkey/feed`
      • alastairp
        https://github.com/web-scrobbler/web-scrobbler/... this is the list of sites, right?
      • monkey
        But I think if you're gonna go and modify each connector they have, might as well hardcode a value
      • Yep, lots of connectors
      • alastairp
        it seems that they work by the presence of a particular selector? rather than the domain that it's running on
      • which is a shame
      • monkey
        No, I think they initially work on URL: https://github.com/web-scrobbler/web-scrobbler/...
      • mayhem
        alastairp: done
      • alastairp
        monkey: ahhh, missed that
      • monkey: I mean, my initial gut feel is that `matches` is really close to what we want
      • mayhem: thanks
      • and in fact 'id' could be music_service_name, in absence of any better solution
      • monkey
        alastairp: Somewhat, but then they also support multiple TLDs sometimes: https://github.com/web-scrobbler/web-scrobbler/...
      • alastairp
        yeah, I saw a few examples. especially in bandcamp
      • mmm yeah, that yandex one looks difficult. because in this case "radio.yandex.kz" is probably the correct example, but in the case of a match of *.bandcamp.com we'd want -> bandcamp.com
      • I feel a bit bad recommending that they add another 500 lines to that file... :)
      • monkey
        Yeah. That is something I brought up while we were discussing, but I suppose the argument was "There will be a way to do it, even if it's cumbersome"
      • Which holds true
      • Here's a canonical URL where the subdomain is required: reddit.musicplayer.io
      • musicplayer.io -> 404
      • alastairp
        yeah, right. I I didn't think about this idea of multiple localised domains that might be different when we came up with the idea
      • outsidecontext
        alastairp, monkey: isn't that easily solved on the server side? Just having a rule to drop subdomains from e.g foo.bandcamp.com
      • alastairp
        and of course the original idea was to try and come up with a uniform way of identifying a site without relying on people typing text which might be different from app to app
      • monkey
        IIRC we avoid doing any manipulation of the incoming listens
      • outsidecontext
        even if you just do it for analysis reasons that would be possible. or automatically add the canonical version of the input