duck7000 / imdbGraphQLPHP

7 stars 0 forks source link

Interests #73

Open GeorgeFive opened 1 month ago

GeorgeFive commented 1 month ago

Hey, I noticed imdb changed genres to interests, and there's now a lot more detail there.

https://www.imdb.com/title/tt0077402/ https://www.imdb.com/interest/in0000122/

This is actually pretty cool, and is pretty handy info to have. Can we get this over here?

duck7000 commented 1 month ago

The new style looks a lot like netflix hah But yes this looks interesting!

I'm not sure how this can be used in our library? With new methods i suppose? Or something like Calendar class?

I need some examples or ideas how to use this

GeorgeFive commented 1 month ago

I just looked at this again on mobile, it's different now. Earlier, the genres on the main title page were gone and replaced with interests.. Maybe I'm on the test site at home? Who knows.

But mainly, I'd just like to get a list of the interests in the way that genres currently works.

Not sure if the old genre links will still work when this rollout is complete.....?

duck7000 commented 1 month ago

I'm not sure either.. It can take a lot of time for new stuff to rollout to all imdb servers so we may have to wait a while before trying this.

So a new method interests in title class would be what you want? It might be better to do this in a similar class like Calendar i think?

First i have to check if and how this is implanted in GraphQL API

I'll look in to this but first i want to sort of close the musicBrainz library with a new version. I can't work on both at the same time

GeorgeFive commented 1 month ago

Clipboard01

Ok, so I didn't see this on mobile at work, but now that I'm home, this is what I'm seeing (just in case you don't have it on your end yet).

The existing genres have been converted to interests as well... ie, horror is now https://www.imdb.com/interest/in0000112

I think it would be nice to have it in title, just get the list of interests and ids from a given title (same thing as current genres method). That's all I personally need, but if there was a separate class to get everything from an interest id, that would be cool as well.

Take your time, as always! No rush on this, I definitely don't need it today, hah. I'm wrapping up the musicbrainz stuff as well, getting everything done on my end to actually use the class (hence the rapid fire reports on here, haha).

duck7000 commented 1 month ago

Well i looked in to this and found that imdb now uses genres AND subgenres by keyword

In the genre method i did only include genre (not sure if subGenre existed at that time). So i'm going to include subGenre as well but have to see how this would be added in the return results?

I can add those subGenres just as the normal genres in the existing indexed array?

GeorgeFive commented 1 month ago

So they return as, ie, "Zombie Horror" is a subgenre of "Horror"? And then it has horror as well?

Maybe we could have a header_id on subgenres to tie everything together?

duck7000 commented 1 month ago

Yes as far as i have seen they use genre and subGenres

Mm i'm thinking of keep all genres together in an indexed array just as it is now, not sure if i can find header_id though

duck7000 commented 1 month ago

https://www.imdb.com/interest/in0000112

This is something different, it is a kind of Chart page but for (sub)genres I'm not sure if i can find this in the API

GeorgeFive commented 1 month ago

I'm not sure if they actually call it header_id or not, just something to say that X is a subgenre of Y.

My thought process is that, as a human, of course you could tell that "Zombie Horror" is a subgenre of "Horror", that's simple.... but how do you determine that with code? You could match against "Horror", but what if they have a genre called "Vampires"?

If it's buried in there, it would definitely be cool to have!

duck7000 commented 1 month ago

The API keeps genre and subGenre separated so i can add them separated to the output array? a associative array: array(['mainGenre']) where mainGenre is an array with subGenres?

imdb doesn't make that separation on their website, they list all genres including subGenres just like they did with genres only

GeorgeFive commented 1 month ago

Gotcha, that could work! Just tossing out ideas, if it's possible, awesome... if not, I'll see what I can do, haha.

duck7000 commented 1 month ago

subGenre is added in latest commit. The output array is changed, see here

Array
(
    [0] => Array
        (
            [mainGenre] => Crime
            [subGenre] => Array
                (
                )

        )

    [1] => Array
        (
            [mainGenre] => Sci-Fi
            [subGenre] => Array
                (
                    [0] => dystopian sci fi
                )

        )

)

Let me know if this works for you?

duck7000 commented 1 month ago

The other part about interests i have to try to find it in the API, i didn't find it jet

GeorgeFive commented 1 month ago

Just tried it out... I noticed that not everything is returning?

https://www.imdb.com/title/tt0077402/

If you look at the site, they have a "Survival" genre as well, but this is not returned. Also, do they provide the genre ID's by any chance?


Array
(
    [0] => Array
        (
            [mainGenre] => Horror
            [subGenre] => Array
                (
                    [0] => zombie horror
                    [1] => supernatural horror
                )

        )

    [1] => Array
        (
            [mainGenre] => Thriller
            [subGenre] => Array
                (
                )

        )

)
duck7000 commented 1 month ago

well for dawn of the dead this is returned

stdClass Object
(
    [title] => stdClass Object
        (
            [titleGenres] => stdClass Object
                (
                    [genres] => Array
                        (
                            [0] => stdClass Object
                                (
                                    [genre] => stdClass Object
                                        (
                                            [text] => Horror
                                        )

                                    [subGenres] => Array
                                        (
                                            [0] => stdClass Object
                                                (
                                                    [keyword] => stdClass Object
                                                        (
                                                            [text] => stdClass Object
                                                                (
                                                                    [text] => zombie horror
                                                                )

                                                        )

                                                )

                                            [1] => stdClass Object
                                                (
                                                    [keyword] => stdClass Object
                                                        (
                                                            [text] => stdClass Object
                                                                (
                                                                    [text] => supernatural horror
                                                                )

                                                        )

                                                )

                                        )

                                )

                            [1] => stdClass Object
                                (
                                    [genre] => stdClass Object
                                        (
                                            [text] => Thriller
                                        )

                                    [subGenres] => Array
                                        (
                                        )

                                )

                        )

                )

        )

)

I can't produce what is not returned, but yes there is difference between what is shown above under the trailer and what is shown by genres (if you scroll down the page)

This is it i'm afraid

duck7000 commented 1 month ago

Genre id's i'll have to look in to that

Edit: this is not possible, i can get some id but not that can be used to create links just a random id number

If i can make that fucking interest stuff going i might get an id there

duck7000 commented 1 month ago

Mm the genres on top of the page are interest, further down are genres

This is confusing!

If i search in API with the word 'interest' there is al whole list but nothing that indicates something about genres

GeorgeFive commented 1 month ago

If I had to guess, I'd say that interests will replace genres soon. They just launched interests a few nights ago, so I think it's still a little rough, but give it a few weeks, hah.

Yeah, I never used genres before this, because "Horror" "Thriller" is a little vague for my liking (we do our own genres on my site to really categorize titles). But this interests thing is pretty nice, I do have to admit that. That's why I got "interest"ed all of a sudden, hah.

duck7000 commented 1 month ago

That might indeed happen but we'll see Here is some info https://help.imdb.com/article/issues/GG7J2ARMQ6SFY7AF

There is no API documentation and no release notes either so for now this is the best i can do

If i do find something useful i let you know