How to: build an automated list of movies to watch in Notion

Creating a movie Notion database that automatically refresh with IMDB data only using no-code tools

Alexandre Dubois
5 min readAug 20, 2022

Every one create list(s) of movies to watch. It could take many formats such as iphone notes or a list writen on a piece of paper. Some people even send themselves recap emails with all movies they would like to watch.

Notion is the perfect alternative to centralize movies-you-want-to-watch information. By design Notion can easily handle databases thus adding a new movie idea or adding the IMDB rate of that movie is pretty straigthforward in Notion.

However the main challenge of having a movie database in Notion does not lay down in the database creation itself but more in the maintaining of this database. Who wants to take time to input manual movie information (e.g Directors names, actors names, release year, and so on) in a Notion database ? Simply NO ONE.

As a lazy but cinephile person I found a way to maintain this list of movies to watch in Notion. The only action remaining after that is to input the movie name in a Notion database and, POOF all movie information will be updated with IMDB information. Here’s how to do it.

Caption of Notion database of a list of movies to be watched
Caption of a list of movies to watch in Notion

1. Create a Notion database

First thing first, you need to create a Notion database for your movie. At this stage you need to decide what would be the information that make sense to be present for each movie.

In my case, I have defined the following attributes for a movie: movie name, director, actors, IMDB Rate, status (Did I already watched or not this movie ), watch date and year of release. Of course you can add more information.

2. Create an integration in Notion for your database

By default Notion pages or databases cannot be updated by API calls; so you you need to explicitely tell Notion that this database could be update by an API.

  1. Go to Notion left panel go to “Settings and members”.
  2. Go to “Integrations”.
  3. Then go to “Create your own integrations”. A new page will open.
  4. Click to “New integration” button and input all information required and submit.
  5. Click on the new integration and copy paste your “Internal Integration Token”. This Token will be required later to interact with the Notion API
  6. Go back to your database page and click on the “Share” button on the top right of the Notion page. In the search bar select the new integration you’ve just created.

Thanks to all this steps your database can be accessed with API only for people knowing the “Internal Integration Token”.

3. Create an IMDB API account

IMDB provide a freemium API to access its data. The good news is that the free plan include 100 calls per day — which for our use case is largely enough.

  1. Create on account on https://imdb-api.com/
  2. Then go to tab “API” to get back your API key
  3. We are going to use 2 APIs to get the information we need. The first call will retrieve the movie ID from the SearchMovie API such as: https://imdb-api.com/en/API/SearchMovie/YOUR_API_KEY/MOVIE_NAME.
  4. And from the key returned by the previous API call we can get from another API call all Movie information from the Title API such as: https://imdb-api.com/en/API/Title/YOUR_API_KEY/MOVIE_ID

4. Set up the workflow in Make

The steps of this workflow will be:

  1. Monitor a new entry in the Notion database
  2. Get the movie name and call the SearchMovie API from IMDB
  3. Get the movie ID and call the Title API from IMDB
  4. Update Notion database with all information from IMDB
Caption of the workflow designed in Make
Workflow designed in Make

Few remarks from the previous process:

  • Notion components built-up in Make is great to watch a Notion database (this is where the Notion token is required).
  • I used two variables to store Movie Name and Movie ID; it is not mandatory but in my opinion it is a cleaner way of setting up a workflow in Make.
  • I don’t use Notion module to update back the movie page in Notion because it has some limitations. For example I was not able to update the cover of the page with the built-up module.
  • SearchMovie API could provide several movies for the same title. My assumption was to take the first one. After several random tries it appears that the first movie is always the more accurate one regarding the movie name inputted.
  • This workflow is launched every 15 minutes.

Setting up the workflow is pretty straightforward. The only thing that need to be detailed is the last module “Update Movie Database in Notion”.

  • The method of the API is PATCH.
  • Hearders should have the 2 following parameters : Notion-Version=2022–06–28, Authorization = YOUR_SECRET_ID_FROM_NOTION.
  • Body type = Raw.
  • Content Type = JSON(application/json).
  • Request content is tricky. This is where you are going to tell Notion what you want to update in the page like the fields, covers, and so on. If you want to understand how it works I suggest you read Notion API document. Below is the request content I used:
{
"properties":{
"IMDB rate":{
"number":{{8.data.imDbRating}}}
,"Year":{
"rich_text":[{
"type":"text"
,"text":{
"content":"{{8.data.year}}"}}]}
,"Director":{
"multi_select":[{"name":"{{get(split(8.data.directors; ","); 1)}}"}]}
,"Actors":{
"multi_select":[
{"name":"{{get(split(8.data.stars; ","); 1)}}"}
,{"name":"{{get(split(8.data.stars; ","); 2)}}"}
,{"name":"{{get(split(8.data.stars; ","); 3)}}"}]}}
,"cover":{"external":{"url":"{{8.data.image}}"}}}
How to set up the Notion API call to update the movie page in Notion

Conclusion

Et voilà! You’re all set. From now on you have the ultimate automated movie database. 15 minutes after adding a movie to this database the page will be magically fulfilled with all IMDB information.

It is simple and you can do it without any fancy line of code.

If you liked this no code automation you may also like How to: Monitor my weekly completed tasks from Notion over time

--

--

Alexandre Dubois

I share my journey about improving productivity, mastering Notion, understanding cryptos and building ideas and business.