I am grabbing a movie trailer from API results in order to show the 'Official Trailer'. I want to show the official trailer instead of featurettes/bloopers etc.
At the moment I am doing this which works for the most part, but some movies don't seem to accept it....
let movieTrailerUrl = data.videos.results.find(element => element.name.toLowerCase() === 'Official Trailer'.toLowerCase()).key;
For example, this movie clearly has available videos but it pulls in zero results...
https://www.themoviedb.org/movie/370172-no-time-to-die?language=en-US
Is there a better way to grab an 'Official Trailer' from the API?
Не можете найти фильм или сериал? Войдите на сайт, чтобы добавить его.
Хотите поставить оценку или добавить в список?
Нет аккаунта?
Ответ от Travis Bell
, 13 января 2022 в 13:33
Each video object returns a field called
official
that you should be checking instead of anything to do with the name. Studios name their trailers all kinds of different things so that would not be a very reliable way to searching for official trailers.Request
Response
Ответ от lowercase
, 13 января 2022 в 16:02
I feel like this doesn't solve the issue of Trailers specifically. Grabbing videos marked 'Official' means you also get anything else marked official - bloopers/featurettes/interviews/teasers etc.
Is the a way to specifically get the 'official movie trailer' as opposed to an 'offical video of any kind'?
Hope that makes sense and appreciate the help.
Ответ от Travis Bell
, 13 января 2022 в 16:22
You wouldn't just grab anything marked as official. Instead, grab the items that are
type: Trailer
ANDofficial: true
.Ответ от kingluiii
, 26 февраля 2022 в 05:52
what if I only want one trailer ...the final trailer only??
Ответ от ticao2 🇧🇷 pt-BR
, 26 февраля 2022 в 07:23
All video responses contain this data:
So I think you should select what you want.
"published_at": I believe it's the date of publication on Youtube.
There is no API Request that returns only the latest, or most recent, official trailer.
Ответ от OceanCat
, 24 января 2024 в 07:14
Guys, try -> const trailerUrl = movieVids?.results?.find(element => element.name.includes("Official Trailer") || element.name.includes("Trailer")) Use then trailerUrl.key.
It will find any video that have "Official Trailer" or "Trailer" in this name. So you guarantee TRAILER video.