Tmdb Client Error: {"success":false,"status_code":11,"status_message":"Internal error: Something went wrong, contact TMDb.","combined_credits":{"cast":[{"adult":false,"backdrop_path":"/7VrvHUlc2UU51uVqZyMShCB5Axe.jpg","genre_ids":[35],"id":402582,"original_language":"en","original_title":"Handsome: A Netflix Mystery Movie","overview":"LA homicide detective Gene Handsome's knack for solving mysteries is matched only by his inability to make sense of his own problems.","popularity":6.413,"poster_path":"/yc1GQhNw5MvznrtPmPY52dKsdrm.jpg","release_date":"2017-05-05","title":"Handsome: A Netflix Mystery Movie","video":false,"vote_average":5.3,"vote_count":130,"character":"Japanese Tourist #12","credit_id":"624b79b7223e200053b9709a","order":24,"media_type":"movie"},{"adult":false,"backdrop_path":null,"genre_ids":[27],"id":451901,"original_language":"ja","original_title":"トイレの花子さん新章 花子VSヨースケ","overview":"Shizukune is an exorcist in training. She travels with her teacher Miyo. Rock band members Jo, Mika and Aki sneak in an abandoned school because of a bet. Shizukune arrives at the school to expel the evil there. She comes face to face with a dark spirit.","popularity":1.54,"poster_path":"/f3qnIDdw7RTo2GNdT6nrQCqzg95.jpg","release_date":"2016-07-02","title":"Hanako of the Toilet: Hanako vs Yosuke","video":false,"vote_average":0.0,"vote_count":0,"character":"","credit_id":"58eed69a92514141f70004e3","order":3,"media_type":"movie"},{"adult":false,"backdrop_path":null,"genre_ids":[35,18],"id":225573,"origin_country":["JP"],"original_language":"ja","original_name":"元町ロックンロールスウィンドル","overview":"In a back-street secondhand clothing store, Maria is visited by various people with troublesome problems and issues.","popularity":2.053,"poster_path":"/hBvW8QYsbeRMbyeJtblKtllu2O4.jpg","first_air_date":"2019-04-01","name":"Motomachi Rock 'n' Roll Swindle","vote_average":0.0,"vote_count":0,"character":"Ranko","credit_id":"644e438a6beaea15072b72e7","episode_count":13,"media_type":"tv"},{"adult":false,"backdrop_path":"/qbjmUOhcBTHhcR4dNmlc0wZVgBq.jpg","genre_ids":[],"id":111378,"origin_country":["JP"],"original_language":"ja","original_name":"アタック25","overview":"","popularity":2.695,"poster_path":"/fpNivllcD7Rm9qaJLL0zuvvcq7A.jpg","first_air_date":"1975-04-06","name":"Panel Quiz Attack 25","vote_average":0.0,"vote_count":0,"character":"","credit_id":"5fbd5b3d57530e00413a30f8","episode_count":1,"media_type":"tv"}],"crew":[]}}
96 'Content-Type' => 'application/json;charset=utf-8',
97 'Authorization' => sprintf('Bearer %s', Configurator::$instance->get('tmdb'))
98 ];
99
100 // Append language preference to headers to avoid adult content
101 $headers['Accept-Language'] = 'en-US'; // Example: Set language preference to English
102
103 // Make the GET request with headers
104 $resp = EasyCurl::setHeaders($headers)->get(...$args);
105
106 // Check if response status is not 200 OK
107 if ($resp->getStatus() != 200) {
108 throw new TmdbClientException('Tmdb Client Error: ' . $resp->getBody(), $resp->getStatus());
109 }
110
111 // Check for adult content in response (assuming TMDB API supports such filtering)
112 $jsonResponse = json_decode($resp->getBody(), true);
113
114
115 return $resp;
116 }
117
118
119 public function getGenre(): array
120 {
121 return $this->request('genre/' . $this->getType() . '/list')['genres'] ?? [];