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:
- Create an Apps Script to fetch Top Movies and Popular Movies using the TMDb API.
- Use Glide Apps and convert the Google Sheet into an app.
Things you need:
- Register for an API Key here: https://developers.themoviedb.org/3
- 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.
Paste the following code into the Script Editor and Save. Make sure you update API_KEY parameter with the actual key from TMDb API.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
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.