in Tutorials

This tutorial teaches you fetching data from TMDb API into a Google Sheet and turn the sheet into beautiful and easy-to-use apps using Glide.

We will do 2 steps:

  1. Create an Apps Script to fetch Top Movies and Popular Movies using the TMDb API.
  2. Use Glide Apps and convert the Google Sheet into an app.
https://youtu.be/PBluaJwqd9E

Things you need:

  1. Register for an API Key here: https://developers.themoviedb.org/3
  2. An account on Glide. Register here: https://www.glideapps.com/

Google Sheets

Create a blank Google sheet and navigate to Tools -> Script Editor and paste the following code.

We have two functions i.e., getTopMovies(), getPopularMovies() and onOpen().

getTopMovies() – Fetch top movies from the API

getPopularMovies() – Fetch popular movies from the API

onOpen() – Create a custom menu to run REST API calls only when needed.

Structure for the Google Sheet

Paste the following code into the Script Editor and Save. Make sure you update API_KEY parameter with the actual key from TMDb API.

function getPopularMovies() {
  
  var response = UrlFetchApp.fetch("https://api.themoviedb.org/3/movie/popular?api_key=API_KEY&language=en-US&page=1");
  //Logger.log(response.getContentText());
  var values = [];
  var json = response.getContentText();
  var data = JSON.parse(json);
  var results = data["results"];

  results.forEach(function(item) {
    values.push([item["title"], item["overview"], "https://image.tmdb.org/t/p/w500/" + item["poster_path"], item["vote_average"], item["release_date"]]);
  });
  var spreadsheet = SpreadsheetApp.getActive();
  var sheet = spreadsheet.getSheetByName('Popular Movies');
  sheet.getRange(sheet.getLastRow()+1, 1, values.length, values[0].length).setValues(values);
}

function getTopMovies() {
  
  var response = UrlFetchApp.fetch("https://api.themoviedb.org/3/movie/top_rated?api_key=API_KEY&language=en-US&page=1");
  //Logger.log(response.getContentText());
  var values = [];
  var json = response.getContentText();
  var data = JSON.parse(json);
  var results = data["results"];

  results.forEach(function(item) {
    values.push([item["title"], item["overview"], "https://image.tmdb.org/t/p/w500/" + item["poster_path"], item["vote_average"], item["release_date"]]);
  });
  var spreadsheet = SpreadsheetApp.getActive();
  var sheet = spreadsheet.getSheetByName('Top Movies');
  sheet.getRange(sheet.getLastRow()+1, 1, values.length, values[0].length).setValues(values);
}

//menu items
function onOpen() {
  var ui = SpreadsheetApp.getUi();
  ui.createMenu('Movies DB Functions')
      .addItem('Get Top Movies','getTopMovies')
      .addItem('Get Popular Movies','getPopularMovies')
      .addToUi();
}

Comment below if you have any questions.

0