For the second time, the error is due to your code trying to deserialize HTML. What's confusing, if I understand your response above, is you are expecting an HTML response but the code is expecting JSON. Also, the response must be returning a status 200 (Ok) and not a 4XX error message.
I'm guessing is the client is calling an HTML page and not a REST service endpoint. That's why you're receiving an HTML stream with a 200 (ok) status. Use the debugger to verify the URL is correct. Also, it looks like you might be using one HttpClient for three different services. Can you verify?
"TmdbSettings": {
"BaseUrl": "https://www.themoviedb.org/",
"BaseImagePath": "https://image.tmdb.org/t/p",
"BaseYouTubePath": "//www.youtube.com/watch?v=",
"QueryOptions": {
"Language": "en-US",
"AppendToResponse": "videos,release_dates,credits",
"Page": "1"
}
}
If you read the HttpClient reference documentation the recommendation is one HttpClient for each service because the HttpClient by design is scoped to the application not the request. Use the HttpClient factory pattern to fetch the HttpClient(s) the controller needs (constructor injection).
Make HTTP requests using IHttpClientFactory in ASP.NET Core
If you have one REST service and therefore one HttpClient then configure the base URL in the startup configuration. Again, I recommend the HttpClient factory pattern.