In this article, we are going to have a look at how can we get a list of files (or folders) stored in our Google Drive cloud storage using Google Drive API in Python. It is a REST API that allows you to leverage Google Drive storage from within your app or program.
So, let’s create a simple Python script that communicates with Google Drive API.
Requirements:
- Python (2.6 or higher)
- A Google account with Google Drive enabled
- Google API client and Google OAuth libraries
Installation:
Install the required libraries by running this command:
pip install --upgrade google-api-python-client google-auth-httplib2 google-auth-oauthlib
Now, follow these steps to set up your Google account to work with Google Drive API.

Create a new project

Go to APIs and Services
- Enable Google Drive API for this project.

Enable API

Enable Google Drive API
- Go to the OAuth Consent screen and configure the Consent screen for your project.

Go to OAuth Consent screen

Select External and click on Create
- Enter the name of your application. It will be shown on the consent screen.

Enter the application name and select email address

Go to Credentials
- Click on Create credentials, and go to OAuth Client ID.

Click on Create Credentials and select OAuth Client ID
- Enter your application’s name, and click Create.

Enter the Application Name and click on Create
- Your Client ID will be created. Download it to your computer and save it as credentials.json

Download json file
NOTE: Do not share your CLIENT ID or CLIENT SECRETS with anyone.
Now, we are done with the setup and installation. So, let’s write the python script:
Python3
import pickle
import os.path
from googleapiclient.discovery import build
from google_auth_oauthlib.flow import InstalledAppFlow
from google.auth.transport.requests import Request
def getFileList(N):
creds = None
if os.path.exists( 'token.pickle' ):
with open ( 'token.pickle' , 'rb' ) as token:
creds = pickle.load(token)
if not creds or not creds.valid:
if creds and creds.expired and creds.refresh_token:
creds.refresh(Request())
else :
flow = InstalledAppFlow.from_client_secrets_file(
'credentials.json' , SCOPES)
creds = flow.run_local_server(port = 0 )
with open ( 'token.pickle' , 'wb' ) as token:
pickle.dump(creds, token)
service = build( 'drive' , 'v3' , credentials = creds)
resource = service.files()
result = resource. list (pageSize = N, fields = "files(id, name)" ).execute()
return result
result_dict = getFileList( 5 )
file_list = result_dict.get( 'files' )
for file in file_list:
print ( file [ 'name' ])
|
Now, run the script:
python3 script.py
This will attempt to open a new window in your default browser. If this fails, copy the URL from the console and manually open it in your browser.
Now, Log in to your Google account if you aren’t already logged in. If there are multiple accounts, you will be asked to choose one of them. Then, click on the Allow button.

After the authentication has been completed, your browser will display a message saying The authentication flow has been completed. You may close this window.
Once the authentication has been completed, this will print the names of first N files (or folders) in your Google Drive storage.
Note: The file credentials.json should be in the same directory as the Python script. If not so, you have to specify the full path to the file in the program.
Whether you're preparing for your first job interview or aiming to upskill in this ever-evolving tech landscape,
GeeksforGeeks Courses are your key to success. We provide top-quality content at affordable prices, all geared towards accelerating your growth in a time-bound manner. Join the millions we've already empowered, and we're here to do the same for you. Don't miss out -
check it out now!
Last Updated :
01 Oct, 2020
Like Article
Save Article