A free & open source IMDb front-end.
Find a file
zyachel 31218adac1
Merge pull request #19 from httpjamesm/main
Anonymous media proxy, local docker, private IP ratelimit and caching with redis
2022-11-13 12:11:01 +05:30
.github/workflows feat: major rewrite 2022-09-24 09:31:09 -04:00
public feat: major rewrite 2022-09-24 09:31:09 -04:00
src feat: make redis cache optional 2022-11-12 10:57:56 -05:00
.env.local.example chore: update env local example 2022-11-12 10:58:25 -05:00
.eslintrc.json feat: major rewrite 2022-09-24 09:31:09 -04:00
.gitignore feat: docker support for easy deployment 2022-10-31 17:28:27 -04:00
.prettierrc chore: add prettierrc file for future contributors 2022-10-30 19:18:20 -04:00
CHANGELOG.md chore(release): v2.0.0 [skip ci] 2022-10-31 14:53:29 +00:00
docker-compose.example.yml feat: docker support for easy deployment 2022-10-31 17:28:27 -04:00
Dockerfile feat: docker support for easy deployment 2022-10-31 17:28:27 -04:00
LICENSE initial commit 2022-03-19 17:22:07 +05:30
next-env.d.ts feat: major rewrite 2022-09-24 09:31:09 -04:00
next.config.mjs feat: major rewrite 2022-09-24 09:31:09 -04:00
package.json Merge remote-tracking branch 'upstream/main' 2022-10-31 18:18:01 -04:00
pnpm-lock.yaml feat: major rewrite 2022-09-24 09:31:09 -04:00
README.md docs: remove unnecessary big header 2022-10-31 18:26:15 -04:00
tsconfig.json feat: major rewrite 2022-09-24 09:31:09 -04:00

libremdb

A free & open source IMDb front-end.

Inspired by projects like teddit, nitter and many others.


Some Features

  • No ads or tracking
    Browse any movie info without being tracked or bombarded by annoying ads.
  • Modern interface
    Modern interface with curated colors supporting both dark and light themes.
  • Responsive design
    Be it your small mobile or big computer screen, it's fully responsive.
  • Lightweight
    Up movie page
    (tested on Firefox v104; without scroll; simulated regular 4g)
    Network tab stats libremdb IMDb
    no. of requests 22 180
    data transfered(gzipped) 468KB 1.88MB
    load event fired in 6.22s 10.01s

Instances

Clearnet

Instance URL Region Notes
1. Clearnet
libremdb.iket.me Canada Operated by me
libremdb.pussthecat.org Germany Operated by PussTheCat.org
libremdbeu.herokuapp.com Europe Operated by toyboatcash
lmdb.tokhmi.xyz U.S. Operated by Tokhmi
libremdb.esmailelbob.xyz Canada Operated by Esmail EL BoB
ld.vern.cc Canada Operated by ~vern
2. Onion
libremdb.esmail5pdn24shtvieloeedh7ehz3nrwcdivnfhfcedl7gf4kwddhkqd.onion Canada Operated by Esmail EL BoB
ld.vernccvbvyi5qhfzyqengccj7lkove6bjot2xhh5kajhwvidqafczrad.onion Canada Operated by ~vern
3. I2P
vernz3ubrntql4wrgyrssd6u3qzi36zrhz2agbo6vibzbs5olk2q.b32.i2p Canada Operated by ~vern

Questions you might have

  • How do I use it?
    Replace imdb.com in any IMDb URL with any of the instances. For example: 'imdb.com/title/tt1049413' to 'libremdb.iket.me/title/tt1049413'.
    To avoid changing the URLs manually, you can use extensions.

  • Why is it so slow?
    Whenever you request info about a movie/show on libremdb, 4 trips are made(2 between your browser and libremdb's server, and 2 between libremdb's server and IMDb's server) instead of the usual 2 trips when you visit a website. For this reason there's a noticable delay. This is a bit of inconvenience you'll have to face should you wish to use this website.

  • It doesn't have all routes.
    I'll implement more with time :)

  • Is content served from third-parties, like Amazon?
    Nope, libremdb proxies all image and video requests through the instance to avoid exposing your IP address, browser information and other personally identifiable metadata (Contributor).

  • Will Amazon track me then?
    Also nope. All Amazon will see is the libremdb instance making the request, not you. IP address, browser information and other personally identifiable metadata is hidden from Amazon.

  • Why not just use IMDb?
    Refer to the features section above.

  • Why didn't you use other databases like TMDB or OMDb?
    IMDb simply has superior dataset compared to all other alternatives. With that being said, I'd encourage you to check out those alternatives too.


Privacy

  • Information collected:
    None.

  • Information stored in your browser:
    A key named 'theme' is stored in Local Storage provided by your browser, if you ever override the default theme. To remove it, go to site data settings, and clear the data for this website. To permamently disable libremdb from storing your theme prefrences, either turn off JavaScript or disable access to Local Storage for libremdb.

  • Information collected by other services:
    libremdb connects to 'media-amazon.com' and 'media-imdb.com' for fetching images and videos. So, Amazon might log your IP address, and other information(such as http headers) sent by your browser.

    None. libremdb proxies images anonymously through the instance for maximum privacy (Contributor).


To-Do

  • add advanced search route

  • add did you know and reviews on movie info page

  • add a way to see trailer and other videos

  • implement movie specific routes like:

    • reviews(including critic reviews)
    • video & image gallery
    • sections under 'did you know'
    • release info
    • parental guide
  • implement other routes like:

    • lists
    • moviemeter
    • person info(includes directors and actors)
    • company info
    • user info
  • use redis, or any other caching strategy

  • implement a better installation method

  • serve images and videos from libremdb itself


Installation

As libremdb is made with Next.js, you can deploy it anywhere where Next.js is supported. Below are a few other methods:

Manual

  1. Install Node.js and Git.
    for Node.js, visit their website.
    for Git, run sudo apt install git if you're on a Debian-based distro. Else visit their website.

  2. Install redis You can install redis from here.

  3. Clone and set up the repo.

    git clone https://github.com/zyachel/libremdb.git # replace github.com with codeberg.org if you wish so.
    cd libremdb
    # optional configuration
    cp .env.local.example .env.local
    # replace 'pnpm' with yarn or npm if you use those
    pnpm install
    pnpm build
    pnpm start
    

libremdb will start running at http://localhost:3000.
To change port, modify the last command like this: pnpm start -- -p <port-number>.

You can build the docker image using the provided Dockerfile and set it up using the example docker-compose file.

Change the docker-compose file to your liking and run docker-compose up -d to start the container, that's all!

Docker (Built)

There's a docker image made by @TheFrenchGhosty for PussTheCat.org's instance. You can use that in case you wish to use docker.

Miscellaneous

Automatic redirection

  • Redirector
    config:

    Description: redirect IMDb to libremdb
    Example URL: https://www.imdb.com/title/tt0258463/?ref_=tt_sims_tt_t_4
    Include pattern: https?:\/\/(www\.)?imdb\.com\/([^\?]*)
    Redirect to: https://libremdb.iket.me/$2
    Pattern type: Regular Expression
    
  • LibRedirect

Similar projects

  • Teddit
    Teddit is an alternative Reddit front-end focused on privacy.
  • Nitter
    Nitter is a free and open source alternative Twitter front-end focused on privacy.
  • Bibliogram
    Bibliogram is an alternative front-end for Instagram.
  • Invidious
    Invidious is an alternative front-end to YouTube.
  • Libreddit
    Libreddit is an alternative private front-end to Reddit.
  • Scribe
    Scribe is an alternative Medium frontend.
  • full list →

Contact

I'm availabe on [matrix] and email in case you wish to contact me personally.


License

Licensed under GNU AGPLv3.
See License for full legalese.