tboothman / imdbphp

PHP library for retrieving film and tv information from IMDb
247 stars 84 forks source link

Trailer method in Title class is broken #328

Open jcvignoli opened 5 months ago

jcvignoli commented 5 months ago

Just tested with "2001, a space odyssey".

No trailer is found, despite there are many:

https://www.imdb.com/title/tt0062622/videogallery/content_type-trailer

duck7000 commented 5 months ago

Well.. imdb changed the trailer page, so this is to be expected.

if anyone is interested in fixing this the right way here is the query i use:

            $query = <<<EOF
query Video(\$id: ID!) {
  title(id: \$id) {
    primaryVideos(first: 9999) {
      edges {
        node {
          playbackURLs {
            url
          }
          thumbnail {
            url
            width
            height
          }
          runtime {
            value
          }
          contentType {
            displayName {
              value
            }
          }
          primaryTitle {
            titleText {
              text
            }
          }
        }
      }
    }
  }
}
EOF;

Figure out the rest yourself as it works the same as other GraphQL methods. It includes other info as well but you can strip that out of you don't want it.

As a courtesy to show that i DO care and respect this project and maintainers.

jcvignoli commented 5 months ago

Thanks @duck7000, I actually already implemented your graphql method in my own fork. Just took out the get_headers() check which takes forever on my environnement, don't know why.

duck7000 commented 5 months ago

Get_headers will check if the found url can be used as embedded url in an iframe, not all urls are allowed to do so. Why that takes a long time in your environment is beyond me as it works fast at my server.

It wonders me though why you add this issue here but use your own fork?

jcvignoli commented 5 months ago

Well, because I'm not a developper, and true developpers do a better work than me :)

duck7000 commented 5 months ago

I'm not a true developer either hah

pb1dft commented 6 days ago

Trailers is still broken. setting "Trailers" => "/videogallery/?contentType=trailer", in Title.php at least got rid of the class error 404 not found. But content is so different it won't match

pb1dft commented 5 days ago

My 2 cents on a fix. I only return the 1080 version per trailer. When one wants multiple version they are free to adjust the code ;)

Second i filter out foreign languages.

diff.txt

duck7000 commented 5 days ago

@pb1dft i DO appreciate you did try to fix this but what i don't understand is that if there is a solid fix (with GraphQL) why you (and other people) do insist to use old scraper methods while there is a perfect solution ready to use? It is beyond me, that is all i'm about to say about it.

You may want to look at my trailer method here (frome line 2000) https://github.com/duck7000/imdbGraphQLPHP/blob/master/src/Imdb/Title.php I do include the image url with a few parameters so don't be intimidated by it hah

pb1dft commented 5 days ago

Because some of us have this library incoorporated in a much larger project ;) That being said i will check out the GraphQL later ;)