{"id":18925248,"url":"https://github.com/newca12/tmdb-async-client","last_synced_at":"2025-10-03T15:50:39.628Z","repository":{"id":12893610,"uuid":"15570493","full_name":"newca12/TMDb-async-client","owner":"newca12","description":"Scala async wrapper for TMDb (The Movie Database) API","archived":false,"fork":false,"pushed_at":"2023-03-30T12:29:24.000Z","size":154,"stargazers_count":3,"open_issues_count":0,"forks_count":3,"subscribers_count":3,"default_branch":"without-X-RateLimit","last_synced_at":"2025-03-28T21:35:22.179Z","etag":null,"topics":["api-client","api-rest","asynchronous","movie-database","scala","tmdb"],"latest_commit_sha":null,"homepage":"","language":"Scala","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/newca12.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2014-01-01T21:37:40.000Z","updated_at":"2023-03-30T11:58:58.000Z","dependencies_parsed_at":"2022-09-17T05:52:37.826Z","dependency_job_id":"933cffc4-add9-4467-b3c0-c44733342884","html_url":"https://github.com/newca12/TMDb-async-client","commit_stats":{"total_commits":58,"total_committers":2,"mean_commits":29.0,"dds":"0.22413793103448276","last_synced_commit":"a6a20ae1bb4d7ad55c54e44bbb78e7851b4c3796"},"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/newca12%2FTMDb-async-client","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/newca12%2FTMDb-async-client/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/newca12%2FTMDb-async-client/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/newca12%2FTMDb-async-client/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/newca12","download_url":"https://codeload.github.com/newca12/TMDb-async-client/tar.gz/refs/heads/without-X-RateLimit","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249080227,"owners_count":21209491,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["api-client","api-rest","asynchronous","movie-database","scala","tmdb"],"created_at":"2024-11-08T11:10:21.052Z","updated_at":"2025-10-03T15:50:34.609Z","avatar_url":"https://github.com/newca12.png","language":"Scala","funding_links":[],"categories":[],"sub_categories":[],"readme":"# TMDb-async-client\n[![Actions Status](https://github.com/newca12/TMDb-async-client/workflows/Scala%20CI/badge.svg?branch=without-X-RateLimit)](https://github.com/newca12/TMDb-async-client/actions)\n[![codecov.io](https://img.shields.io/codecov/c/github/newca12/TMDb-async-client.svg)](https://codecov.io/github/newca12/TMDb-async-client?branch=master)\n[![Maven Central](https://img.shields.io/maven-central/v/org.edla/tmdb-async-client_2.13.svg)](https://maven-badges.herokuapp.com/maven-central/org.edla/tmdb-async-client_2.13)\n\n### About ###\nTMDb-async-client is a native Scala SDK that provides asynchronous access to [The Movie Database][1] (TMDb) API.  \nIt is built heavily on [akka-http][2] for async non-blocking HTTP I/O and [spray-json][3] for parsing JSON responses into Scala case classes.  \n[akka-stream][4] is used to allow limitation of client request frequency and number of parallel requests in respect of TMDb policies.\n\nTMDb-async-client is an EDLA project.\n\nThe purpose of [edla.org](http://www.edla.org) is to promote the state of the art in various domains.\n\n### API Key ###\nYou will need an API key to The Movie Database to access the API.  To obtain a key, follow these steps:\n\n1. Register for and verify an [account](https://www.themoviedb.org/account/signup).\n2. [Log](https://www.themoviedb.org/login) into your account\n3. Select the API section on left side of your account page.\n4. Click on the link to generate a new API key and follow the instructions.\n\n### Usage ###\n\nSee [Usage.scala](https://github.com/newca12/TMDb-async-client/blob/master/src/main/scala/org/edla/tmdb/client/Usage.scala) for a runnable example.\n\nEach function returns a `Future` of the response from the TMDb API, parsed into a convenient case class.\n\n``` scala\n  val apiKey = \"REPLACE_THIS_WITH_YOUR_OWN_API_KEY\"\n\n  val tmdbClient = TmdbClient(apiKey)\n\n  val movie = tmdbClient.getMovie(54181)\n\n  val movies = tmdbClient.searchMovie(\"shark\")\n\n  tmdbClient.downloadPoster(movie, Paths.get(\"/tmp/poster.jpg\"))\n\n  tmdbClient.shutdown\n```\n\n### Developers ###\n\nAPI Key need to be available as an environment variable named apiKey if you want to run sbt test\n\n### Related Projects ###\n\n[JavaFX client for TMDb (The Movie Database) ](https://github.com/newca12/TMDb-shelf)\n\n### License ###\n© 2014-2021 Olivier ROLAND. Distributed under the GPLv3 License.\n\n[1]: http://www.themoviedb.org/\n[2]: http://doc.akka.io/docs/akka-http/current/scala/http/index.html\n[3]: http://doc.akka.io/docs/akka-http/current/scala/http/common/json-support.html\n[4]: http://doc.akka.io/docs/akka/2.4/scala/stream/stream-cookbook.html#Globally_limiting_the_rate_of_a_set_of_streams\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnewca12%2Ftmdb-async-client","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnewca12%2Ftmdb-async-client","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnewca12%2Ftmdb-async-client/lists"}