├── .mvn └── wrapper │ ├── maven-wrapper.jar │ └── maven-wrapper.properties ├── .idea └── codeStyles │ ├── codeStyleConfig.xml │ └── Project.xml ├── .gitignore ├── src ├── main │ ├── java │ │ └── com │ │ │ └── uwetrottmann │ │ │ └── tmdb2 │ │ │ ├── entities │ │ │ ├── ListResultsPage.java │ │ │ ├── MediaResultsPage.java │ │ │ ├── MovieResultsPage.java │ │ │ ├── ReviewResultsPage.java │ │ │ ├── NetworkImage.java │ │ │ ├── PersonResultsPage.java │ │ │ ├── TrendingResultsPage.java │ │ │ ├── TvShowResultsPage.java │ │ │ ├── CompanyResultsPage.java │ │ │ ├── KeywordResultsPage.java │ │ │ ├── RatingObject.java │ │ │ ├── CollectionResultsPage.java │ │ │ ├── ListOperation.java │ │ │ ├── TvEpisodeResultsPage.java │ │ │ ├── BaseRatingObject.java │ │ │ ├── Genre.java │ │ │ ├── TaggedImagesResultsPage.java │ │ │ ├── Keyword.java │ │ │ ├── BaseKeyword.java │ │ │ ├── Country.java │ │ │ ├── Session.java │ │ │ ├── package-info.java │ │ │ ├── ContentRating.java │ │ │ ├── NetworkImages.java │ │ │ ├── Status.java │ │ │ ├── AlternativeTitle.java │ │ │ ├── GenreResults.java │ │ │ ├── ListItemStatus.java │ │ │ ├── CrewMember.java │ │ │ ├── List.java │ │ │ ├── BaseTvEpisodeRatingObject.java │ │ │ ├── Jobs.java │ │ │ ├── BaseCompany.java │ │ │ ├── ListCreateResponse.java │ │ │ ├── PersonImages.java │ │ │ ├── TmdbLanguage.java │ │ │ ├── BaseAccountStates.java │ │ │ ├── ListCreateRequest.java │ │ │ ├── RequestToken.java │ │ │ ├── SpokenLanguage.java │ │ │ ├── CastMember.java │ │ │ ├── ContentRatings.java │ │ │ ├── GuestSession.java │ │ │ ├── Timezones.java │ │ │ ├── BasePersonCredit.java │ │ │ ├── WatchProvidersResults.java │ │ │ ├── AccountStatesResults.java │ │ │ ├── ReleaseDatesResults.java │ │ │ ├── BaseMember.java │ │ │ ├── ReleaseDatesResult.java │ │ │ ├── AccountStates.java │ │ │ ├── BaseCollection.java │ │ │ ├── PersonCrewCredit.java │ │ │ ├── TaggedImage.java │ │ │ ├── PersonCastCredit.java │ │ │ ├── TvCredits.java │ │ │ ├── PersonCredits.java │ │ │ ├── Collection.java │ │ │ ├── Images.java │ │ │ ├── FavoriteMedia.java │ │ │ ├── WatchlistMedia.java │ │ │ ├── Credits.java │ │ │ ├── ChangeResultsPage.java │ │ │ ├── Network.java │ │ │ ├── Media.java │ │ │ ├── BaseTvSeason.java │ │ │ ├── MovieExternalIds.java │ │ │ ├── Trending.java │ │ │ ├── BaseResultsPage.java │ │ │ ├── TvSeasonExternalIds.java │ │ │ ├── Image.java │ │ │ ├── BasePerson.java │ │ │ ├── Keywords.java │ │ │ ├── Company.java │ │ │ ├── Review.java │ │ │ ├── TvEpisodeExternalIds.java │ │ │ ├── AlternativeTitles.java │ │ │ ├── BaseList.java │ │ │ ├── FindResults.java │ │ │ ├── TvCastCredit.java │ │ │ ├── TvCrewCredit.java │ │ │ ├── CreditMedia.java │ │ │ ├── PersonExternalIds.java │ │ │ ├── BaseTvCredit.java │ │ │ ├── Certifications.java │ │ │ ├── TvSeason.java │ │ │ ├── TvEpisode.java │ │ │ ├── TvExternalIds.java │ │ │ ├── Credit.java │ │ │ ├── Account.java │ │ │ ├── Videos.java │ │ │ ├── Configuration.java │ │ │ ├── Changes.java │ │ │ ├── ReleaseDate.java │ │ │ ├── BaseTvEpisode.java │ │ │ ├── BaseTvShow.java │ │ │ ├── BaseMovie.java │ │ │ ├── Translations.java │ │ │ ├── AppendToResponse.java │ │ │ ├── Person.java │ │ │ ├── TmdbDate.java │ │ │ ├── Movie.java │ │ │ ├── TvShow.java │ │ │ ├── WatchProviders.java │ │ │ └── DiscoverFilter.java │ │ │ ├── package-info.java │ │ │ ├── exceptions │ │ │ ├── TmdbNotFoundException.java │ │ │ ├── TmdbServiceErrorException.java │ │ │ ├── TmdbDuplicateEntryException.java │ │ │ ├── TmdbInvalidParametersException.java │ │ │ ├── TmdbAuthenticationFailedException.java │ │ │ └── TmdbException.java │ │ │ ├── enumerations │ │ │ ├── ReleaseType.java │ │ │ ├── TimeWindow.java │ │ │ ├── ExternalSource.java │ │ │ ├── EpisodeType.java │ │ │ ├── Status.java │ │ │ ├── SortBy.java │ │ │ ├── VideoType.java │ │ │ ├── CreditType.java │ │ │ ├── MediaType.java │ │ │ └── AppendToResponseItem.java │ │ │ ├── services │ │ │ ├── TimezonesService.java │ │ │ ├── ReviewsService.java │ │ │ ├── CertificationsService.java │ │ │ ├── CreditsService.java │ │ │ ├── NetworksService.java │ │ │ ├── WatchProvidersService.java │ │ │ ├── TrendingService.java │ │ │ ├── AuthenticationService.java │ │ │ ├── ConfigurationService.java │ │ │ ├── GenresService.java │ │ │ ├── GuestSessionService.java │ │ │ ├── FindService.java │ │ │ ├── KeywordsService.java │ │ │ ├── ChangesService.java │ │ │ ├── CompaniesService.java │ │ │ ├── CollectionsService.java │ │ │ ├── SearchService.java │ │ │ ├── DiscoverService.java │ │ │ └── ListsService.java │ │ │ ├── internal │ │ │ ├── EverythingIsNonNull.java │ │ │ └── EverythingIsNullable.java │ │ │ ├── TmdbInterceptor.java │ │ │ └── TmdbAuthenticator.java │ └── resources │ │ └── META-INF │ │ └── proguard │ │ └── tmdb-java.pro └── test │ └── java │ └── com │ └── uwetrottmann │ └── tmdb2 │ ├── services │ ├── ReviewsServiceTest.java │ ├── CertificationsServiceTest.java │ ├── TrendingServiceTest.java │ ├── NetworksServiceTest.java │ ├── TimezonesServiceTest.java │ ├── WatchProvidersServiceTest.java │ ├── GenresServiceTest.java │ ├── ListsServiceTest.java │ ├── KeywordsServiceTest.java │ ├── CompaniesServiceTest.java │ ├── CollectionsServiceTest.java │ ├── CreditsServiceTest.java │ ├── ChangesServiceTest.java │ ├── DiscoverServiceTest.java │ ├── SearchServiceTest.java │ ├── FindServiceTest.java │ └── GuestSessionTest.java │ ├── assertions │ ├── GenreAssertions.java │ ├── NetworkAssertions.java │ ├── AccountAssertions.java │ ├── CertificationAssertions.java │ ├── ChangeAssertions.java │ ├── ListAssertions.java │ ├── CollectionAssertions.java │ ├── CreditAssertions.java │ ├── KeywordAssertions.java │ ├── MediaAssertions.java │ ├── TrendingAssertions.java │ ├── CompanyAssertions.java │ ├── ReviewAssertions.java │ ├── MovieAssertions.java │ └── PersonAssertions.java │ └── BaseTestCase.java ├── .github ├── dependabot.yml └── workflows │ └── build-and-test.yml ├── .gitattributes ├── RELEASING.md ├── CONTRIBUTING.md └── README.md /.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UweTrottmann/tmdb-java/HEAD/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /.idea/codeStyles/codeStyleConfig.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | #Maven 2 | target 3 | release.properties 4 | pom.xml.* 5 | 6 | #Eclipse 7 | .classpath 8 | .project 9 | .settings 10 | bin 11 | 12 | #IntelliJ IDEA 13 | *.iml 14 | !.idea/ 15 | .idea/* 16 | !.idea/codeStyles 17 | -------------------------------------------------------------------------------- /src/main/java/com/uwetrottmann/tmdb2/entities/ListResultsPage.java: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: Apache-2.0 2 | // Copyright 2025 Uwe Trottmann 3 | 4 | package com.uwetrottmann.tmdb2.entities; 5 | 6 | public class ListResultsPage extends BaseResultsPage { 7 | } -------------------------------------------------------------------------------- /src/main/java/com/uwetrottmann/tmdb2/entities/MediaResultsPage.java: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: Apache-2.0 2 | // Copyright 2025 Uwe Trottmann 3 | 4 | package com.uwetrottmann.tmdb2.entities; 5 | 6 | public class MediaResultsPage extends BaseResultsPage { 7 | } 8 | -------------------------------------------------------------------------------- /src/main/java/com/uwetrottmann/tmdb2/entities/MovieResultsPage.java: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: Apache-2.0 2 | // Copyright 2025 Uwe Trottmann 3 | 4 | package com.uwetrottmann.tmdb2.entities; 5 | 6 | public class MovieResultsPage extends BaseResultsPage { 7 | } 8 | -------------------------------------------------------------------------------- /src/main/java/com/uwetrottmann/tmdb2/entities/ReviewResultsPage.java: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: Apache-2.0 2 | // Copyright 2025 Uwe Trottmann 3 | 4 | package com.uwetrottmann.tmdb2.entities; 5 | 6 | public class ReviewResultsPage extends BaseResultsPage { 7 | } 8 | -------------------------------------------------------------------------------- /src/main/java/com/uwetrottmann/tmdb2/entities/NetworkImage.java: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: Apache-2.0 2 | // Copyright 2025 Uwe Trottmann 3 | 4 | package com.uwetrottmann.tmdb2.entities; 5 | 6 | public class NetworkImage extends Image { 7 | public String file_type; 8 | } 9 | -------------------------------------------------------------------------------- /src/main/java/com/uwetrottmann/tmdb2/entities/PersonResultsPage.java: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: Apache-2.0 2 | // Copyright 2025 Uwe Trottmann 3 | 4 | package com.uwetrottmann.tmdb2.entities; 5 | 6 | public class PersonResultsPage extends BaseResultsPage { 7 | } 8 | -------------------------------------------------------------------------------- /src/main/java/com/uwetrottmann/tmdb2/entities/TrendingResultsPage.java: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: Apache-2.0 2 | // Copyright 2025 Uwe Trottmann 3 | 4 | package com.uwetrottmann.tmdb2.entities; 5 | 6 | public class TrendingResultsPage extends BaseResultsPage { 7 | } 8 | -------------------------------------------------------------------------------- /src/main/java/com/uwetrottmann/tmdb2/entities/TvShowResultsPage.java: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: Apache-2.0 2 | // Copyright 2025 Uwe Trottmann 3 | 4 | package com.uwetrottmann.tmdb2.entities; 5 | 6 | public class TvShowResultsPage extends BaseResultsPage { 7 | } 8 | -------------------------------------------------------------------------------- /src/main/java/com/uwetrottmann/tmdb2/entities/CompanyResultsPage.java: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: Apache-2.0 2 | // Copyright 2025 Uwe Trottmann 3 | 4 | package com.uwetrottmann.tmdb2.entities; 5 | 6 | public class CompanyResultsPage extends BaseResultsPage { 7 | } 8 | -------------------------------------------------------------------------------- /src/main/java/com/uwetrottmann/tmdb2/entities/KeywordResultsPage.java: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: Apache-2.0 2 | // Copyright 2025 Uwe Trottmann 3 | 4 | package com.uwetrottmann.tmdb2.entities; 5 | 6 | public class KeywordResultsPage extends BaseResultsPage { 7 | } 8 | -------------------------------------------------------------------------------- /src/main/java/com/uwetrottmann/tmdb2/entities/RatingObject.java: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: Apache-2.0 2 | // Copyright 2025 Uwe Trottmann 3 | 4 | package com.uwetrottmann.tmdb2.entities; 5 | 6 | public class RatingObject { 7 | 8 | public Double value; 9 | 10 | } 11 | -------------------------------------------------------------------------------- /src/main/java/com/uwetrottmann/tmdb2/entities/CollectionResultsPage.java: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: Apache-2.0 2 | // Copyright 2025 Uwe Trottmann 3 | 4 | package com.uwetrottmann.tmdb2.entities; 5 | 6 | public class CollectionResultsPage extends BaseResultsPage { 7 | } 8 | -------------------------------------------------------------------------------- /src/main/java/com/uwetrottmann/tmdb2/entities/ListOperation.java: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: Apache-2.0 2 | // Copyright 2025 Uwe Trottmann 3 | 4 | package com.uwetrottmann.tmdb2.entities; 5 | 6 | public class ListOperation { 7 | 8 | public Integer media_id; 9 | 10 | } 11 | -------------------------------------------------------------------------------- /src/main/java/com/uwetrottmann/tmdb2/entities/TvEpisodeResultsPage.java: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: Apache-2.0 2 | // Copyright 2025 Uwe Trottmann 3 | 4 | package com.uwetrottmann.tmdb2.entities; 5 | 6 | public class TvEpisodeResultsPage extends BaseResultsPage { 7 | } 8 | -------------------------------------------------------------------------------- /src/main/java/com/uwetrottmann/tmdb2/entities/BaseRatingObject.java: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: Apache-2.0 2 | // Copyright 2025 Uwe Trottmann 3 | 4 | package com.uwetrottmann.tmdb2.entities; 5 | 6 | public class BaseRatingObject { 7 | 8 | public Integer rating; 9 | 10 | } 11 | -------------------------------------------------------------------------------- /src/main/java/com/uwetrottmann/tmdb2/entities/Genre.java: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: Apache-2.0 2 | // Copyright 2025 Uwe Trottmann 3 | 4 | package com.uwetrottmann.tmdb2.entities; 5 | 6 | public class Genre { 7 | 8 | public Integer id; 9 | public String name; 10 | 11 | } 12 | -------------------------------------------------------------------------------- /src/main/java/com/uwetrottmann/tmdb2/entities/TaggedImagesResultsPage.java: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: Apache-2.0 2 | // Copyright 2025 Uwe Trottmann 3 | 4 | package com.uwetrottmann.tmdb2.entities; 5 | 6 | public class TaggedImagesResultsPage extends BaseResultsPage { 7 | } 8 | -------------------------------------------------------------------------------- /src/main/java/com/uwetrottmann/tmdb2/entities/Keyword.java: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: Apache-2.0 2 | // Copyright 2025 Uwe Trottmann 3 | 4 | package com.uwetrottmann.tmdb2.entities; 5 | 6 | public class Keyword extends BaseKeyword { 7 | 8 | public MovieResultsPage movies; 9 | 10 | } 11 | -------------------------------------------------------------------------------- /src/main/java/com/uwetrottmann/tmdb2/package-info.java: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: Apache-2.0 2 | // Copyright 2025 Uwe Trottmann 3 | 4 | /** 5 | * A Java wrapper around the TMDb v3 API using retrofit 2. 6 | */ 7 | @com.uwetrottmann.tmdb2.internal.EverythingIsNonNull 8 | package com.uwetrottmann.tmdb2; -------------------------------------------------------------------------------- /src/main/java/com/uwetrottmann/tmdb2/entities/BaseKeyword.java: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: Apache-2.0 2 | // Copyright 2025 Uwe Trottmann 3 | 4 | package com.uwetrottmann.tmdb2.entities; 5 | 6 | public class BaseKeyword { 7 | 8 | public Integer id; 9 | public String name; 10 | 11 | } 12 | -------------------------------------------------------------------------------- /src/main/java/com/uwetrottmann/tmdb2/entities/Country.java: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: Apache-2.0 2 | // Copyright 2025 Uwe Trottmann 3 | 4 | package com.uwetrottmann.tmdb2.entities; 5 | 6 | public class Country { 7 | 8 | public String iso_3166_1; 9 | public String name; 10 | 11 | } 12 | -------------------------------------------------------------------------------- /src/main/java/com/uwetrottmann/tmdb2/entities/Session.java: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: Apache-2.0 2 | // Copyright 2025 Uwe Trottmann 3 | 4 | package com.uwetrottmann.tmdb2.entities; 5 | 6 | public class Session { 7 | 8 | public boolean success; 9 | public String session_id; 10 | 11 | } 12 | -------------------------------------------------------------------------------- /src/main/java/com/uwetrottmann/tmdb2/entities/package-info.java: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: Apache-2.0 2 | // Copyright 2025 Uwe Trottmann 3 | 4 | /** 5 | * Classes wrapping response or request bodies. 6 | */ 7 | @com.uwetrottmann.tmdb2.internal.EverythingIsNullable 8 | package com.uwetrottmann.tmdb2.entities; -------------------------------------------------------------------------------- /src/main/java/com/uwetrottmann/tmdb2/entities/ContentRating.java: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: Apache-2.0 2 | // Copyright 2025 Uwe Trottmann 3 | 4 | package com.uwetrottmann.tmdb2.entities; 5 | 6 | public class ContentRating { 7 | 8 | public String iso_3166_1; 9 | public String rating; 10 | 11 | } 12 | -------------------------------------------------------------------------------- /src/main/java/com/uwetrottmann/tmdb2/entities/NetworkImages.java: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: Apache-2.0 2 | // Copyright 2025 Uwe Trottmann 3 | 4 | package com.uwetrottmann.tmdb2.entities; 5 | 6 | import java.util.List; 7 | 8 | public class NetworkImages { 9 | public List logos; 10 | } 11 | -------------------------------------------------------------------------------- /src/main/java/com/uwetrottmann/tmdb2/entities/Status.java: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: Apache-2.0 2 | // Copyright 2025 Uwe Trottmann 3 | 4 | package com.uwetrottmann.tmdb2.entities; 5 | 6 | public class Status { 7 | 8 | public Integer status_code; 9 | public String status_message; 10 | 11 | } 12 | -------------------------------------------------------------------------------- /src/main/java/com/uwetrottmann/tmdb2/entities/AlternativeTitle.java: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: Apache-2.0 2 | // Copyright 2025 Uwe Trottmann 3 | 4 | package com.uwetrottmann.tmdb2.entities; 5 | 6 | public class AlternativeTitle { 7 | 8 | public String iso_3166_1; 9 | public String title; 10 | 11 | } 12 | -------------------------------------------------------------------------------- /src/main/java/com/uwetrottmann/tmdb2/entities/GenreResults.java: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: Apache-2.0 2 | // Copyright 2025 Uwe Trottmann 3 | 4 | package com.uwetrottmann.tmdb2.entities; 5 | 6 | import java.util.List; 7 | 8 | public class GenreResults { 9 | 10 | public List genres; 11 | 12 | } 13 | -------------------------------------------------------------------------------- /src/main/java/com/uwetrottmann/tmdb2/entities/ListItemStatus.java: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: Apache-2.0 2 | // Copyright 2025 Uwe Trottmann 3 | 4 | package com.uwetrottmann.tmdb2.entities; 5 | 6 | public class ListItemStatus { 7 | 8 | public String id; 9 | public Boolean item_present; 10 | 11 | } 12 | -------------------------------------------------------------------------------- /src/main/java/com/uwetrottmann/tmdb2/entities/CrewMember.java: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: Apache-2.0 2 | // Copyright 2025 Uwe Trottmann 3 | 4 | package com.uwetrottmann.tmdb2.entities; 5 | 6 | public class CrewMember extends BaseMember { 7 | 8 | public String department; 9 | public String job; 10 | 11 | } 12 | -------------------------------------------------------------------------------- /src/main/java/com/uwetrottmann/tmdb2/entities/List.java: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: Apache-2.0 2 | // Copyright 2025 Uwe Trottmann 3 | 4 | package com.uwetrottmann.tmdb2.entities; 5 | 6 | public class List extends BaseList { 7 | 8 | public String created_by; 9 | public java.util.List items; 10 | 11 | } 12 | -------------------------------------------------------------------------------- /.github/dependabot.yml: -------------------------------------------------------------------------------- 1 | # Please see the documentation for all configuration options: 2 | # https://docs.github.com/github/administering-a-repository/configuration-options-for-dependency-updates 3 | 4 | version: 2 5 | updates: 6 | - package-ecosystem: "github-actions" 7 | directory: "/" 8 | schedule: 9 | interval: "weekly" -------------------------------------------------------------------------------- /src/main/java/com/uwetrottmann/tmdb2/entities/BaseTvEpisodeRatingObject.java: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: Apache-2.0 2 | // Copyright 2025 Uwe Trottmann 3 | 4 | package com.uwetrottmann.tmdb2.entities; 5 | 6 | public class BaseTvEpisodeRatingObject extends BaseRatingObject { 7 | 8 | public Integer show_id; 9 | 10 | } 11 | -------------------------------------------------------------------------------- /src/main/java/com/uwetrottmann/tmdb2/entities/Jobs.java: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: Apache-2.0 2 | // Copyright 2025 Uwe Trottmann 3 | 4 | package com.uwetrottmann.tmdb2.entities; 5 | 6 | import java.util.List; 7 | 8 | public class Jobs { 9 | 10 | public String department; 11 | public List jobs; 12 | 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/com/uwetrottmann/tmdb2/entities/BaseCompany.java: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: Apache-2.0 2 | // Copyright 2025 Uwe Trottmann 3 | 4 | package com.uwetrottmann.tmdb2.entities; 5 | 6 | public class BaseCompany { 7 | 8 | public Integer id; 9 | public String name; 10 | public String logo_path; 11 | 12 | } 13 | -------------------------------------------------------------------------------- /src/main/java/com/uwetrottmann/tmdb2/entities/ListCreateResponse.java: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: Apache-2.0 2 | // Copyright 2025 Uwe Trottmann 3 | 4 | package com.uwetrottmann.tmdb2.entities; 5 | 6 | public class ListCreateResponse extends Status { 7 | 8 | public Boolean success; 9 | public Integer list_id; 10 | 11 | } 12 | -------------------------------------------------------------------------------- /src/main/java/com/uwetrottmann/tmdb2/entities/PersonImages.java: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: Apache-2.0 2 | // Copyright 2025 Uwe Trottmann 3 | 4 | package com.uwetrottmann.tmdb2.entities; 5 | 6 | import java.util.List; 7 | 8 | public class PersonImages { 9 | 10 | public Integer id; 11 | public List profiles; 12 | 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/com/uwetrottmann/tmdb2/entities/TmdbLanguage.java: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: Apache-2.0 2 | // Copyright 2025 Uwe Trottmann 3 | 4 | package com.uwetrottmann.tmdb2.entities; 5 | 6 | public class TmdbLanguage { 7 | 8 | public String iso_639_1; 9 | public String english_name; 10 | public String name; 11 | 12 | } 13 | -------------------------------------------------------------------------------- /src/main/java/com/uwetrottmann/tmdb2/entities/BaseAccountStates.java: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: Apache-2.0 2 | // Copyright 2025 Uwe Trottmann 3 | 4 | package com.uwetrottmann.tmdb2.entities; 5 | 6 | public class BaseAccountStates { 7 | 8 | public Integer id; 9 | public Boolean rated; 10 | public RatingObject rating; 11 | 12 | } 13 | -------------------------------------------------------------------------------- /src/main/java/com/uwetrottmann/tmdb2/entities/ListCreateRequest.java: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: Apache-2.0 2 | // Copyright 2025 Uwe Trottmann 3 | 4 | package com.uwetrottmann.tmdb2.entities; 5 | 6 | public class ListCreateRequest { 7 | 8 | public String name; 9 | public String description; 10 | public String language; 11 | 12 | } 13 | -------------------------------------------------------------------------------- /src/main/java/com/uwetrottmann/tmdb2/entities/RequestToken.java: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: Apache-2.0 2 | // Copyright 2025 Uwe Trottmann 3 | 4 | package com.uwetrottmann.tmdb2.entities; 5 | 6 | public class RequestToken { 7 | 8 | public Boolean success; 9 | public String request_token; 10 | public String expires_at; 11 | 12 | } 13 | -------------------------------------------------------------------------------- /src/main/java/com/uwetrottmann/tmdb2/entities/SpokenLanguage.java: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: Apache-2.0 2 | // Copyright 2025 Uwe Trottmann 3 | 4 | package com.uwetrottmann.tmdb2.entities; 5 | 6 | public class SpokenLanguage { 7 | 8 | public String english_name; 9 | public String iso_639_1; 10 | public String name; 11 | 12 | } 13 | -------------------------------------------------------------------------------- /src/main/java/com/uwetrottmann/tmdb2/entities/CastMember.java: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: Apache-2.0 2 | // Copyright 2025 Uwe Trottmann 3 | 4 | package com.uwetrottmann.tmdb2.entities; 5 | 6 | public class CastMember extends BaseMember { 7 | 8 | public String character; 9 | public Integer order; 10 | public Integer cast_id; 11 | 12 | } 13 | -------------------------------------------------------------------------------- /src/main/java/com/uwetrottmann/tmdb2/entities/ContentRatings.java: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: Apache-2.0 2 | // Copyright 2025 Uwe Trottmann 3 | 4 | package com.uwetrottmann.tmdb2.entities; 5 | 6 | import java.util.List; 7 | 8 | public class ContentRatings { 9 | 10 | public List results; 11 | public Integer id; 12 | 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/com/uwetrottmann/tmdb2/entities/GuestSession.java: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: Apache-2.0 2 | // Copyright 2025 Uwe Trottmann 3 | 4 | package com.uwetrottmann.tmdb2.entities; 5 | 6 | public class GuestSession { 7 | 8 | public Boolean success; 9 | public String guest_session_id; 10 | public String expires_at; 11 | 12 | } 13 | -------------------------------------------------------------------------------- /src/main/java/com/uwetrottmann/tmdb2/entities/Timezones.java: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: Apache-2.0 2 | // Copyright 2025 Uwe Trottmann 3 | 4 | package com.uwetrottmann.tmdb2.entities; 5 | 6 | import java.util.ArrayList; 7 | import java.util.HashMap; 8 | 9 | public class Timezones extends ArrayList>> { 10 | } 11 | -------------------------------------------------------------------------------- /src/main/java/com/uwetrottmann/tmdb2/entities/BasePersonCredit.java: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: Apache-2.0 2 | // Copyright 2025 Uwe Trottmann 3 | 4 | package com.uwetrottmann.tmdb2.entities; 5 | 6 | public abstract class BasePersonCredit { 7 | 8 | public Integer id; 9 | public String credit_id; 10 | 11 | public Media media; 12 | 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/com/uwetrottmann/tmdb2/entities/WatchProvidersResults.java: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: Apache-2.0 2 | // Copyright 2025 Uwe Trottmann 3 | 4 | package com.uwetrottmann.tmdb2.entities; 5 | 6 | 7 | import java.util.List; 8 | 9 | public class WatchProvidersResults { 10 | 11 | public List results; 12 | 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/com/uwetrottmann/tmdb2/entities/AccountStatesResults.java: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: Apache-2.0 2 | // Copyright 2025 Uwe Trottmann 3 | 4 | package com.uwetrottmann.tmdb2.entities; 5 | 6 | import java.util.List; 7 | 8 | public class AccountStatesResults { 9 | 10 | public Integer id; 11 | public List results; 12 | 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/com/uwetrottmann/tmdb2/entities/ReleaseDatesResults.java: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: Apache-2.0 2 | // Copyright 2025 Uwe Trottmann 3 | 4 | package com.uwetrottmann.tmdb2.entities; 5 | 6 | import java.util.List; 7 | 8 | public class ReleaseDatesResults { 9 | 10 | public int id; 11 | public List results; 12 | 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/com/uwetrottmann/tmdb2/entities/BaseMember.java: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: Apache-2.0 2 | // Copyright 2025 Uwe Trottmann 3 | 4 | package com.uwetrottmann.tmdb2.entities; 5 | 6 | public abstract class BaseMember { 7 | 8 | public Integer id; 9 | public String credit_id; 10 | public String name; 11 | public String profile_path; 12 | 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/com/uwetrottmann/tmdb2/entities/ReleaseDatesResult.java: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: Apache-2.0 2 | // Copyright 2025 Uwe Trottmann 3 | 4 | package com.uwetrottmann.tmdb2.entities; 5 | 6 | import java.util.List; 7 | 8 | public class ReleaseDatesResult { 9 | 10 | public String iso_3166_1; 11 | public List release_dates; 12 | 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/com/uwetrottmann/tmdb2/entities/AccountStates.java: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: Apache-2.0 2 | // Copyright 2025 Uwe Trottmann 3 | 4 | package com.uwetrottmann.tmdb2.entities; 5 | 6 | public class AccountStates extends BaseAccountStates { 7 | 8 | public Boolean favorite; 9 | public Integer episode_number; 10 | public Boolean watchlist; 11 | 12 | } 13 | -------------------------------------------------------------------------------- /src/main/java/com/uwetrottmann/tmdb2/entities/BaseCollection.java: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: Apache-2.0 2 | // Copyright 2025 Uwe Trottmann 3 | 4 | package com.uwetrottmann.tmdb2.entities; 5 | 6 | public class BaseCollection { 7 | 8 | public Integer id; 9 | public String backdrop_path; 10 | public String name; 11 | public String poster_path; 12 | 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/com/uwetrottmann/tmdb2/entities/PersonCrewCredit.java: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: Apache-2.0 2 | // Copyright 2025 Uwe Trottmann 3 | 4 | package com.uwetrottmann.tmdb2.entities; 5 | 6 | public class PersonCrewCredit extends BasePersonCredit { 7 | 8 | public String job; 9 | public String department; 10 | public Integer episode_count; 11 | 12 | } 13 | -------------------------------------------------------------------------------- /src/main/java/com/uwetrottmann/tmdb2/entities/TaggedImage.java: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: Apache-2.0 2 | // Copyright 2025 Uwe Trottmann 3 | 4 | package com.uwetrottmann.tmdb2.entities; 5 | 6 | public class TaggedImage extends Image { 7 | 8 | public String id; 9 | public String media_type; 10 | public TmdbDate release_date; 11 | public Media media; 12 | 13 | } -------------------------------------------------------------------------------- /src/main/java/com/uwetrottmann/tmdb2/entities/PersonCastCredit.java: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: Apache-2.0 2 | // Copyright 2025 Uwe Trottmann 3 | 4 | package com.uwetrottmann.tmdb2.entities; 5 | 6 | public class PersonCastCredit extends BasePersonCredit { 7 | 8 | // both 9 | public String character; 10 | 11 | // tv 12 | public Integer episode_count; 13 | 14 | } 15 | -------------------------------------------------------------------------------- /src/main/java/com/uwetrottmann/tmdb2/entities/TvCredits.java: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: Apache-2.0 2 | // Copyright 2025 Uwe Trottmann 3 | 4 | package com.uwetrottmann.tmdb2.entities; 5 | 6 | import java.util.List; 7 | 8 | public class TvCredits { 9 | 10 | public Integer id; 11 | 12 | public List cast; 13 | public List crew; 14 | 15 | } 16 | -------------------------------------------------------------------------------- /src/main/java/com/uwetrottmann/tmdb2/exceptions/TmdbNotFoundException.java: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: Apache-2.0 2 | // Copyright 2025 Uwe Trottmann 3 | 4 | package com.uwetrottmann.tmdb2.exceptions; 5 | 6 | public class TmdbNotFoundException extends TmdbException { 7 | public TmdbNotFoundException(int code, String message) { 8 | super(code, message); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/main/java/com/uwetrottmann/tmdb2/entities/PersonCredits.java: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: Apache-2.0 2 | // Copyright 2025 Uwe Trottmann 3 | 4 | package com.uwetrottmann.tmdb2.entities; 5 | 6 | import java.util.List; 7 | 8 | public class PersonCredits { 9 | 10 | public Integer id; 11 | public List cast; 12 | public List crew; 13 | 14 | } 15 | -------------------------------------------------------------------------------- /src/main/java/com/uwetrottmann/tmdb2/exceptions/TmdbServiceErrorException.java: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: Apache-2.0 2 | // Copyright 2025 Uwe Trottmann 3 | 4 | package com.uwetrottmann.tmdb2.exceptions; 5 | 6 | public class TmdbServiceErrorException extends TmdbException { 7 | public TmdbServiceErrorException(int code, String message) { 8 | super(code, message); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/main/java/com/uwetrottmann/tmdb2/entities/Collection.java: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: Apache-2.0 2 | // Copyright 2025 Uwe Trottmann 3 | 4 | package com.uwetrottmann.tmdb2.entities; 5 | 6 | import java.util.List; 7 | 8 | public class Collection extends BaseCollection { 9 | 10 | public List parts; 11 | public String overview; 12 | 13 | public Images images; 14 | 15 | } 16 | -------------------------------------------------------------------------------- /src/main/java/com/uwetrottmann/tmdb2/entities/Images.java: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: Apache-2.0 2 | // Copyright 2025 Uwe Trottmann 3 | 4 | package com.uwetrottmann.tmdb2.entities; 5 | 6 | import java.util.List; 7 | 8 | public class Images { 9 | 10 | public Integer id; 11 | public List backdrops; 12 | public List posters; 13 | public List stills; 14 | 15 | } 16 | -------------------------------------------------------------------------------- /src/main/java/com/uwetrottmann/tmdb2/exceptions/TmdbDuplicateEntryException.java: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: Apache-2.0 2 | // Copyright 2025 Uwe Trottmann 3 | 4 | package com.uwetrottmann.tmdb2.exceptions; 5 | 6 | public class TmdbDuplicateEntryException extends TmdbException { 7 | public TmdbDuplicateEntryException(int code, String message) { 8 | super(code, message); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/main/java/com/uwetrottmann/tmdb2/entities/FavoriteMedia.java: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: Apache-2.0 2 | // Copyright 2025 Uwe Trottmann 3 | 4 | package com.uwetrottmann.tmdb2.entities; 5 | 6 | import com.uwetrottmann.tmdb2.enumerations.MediaType; 7 | 8 | public class FavoriteMedia { 9 | 10 | public MediaType media_type; 11 | public Integer media_id; 12 | public Boolean favorite; 13 | 14 | } 15 | -------------------------------------------------------------------------------- /src/main/java/com/uwetrottmann/tmdb2/exceptions/TmdbInvalidParametersException.java: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: Apache-2.0 2 | // Copyright 2025 Uwe Trottmann 3 | 4 | package com.uwetrottmann.tmdb2.exceptions; 5 | 6 | public class TmdbInvalidParametersException extends TmdbException { 7 | public TmdbInvalidParametersException(int code, String message) { 8 | super(code, message); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/main/java/com/uwetrottmann/tmdb2/entities/WatchlistMedia.java: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: Apache-2.0 2 | // Copyright 2025 Uwe Trottmann 3 | 4 | package com.uwetrottmann.tmdb2.entities; 5 | 6 | import com.uwetrottmann.tmdb2.enumerations.MediaType; 7 | 8 | public class WatchlistMedia { 9 | 10 | public MediaType media_type; 11 | public Integer media_id; 12 | public Boolean watchlist; 13 | 14 | } 15 | -------------------------------------------------------------------------------- /src/main/java/com/uwetrottmann/tmdb2/entities/Credits.java: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: Apache-2.0 2 | // Copyright 2025 Uwe Trottmann 3 | 4 | package com.uwetrottmann.tmdb2.entities; 5 | 6 | import java.util.List; 7 | 8 | public class Credits { 9 | 10 | public Integer id; 11 | 12 | public List cast; 13 | public List crew; 14 | public List guest_stars; 15 | 16 | } 17 | -------------------------------------------------------------------------------- /src/main/java/com/uwetrottmann/tmdb2/exceptions/TmdbAuthenticationFailedException.java: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: Apache-2.0 2 | // Copyright 2025 Uwe Trottmann 3 | 4 | package com.uwetrottmann.tmdb2.exceptions; 5 | 6 | public class TmdbAuthenticationFailedException extends TmdbException { 7 | public TmdbAuthenticationFailedException(int code, String message) { 8 | super(code, message); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/main/java/com/uwetrottmann/tmdb2/entities/ChangeResultsPage.java: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: Apache-2.0 2 | // Copyright 2025 Uwe Trottmann 3 | 4 | package com.uwetrottmann.tmdb2.entities; 5 | 6 | public class ChangeResultsPage extends BaseResultsPage { 7 | 8 | public static class Change { 9 | 10 | public Integer id; 11 | public Boolean adult; 12 | 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /src/main/java/com/uwetrottmann/tmdb2/entities/Network.java: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: Apache-2.0 2 | // Copyright 2025 Uwe Trottmann 3 | 4 | package com.uwetrottmann.tmdb2.entities; 5 | 6 | public class Network { 7 | public Integer id; 8 | public String name; 9 | 10 | public String homepage; 11 | public String headquarters; 12 | public String logo_path; 13 | public String origin_country; 14 | } 15 | -------------------------------------------------------------------------------- /src/main/java/com/uwetrottmann/tmdb2/entities/Media.java: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: Apache-2.0 2 | // Copyright 2025 Uwe Trottmann 3 | 4 | package com.uwetrottmann.tmdb2.entities; 5 | 6 | import com.uwetrottmann.tmdb2.enumerations.MediaType; 7 | 8 | public class Media { 9 | 10 | public BaseTvShow tvShow; 11 | public BaseMovie movie; 12 | public BasePerson person; 13 | 14 | public MediaType media_type; 15 | 16 | } 17 | -------------------------------------------------------------------------------- /src/main/java/com/uwetrottmann/tmdb2/entities/BaseTvSeason.java: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: Apache-2.0 2 | // Copyright 2025 Uwe Trottmann 3 | 4 | package com.uwetrottmann.tmdb2.entities; 5 | 6 | import java.util.Date; 7 | 8 | public class BaseTvSeason { 9 | 10 | public Date air_date; 11 | public Integer id; 12 | public String poster_path; 13 | public Integer season_number; 14 | public Integer episode_count; 15 | 16 | } 17 | -------------------------------------------------------------------------------- /src/main/java/com/uwetrottmann/tmdb2/entities/MovieExternalIds.java: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: Apache-2.0 2 | // Copyright 2025 Uwe Trottmann 3 | 4 | package com.uwetrottmann.tmdb2.entities; 5 | 6 | 7 | public class MovieExternalIds { 8 | 9 | public Integer id; 10 | public String imdb_id; 11 | public String facebook_id; 12 | public String instagram_id; 13 | public String twitter_id; 14 | public String wikidata_id; 15 | } 16 | -------------------------------------------------------------------------------- /src/main/java/com/uwetrottmann/tmdb2/entities/Trending.java: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: Apache-2.0 2 | // Copyright 2025 Uwe Trottmann 3 | 4 | package com.uwetrottmann.tmdb2.entities; 5 | 6 | import com.uwetrottmann.tmdb2.enumerations.MediaType; 7 | 8 | public class Trending { 9 | 10 | public BaseTvShow tvShow; 11 | public BaseMovie movie; 12 | public BasePerson person; 13 | 14 | public MediaType media_type; 15 | 16 | } 17 | -------------------------------------------------------------------------------- /src/main/java/com/uwetrottmann/tmdb2/entities/BaseResultsPage.java: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: Apache-2.0 2 | // Copyright 2025 Uwe Trottmann 3 | 4 | package com.uwetrottmann.tmdb2.entities; 5 | 6 | import java.util.List; 7 | 8 | public abstract class BaseResultsPage { 9 | 10 | public Integer id; 11 | public Integer page; 12 | public Integer total_pages; 13 | public Integer total_results; 14 | public List results; 15 | 16 | } 17 | -------------------------------------------------------------------------------- /src/main/java/com/uwetrottmann/tmdb2/entities/TvSeasonExternalIds.java: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: Apache-2.0 2 | // Copyright 2025 Uwe Trottmann 3 | 4 | package com.uwetrottmann.tmdb2.entities; 5 | 6 | 7 | public class TvSeasonExternalIds { 8 | 9 | public Integer id; 10 | public Integer tvdb_id; 11 | public String freebase_id; 12 | public String freebase_mid; 13 | public Integer tvrage_id; 14 | public String wikidata_id; 15 | } 16 | -------------------------------------------------------------------------------- /src/main/java/com/uwetrottmann/tmdb2/entities/Image.java: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: Apache-2.0 2 | // Copyright 2025 Uwe Trottmann 3 | 4 | package com.uwetrottmann.tmdb2.entities; 5 | 6 | public class Image { 7 | 8 | public String file_path; 9 | public Integer width; 10 | public Integer height; 11 | public String iso_639_1; 12 | public Double aspect_ratio; 13 | public Double vote_average; 14 | public Integer vote_count; 15 | 16 | } 17 | -------------------------------------------------------------------------------- /src/main/java/com/uwetrottmann/tmdb2/entities/BasePerson.java: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: Apache-2.0 2 | // Copyright 2025 Uwe Trottmann 3 | 4 | package com.uwetrottmann.tmdb2.entities; 5 | 6 | import java.util.List; 7 | 8 | public class BasePerson { 9 | 10 | public String profile_path; 11 | public Boolean adult; 12 | public Integer id; 13 | public String name; 14 | public Double popularity; 15 | public List known_for; 16 | 17 | } 18 | -------------------------------------------------------------------------------- /src/main/java/com/uwetrottmann/tmdb2/entities/Keywords.java: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: Apache-2.0 2 | // Copyright 2025 Uwe Trottmann 3 | 4 | package com.uwetrottmann.tmdb2.entities; 5 | 6 | import com.google.gson.annotations.SerializedName; 7 | 8 | import java.util.List; 9 | 10 | public class Keywords { 11 | 12 | public Integer id; 13 | 14 | @SerializedName(value = "keywords", alternate = {"results"}) 15 | public List keywords; 16 | 17 | } 18 | -------------------------------------------------------------------------------- /src/main/java/com/uwetrottmann/tmdb2/entities/Company.java: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: Apache-2.0 2 | // Copyright 2025 Uwe Trottmann 3 | 4 | package com.uwetrottmann.tmdb2.entities; 5 | 6 | public class Company extends BaseCompany { 7 | 8 | public String description; 9 | public String headquarters; 10 | public String homepage; 11 | public Company parent_company; 12 | public String origin_country; 13 | 14 | public MovieResultsPage movies; 15 | 16 | } 17 | -------------------------------------------------------------------------------- /src/main/java/com/uwetrottmann/tmdb2/entities/Review.java: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: Apache-2.0 2 | // Copyright 2025 Uwe Trottmann 3 | 4 | package com.uwetrottmann.tmdb2.entities; 5 | 6 | public class Review { 7 | 8 | public String id; 9 | public String author; 10 | public String content; 11 | public String iso_639_1; 12 | public Integer media_id; 13 | public String media_title; 14 | public String media_type; 15 | public String url; 16 | 17 | } 18 | -------------------------------------------------------------------------------- /src/main/java/com/uwetrottmann/tmdb2/enumerations/ReleaseType.java: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: Apache-2.0 2 | // Copyright 2025 Uwe Trottmann 3 | 4 | package com.uwetrottmann.tmdb2.enumerations; 5 | 6 | public enum ReleaseType { 7 | 8 | PREMIERE(1), 9 | THEATRICAL_LIMITED(2), 10 | THEATRICAL(3), 11 | DIGITAL(4), 12 | PHYSICAL(5), 13 | TV(6); 14 | 15 | public final int id; 16 | 17 | ReleaseType(int id) { 18 | this.id = id; 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /src/main/java/com/uwetrottmann/tmdb2/entities/TvEpisodeExternalIds.java: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: Apache-2.0 2 | // Copyright 2025 Uwe Trottmann 3 | 4 | package com.uwetrottmann.tmdb2.entities; 5 | 6 | public class TvEpisodeExternalIds { 7 | 8 | public Integer id; 9 | public String imdb_id; 10 | public Integer tvdb_id; 11 | public String freebase_id; 12 | public String freebase_mid; 13 | public Integer tvrage_id; 14 | public String wikidata_id; 15 | 16 | } 17 | -------------------------------------------------------------------------------- /src/main/java/com/uwetrottmann/tmdb2/entities/AlternativeTitles.java: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: Apache-2.0 2 | // Copyright 2025 Uwe Trottmann 3 | 4 | package com.uwetrottmann.tmdb2.entities; 5 | 6 | import com.google.gson.annotations.SerializedName; 7 | 8 | import java.util.List; 9 | 10 | 11 | public class AlternativeTitles { 12 | 13 | @SerializedName(value = "titles", alternate = {"results"}) 14 | public List titles; 15 | 16 | public Integer id; 17 | 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/com/uwetrottmann/tmdb2/enumerations/TimeWindow.java: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: Apache-2.0 2 | // Copyright 2025 Uwe Trottmann 3 | 4 | package com.uwetrottmann.tmdb2.enumerations; 5 | 6 | public enum TimeWindow { 7 | DAY("day"), 8 | WEEK("week"); 9 | 10 | private final String value; 11 | 12 | TimeWindow(String value) { 13 | this.value = value; 14 | } 15 | 16 | @Override 17 | public String toString() { 18 | return value; 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /src/main/java/com/uwetrottmann/tmdb2/entities/BaseList.java: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: Apache-2.0 2 | // Copyright 2025 Uwe Trottmann 3 | 4 | package com.uwetrottmann.tmdb2.entities; 5 | 6 | 7 | public class BaseList { 8 | 9 | public Integer id; 10 | public String description; 11 | public Integer favorite_count; 12 | public Integer item_count; 13 | public String iso_639_1; 14 | public String name; 15 | public String poster_path; 16 | public String list_type; 17 | 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/com/uwetrottmann/tmdb2/entities/FindResults.java: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: Apache-2.0 2 | // Copyright 2025 Uwe Trottmann 3 | 4 | package com.uwetrottmann.tmdb2.entities; 5 | 6 | import java.util.List; 7 | 8 | public class FindResults { 9 | 10 | public List movie_results; 11 | public List person_results; 12 | public List tv_results; 13 | public List tv_season_results; 14 | public List tv_episode_results; 15 | 16 | } 17 | -------------------------------------------------------------------------------- /src/main/java/com/uwetrottmann/tmdb2/services/TimezonesService.java: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: Apache-2.0 2 | // Copyright 2025 Uwe Trottmann 3 | 4 | package com.uwetrottmann.tmdb2.services; 5 | 6 | import com.uwetrottmann.tmdb2.entities.Timezones; 7 | import retrofit2.Call; 8 | import retrofit2.http.GET; 9 | 10 | public interface TimezonesService { 11 | 12 | /** 13 | * Get the list of supported timezones on TMDb. 14 | */ 15 | @GET("timezones/list") 16 | Call timezones(); 17 | } 18 | -------------------------------------------------------------------------------- /src/main/java/com/uwetrottmann/tmdb2/entities/TvCastCredit.java: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: Apache-2.0 2 | // Copyright 2025 Uwe Trottmann 3 | 4 | package com.uwetrottmann.tmdb2.entities; 5 | 6 | import java.util.List; 7 | 8 | public class TvCastCredit extends BaseTvCredit { 9 | 10 | public List roles; 11 | public Integer order; 12 | 13 | public static class Role { 14 | public String credit_id; 15 | public String character; 16 | public Integer episode_count; 17 | } 18 | 19 | } 20 | -------------------------------------------------------------------------------- /src/main/java/com/uwetrottmann/tmdb2/entities/TvCrewCredit.java: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: Apache-2.0 2 | // Copyright 2025 Uwe Trottmann 3 | 4 | package com.uwetrottmann.tmdb2.entities; 5 | 6 | import java.util.List; 7 | 8 | public class TvCrewCredit extends BaseTvCredit { 9 | 10 | public List jobs; 11 | public String department; 12 | 13 | public static class Job { 14 | public String credit_id; 15 | public String job; 16 | public Integer episode_count; 17 | } 18 | 19 | } 20 | 21 | -------------------------------------------------------------------------------- /src/main/resources/META-INF/proguard/tmdb-java.pro: -------------------------------------------------------------------------------- 1 | # Keep the entity class names if they are used. 2 | -keepnames class com.uwetrottmann.tmdb2.entities.** 3 | # Keep the entity members as they are if the class is kept. 4 | # Note: this prevents R8 from removing fields only used in constructors. 5 | -keepclassmembers class com.uwetrottmann.tmdb2.entities.** { 6 | ; 7 | (...); 8 | } 9 | # Keep all enum classes as is, above rules make no reasonable difference. 10 | -keep class com.uwetrottmann.tmdb2.enumerations.** { *; } 11 | -------------------------------------------------------------------------------- /src/main/java/com/uwetrottmann/tmdb2/entities/CreditMedia.java: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: Apache-2.0 2 | // Copyright 2025 Uwe Trottmann 3 | 4 | package com.uwetrottmann.tmdb2.entities; 5 | 6 | import java.util.List; 7 | 8 | public class CreditMedia { 9 | 10 | public Integer id; 11 | public String name; 12 | public String original_name; 13 | public String character; 14 | //Provides Not data at the moment. API Related bug. 15 | //public List episodes; 16 | public List seasons; 17 | 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/com/uwetrottmann/tmdb2/entities/PersonExternalIds.java: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: Apache-2.0 2 | // Copyright 2025 Uwe Trottmann 3 | 4 | package com.uwetrottmann.tmdb2.entities; 5 | 6 | public class PersonExternalIds { 7 | 8 | public Integer id; 9 | public String imdb_id; 10 | public String facebook_id; 11 | public String freebase_id; 12 | public String freebase_mid; 13 | public Integer tvrage_id; 14 | public String instagram_id; 15 | public String twitter_id; 16 | public String wikidata_id; 17 | } 18 | -------------------------------------------------------------------------------- /src/main/java/com/uwetrottmann/tmdb2/entities/BaseTvCredit.java: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: Apache-2.0 2 | // Copyright 2025 Uwe Trottmann 3 | 4 | package com.uwetrottmann.tmdb2.entities; 5 | 6 | public class BaseTvCredit { 7 | 8 | public Integer id; 9 | 10 | public Boolean adult; 11 | public Integer gender; 12 | public String known_for_department; 13 | public String name; 14 | public String original_name; 15 | public Double popularity; 16 | public String profile_path; 17 | public Integer total_episode_count; 18 | 19 | } 20 | -------------------------------------------------------------------------------- /src/main/java/com/uwetrottmann/tmdb2/entities/Certifications.java: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: Apache-2.0 2 | // Copyright 2025 Uwe Trottmann 3 | 4 | package com.uwetrottmann.tmdb2.entities; 5 | 6 | import java.util.HashMap; 7 | import java.util.List; 8 | 9 | public class Certifications { 10 | 11 | public static class Certification { 12 | 13 | public String certification; 14 | public String meaning; 15 | public Integer order; 16 | 17 | } 18 | 19 | public HashMap> certifications; 20 | 21 | } 22 | -------------------------------------------------------------------------------- /src/main/java/com/uwetrottmann/tmdb2/entities/TvSeason.java: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: Apache-2.0 2 | // Copyright 2025 Uwe Trottmann 3 | 4 | package com.uwetrottmann.tmdb2.entities; 5 | 6 | import java.util.List; 7 | 8 | public class TvSeason extends BaseTvSeason { 9 | 10 | public String _id; 11 | 12 | public List episodes; 13 | public String name; 14 | public String overview; 15 | 16 | public Credits credits; 17 | public Images images; 18 | public Videos videos; 19 | public TvSeasonExternalIds external_ids; 20 | 21 | } 22 | -------------------------------------------------------------------------------- /src/main/java/com/uwetrottmann/tmdb2/entities/TvEpisode.java: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: Apache-2.0 2 | // Copyright 2025 Uwe Trottmann 3 | 4 | package com.uwetrottmann.tmdb2.entities; 5 | 6 | import java.util.List; 7 | 8 | public class TvEpisode extends BaseTvEpisode { 9 | 10 | public List crew; 11 | 12 | public List guest_stars; 13 | 14 | 15 | public Images images; 16 | public TvEpisodeExternalIds external_ids; 17 | public Credits credits; 18 | public Videos videos; 19 | public Translations translations; 20 | 21 | } 22 | -------------------------------------------------------------------------------- /src/main/java/com/uwetrottmann/tmdb2/entities/TvExternalIds.java: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: Apache-2.0 2 | // Copyright 2025 Uwe Trottmann 3 | 4 | package com.uwetrottmann.tmdb2.entities; 5 | 6 | public class TvExternalIds { 7 | 8 | public Integer id; 9 | public String imdb_id; 10 | public Integer tvdb_id; 11 | public String facebook_id; 12 | public String freebase_id; 13 | public String freebase_mid; 14 | public String instagram_id; 15 | public Integer tvrage_id; 16 | public String twitter_id; 17 | public String wikidata_id; 18 | } 19 | -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | # Auto detect text files and perform LF normalization 2 | * text=auto 3 | 4 | # Custom for Visual Studio 5 | *.cs diff=csharp 6 | *.sln merge=union 7 | *.csproj merge=union 8 | *.vbproj merge=union 9 | *.fsproj merge=union 10 | *.dbproj merge=union 11 | 12 | # Standard to msysgit 13 | *.doc diff=astextplain 14 | *.DOC diff=astextplain 15 | *.docx diff=astextplain 16 | *.DOCX diff=astextplain 17 | *.dot diff=astextplain 18 | *.DOT diff=astextplain 19 | *.pdf diff=astextplain 20 | *.PDF diff=astextplain 21 | *.rtf diff=astextplain 22 | *.RTF diff=astextplain 23 | -------------------------------------------------------------------------------- /src/main/java/com/uwetrottmann/tmdb2/entities/Credit.java: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: Apache-2.0 2 | // Copyright 2025 Uwe Trottmann 3 | 4 | package com.uwetrottmann.tmdb2.entities; 5 | 6 | import com.uwetrottmann.tmdb2.enumerations.CreditType; 7 | import com.uwetrottmann.tmdb2.enumerations.MediaType; 8 | 9 | public class Credit { 10 | 11 | public CreditType credit_type; 12 | public String department; 13 | public String job; 14 | public CreditMedia media; 15 | public MediaType media_type; 16 | public String id; 17 | public BasePerson person; 18 | 19 | } 20 | -------------------------------------------------------------------------------- /src/main/java/com/uwetrottmann/tmdb2/exceptions/TmdbException.java: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: Apache-2.0 2 | // Copyright 2025 Uwe Trottmann 3 | 4 | package com.uwetrottmann.tmdb2.exceptions; 5 | 6 | import java.io.IOException; 7 | 8 | public class TmdbException extends IOException { 9 | private int code; 10 | 11 | public int getCode() { 12 | return code; 13 | } 14 | 15 | public TmdbException(String message) { 16 | super(message); 17 | } 18 | 19 | public TmdbException(int code, String message) { 20 | super(message); 21 | this.code = code; 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /src/main/java/com/uwetrottmann/tmdb2/services/ReviewsService.java: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: Apache-2.0 2 | // Copyright 2025 Uwe Trottmann 3 | 4 | package com.uwetrottmann.tmdb2.services; 5 | 6 | import com.uwetrottmann.tmdb2.entities.Review; 7 | import retrofit2.Call; 8 | import retrofit2.http.GET; 9 | import retrofit2.http.Path; 10 | 11 | public interface ReviewsService { 12 | 13 | /** 14 | * Get a review by a Review Id. 15 | * 16 | * @param reviewId A TMDb Review id. 17 | */ 18 | @GET("review/{review_id}") 19 | Call getDetails( 20 | @Path("review_id") String reviewId 21 | ); 22 | } 23 | -------------------------------------------------------------------------------- /src/main/java/com/uwetrottmann/tmdb2/entities/Account.java: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: Apache-2.0 2 | // Copyright 2025 Uwe Trottmann 3 | 4 | package com.uwetrottmann.tmdb2.entities; 5 | 6 | public class Account { 7 | 8 | public static class Avatar { 9 | 10 | public static class GRAvatar { 11 | 12 | public String hash; 13 | 14 | } 15 | 16 | public GRAvatar gravatar; 17 | 18 | } 19 | 20 | public Integer id; 21 | public String iso_639_1; 22 | public String iso_3166_1; 23 | public String name; 24 | public Boolean include_adult; 25 | public String username; 26 | public Avatar avatar; 27 | 28 | } 29 | -------------------------------------------------------------------------------- /src/main/java/com/uwetrottmann/tmdb2/enumerations/ExternalSource.java: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: Apache-2.0 2 | // Copyright 2025 Uwe Trottmann 3 | 4 | package com.uwetrottmann.tmdb2.enumerations; 5 | 6 | public enum ExternalSource { 7 | 8 | IMDB_ID("imdb_id"), 9 | FREEBASE_MID("freebase_mid"), 10 | FREEBASE_ID("freebase_id"), 11 | TVRAGE_ID("tvrage_id"), 12 | TVDB_ID("tvdb_id"), 13 | WIKIDATA_ID("wikidata_id"); 14 | 15 | private final String value; 16 | 17 | ExternalSource(String value) { 18 | this.value = value; 19 | } 20 | 21 | @Override 22 | public String toString() { 23 | return value; 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /src/main/java/com/uwetrottmann/tmdb2/services/CertificationsService.java: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: Apache-2.0 2 | // Copyright 2025 Uwe Trottmann 3 | 4 | package com.uwetrottmann.tmdb2.services; 5 | 6 | import com.uwetrottmann.tmdb2.entities.Certifications; 7 | import retrofit2.Call; 8 | import retrofit2.http.GET; 9 | 10 | 11 | public interface CertificationsService { 12 | /** 13 | * Get the Certifications for Movies. 14 | */ 15 | @GET("certification/movie/list") 16 | Call movie(); 17 | 18 | /** 19 | * Get the Certifications for TV Shows. 20 | */ 21 | @GET("certification/tv/list") 22 | Call tv(); 23 | } 24 | -------------------------------------------------------------------------------- /src/main/java/com/uwetrottmann/tmdb2/services/CreditsService.java: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: Apache-2.0 2 | // Copyright 2025 Uwe Trottmann 3 | 4 | package com.uwetrottmann.tmdb2.services; 5 | 6 | import com.uwetrottmann.tmdb2.entities.Credit; 7 | import retrofit2.Call; 8 | import retrofit2.http.GET; 9 | import retrofit2.http.Path; 10 | 11 | public interface CreditsService { 12 | /** 13 | * Get the basic company information for a specific company id. 14 | * 15 | * @param credit_id The Credit ID provided by a Movie/TV Show about an Actor or Crew Member. 16 | */ 17 | @GET("credit/{id}") 18 | Call credit( 19 | @Path("id") String credit_id 20 | ); 21 | } 22 | -------------------------------------------------------------------------------- /src/main/java/com/uwetrottmann/tmdb2/entities/Videos.java: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: Apache-2.0 2 | // Copyright 2025 Uwe Trottmann 3 | 4 | package com.uwetrottmann.tmdb2.entities; 5 | 6 | import com.uwetrottmann.tmdb2.enumerations.VideoType; 7 | 8 | import java.util.List; 9 | 10 | public class Videos { 11 | 12 | public static class Video { 13 | 14 | public String id; 15 | public String iso_639_1; 16 | public String iso_3166_1; 17 | public String key; 18 | public String name; 19 | public String site; 20 | public Integer size; 21 | public VideoType type; 22 | 23 | } 24 | 25 | public Integer id; 26 | public List