Hi there. I don't think the field "certification" in the discover route is working. I have some search filters and I get the results as though certification hasn't been selected. Here's my code:
const fetchMovies = async () => {
const queryParams = {
api_key: apiKey,
sort_by: sortBy,
"vote_average.gte": voteAverageGte,
"vote_average.lte": voteAverageLte,
"primary_release_date.gte": convertToYYYYMMDD(primaryReleaseDateGte),
"primary_release_date.lte": convertToYYYYMMDD(primaryReleaseDateLte),
with_genres: genreSelections.join(","),
certification: certificationSelections.join("|"),
"vote_count.gte": voteCountGte,
"with_runtime.gte": withRuntimeGte,
"with_runtime.lte": withRuntimeLte,
page: pageNumber,
language: language,
region: "BR"
};
for (const key in queryParams) {
// Just checking if the dates are valid
if (key === "primary_release_date.gte" || key === "primary_release_date.lte")
{
if (!moment(queryParams[key], 'YYYY-MM-DD').isValid())
delete queryParams[key];
}
else if (queryParams[key] === null || queryParams[key] === "") {
delete queryParams[key];
}
}
try {
const response = await axios.get(filteredMovieURL, {
params: queryParams,
});
const data = response.data;
setMovies((prevMovies) => [...prevMovies, ...data.results]);
} catch (error) {
console.error("Erro ao receber os dados:", error);
}
};
For instance, when using the URL:
https://api.themoviedb.org/3/discover/movie?api_key=MY_API_KEY&certification=L&page=1&language=pt-BR®ion=BR
I get all of the movies as though the certification hasn't been specified. Also, I've noticed none of the 20 array elements has a certification field. Here's a screenshot: Mission Impossible fields
لم تجد الفلم أو المسلسل ؟ سجل دخولك و انشئها
هل تريد تقييم او اضافة هذا العنصر للقائمة؟
لست عضو؟
رد بواسطة robbie3999
بتاريخ نوفمبر 13, 2023 في 5:41 مساءا
Hi @vitorary90, I believe that you should use the filter "certification_country" to specify a country for certifications. However, the discover movie documentation does say to use "region". Hopefully a staff member or moderator will look at this and tell us which is correct.
The certification is not included in the results, to see a movie certification you would have to call the movie release dates endpoint for each movie.
Also, it looks like your code may try to join multiple certifications with "|", I'm not sure but I believe you can only specify one certification. Again, hopefully someone else may be able to give more information. You can specifiy a range of certifications with "certification.lte" and/or "certification.gte", the names and order are given in the certifications for movies list.
رد بواسطة vitorary90
بتاريخ نوفمبر 13, 2023 في 9:50 مساءا
Using certification_country worked. On a sidenote, using "|" also worked. Thanks for your help, Robbie.