IMDb-API

A cross-platform Go microservice to scrape the IMDb website.
Warning
Keep in mind this app does not have rate-limiting or authentication features to protect itself against spams.
The end-users should not have direct access to its interface unless you understand what you're doing.
Features
- Proxy support
- Swagger documentation
- Slug generator
- In-memory caching
- CLI tool
- Docker Hub image
Installation
You can always download the latest binary version from the releases page.
If you're going to build the project on your own, here are the pre-requirements:
Once you have installed and configured them (if necessary), execute the following commands:
git clone https://github.com/Scrip7/imdb-api.git
cd imdb-api
cp .env.example .env
go run main.go
Coverage
We have listed the IMDb website routes that can potentially use to collect data. Because this is a reverse-engineered project, things might break unexpectedly.
Therefore, we keep this list updated along with the new features we introduce or when we encounter new bugs to visualize our extensive coverage.
Feel free to come back and check it in the future!
β
Done.
π§ Under development.
π The route is known, but we haven't thoroughly thought about how to implement it yet!
π± It broke! (IMDb changed its response structure, it needs minor changes or re-implementation)
β Failed to implement.
URL (prefix: imdb.com ) |
Scope |
Page Title |
Module |
Status |
Tests |
/title/:id |
Title |
Index |
index |
β
|
β
|
/title/:id/mediaindex |
Title |
Photo Gallery |
photos |
β
|
β
|
/title/:id/videogallery |
Title |
Video Gallery |
- |
π |
- |
/title/:id/news |
Title |
News |
- |
π |
- |
/title/:id/fullcredits |
Title |
Full Cast & Crew |
- |
π |
- |
/title/:id/releaseinfo |
Title |
Release Info (Dates) |
- |
π |
- |
/title/:id/externalsites |
Title |
External Sites |
- |
π |
- |
/title/:id/companycredits |
Title |
Company Credits |
- |
π |
- |
/title/:id/locations |
Title |
Filming & Production |
- |
π |
- |
/title/:id/technical |
Title |
Technical Specifications |
- |
π |
- |
/title/:id/taglines |
Title |
Taglines |
taglines |
β
|
β
|
/title/:id/plotsummary |
Title |
Plot Summary |
- |
π |
- |
/title/:id/keywords |
Title |
Plot Keywords |
keywords |
β
|
β
|
/title/:id/parentalguide |
Title |
Parents Guide |
- |
π |
- |
/title/:id/trivia |
Title |
Trivia |
- |
π |
- |
/title/:id/trgoofsivia |
Title |
Goofs |
- |
π |
- |
/title/:id/crazycredits |
Title |
Crazy Credits |
crazycredits |
β
|
β
|
/title/:id/quotes |
Title |
Quotes |
- |
π |
- |
/title/:id/alternateversions |
Title |
Alternate Versions |
- |
π |
- |
/title/:id/movieconnections |
Title |
Connections |
- |
π |
- |
/title/:id/soundtrack |
Title |
Soundtracks |
- |
π |
- |
/title/:id/awards |
Title |
Awards |
- |
π |
- |
/title/:id/faq |
Title |
FAQ |
- |
π |
- |
/title/:id/reviews |
Title |
User Reviews |
- |
π |
- |
/title/:id/ratings |
Title |
User Ratings |
- |
π |
- |
/title/:id/externalreviews |
Title |
External Reviews |
- |
π |
- |
/title/:id/episodes |
Title |
Episode List |
- |
π |
- |
/title/:id/tvschedule |
Title |
Schedule |
- |
π |
- |
/search/title |
Search |
Title |
- |
π |
- |
/search/name |
Search |
Name |
- |
π |
- |
/search/common |
Search |
Collaborations |
- |
π |
- |
/chart/boxoffice |
Chart |
Box Office |
boxoffice |
β
|
β
|
/chart/moviemeter |
Chart |
Most Popular Movies |
moviemeter |
β
|
β
|
/chart/top |
Chart |
Top 250 Movies |
common |
β
|
β
|
/chart/toptv |
Chart |
Top Rated TV Shows |
common |
β
|
β
|
/chart/top-english-movies |
Chart |
Top Rated English Movies |
common |
β
|
β
|
/chart/bottom |
Chart |
Lowest Rated Movies |
common |
β
|
β
|
/news/top |
News |
Top |
- |
π |
- |
/news/movie |
News |
Movie |
- |
π |
- |
/news/tv |
News |
TV |
- |
π |
- |
/news/celebrity |
News |
Celebrity |
- |
π |
- |
/news/indie |
News |
Indie |
- |
π |
- |
/india/upcoming |
Indian |
Most Anticipated New Movies/Shows |
- |
π |
- |
/india/top-rated-indian-movies |
Indian |
Top Rated Movies |
- |
π |
- |
/india/top-rated-malayalam-movies |
Indian |
Top Rated Malayalam Movies |
- |
π |
- |
/india/top-rated-tamil-movies |
Indian |
Top Rated Tamil Movies |
- |
π |
- |
/india/top-rated-telugu-movies |
Indian |
Top Rated Telugu Movies |
- |
π |
- |
/india/tamil |
Indian |
Trending Tamil Movies |
- |
π |
- |
/india/telugu |
Indian |
Trending Telugu Movies |
- |
π |
- |
/event/all |
Event |
All Events Alphabetically |
- |
π |
- |
/calendar |
- |
Upcoming Releases |
- |
π |
- |
Is a route missing? Feel free to open a new issue to let us know!
Note Please check that the issue has not already been reported to prevent duplication.
Docker usage
Placeholder.
Motivation
My teacher signed me on a project when I was a junior programmer.
I had to make a Social platform bot (like Telegram or Discord bots) where users could search for Movies and TV Series, look up their detail, create playlists, and share them with others.
After smashing my head onto the keyboard for almost two weeks and a half, I finally found a free IMDb API, which stopped working after a while.
Back in the day, I didn't know how to integrate my application to the IMDb website properly, so sadly, I had to abandon the project.
But now, when I look back at it after many years, I can imagine how hard it could be if someone tries to develop an application sightly or even heavily dependent on the IMDb website.
There are so many reverse-engineered, untrustworthy platforms out there that would take your money in exchange for providing an unstable API.
So I thought of developing a microservice that developers could use in the software they're trying to create.
I didn't profoundly plan how I would create such an application.
But because I was motivated, I created its repository and will slowly work on building small chunks of it, starting from the documentation and overall expectations.
Side note:
I came from having six years of TypeScript experience to Golang, and this project is one of my early projects using this language.
I chose it because it is more performant and efficient and can compile the packages and their dependencies into a single executable binary.
I'm not confident about my coding approaches, maybe I'm stuck with JS strategies in my head, but I'm excited about how it will end up.
FAQ
Can I contribute to make IMDb-API better?
Please do! We are looking for any kind of contribution to improve IMDb-API's core functionality and documentation. When in doubt, make a PR!
Disclaimer
The "IMDb-API" repository is not affiliated, authorized, maintained, or endorsed by the IMDb or any of its affiliates or subsidiaries (including Amazon).
This unofficial independent project is published as it is.
Therefore, use it at your own risk and respect the copyrights of their content.
For more information, please refer to IMDb's Conditions of data usage.
License
See the LICENSE
file for more information.