Repository files navigation

google drive python


Library and cli to manage and interact with your Google Drive, sheets and docs

Table of Contents

  1. Introduction
  2. Obtaining credentials for Google APIs
  3. Installing google-drive CLI
  4. CLI documentation
  5. Library documentation
  6. Contributing
  7. License

Introduction

Build StatusPythonPRs WelcomeGitHub license

Obtaining credentials for Google APIs

Google API credentials

Create a Google project ⚡

Just access to Google APIs.

Create credentials for your project 🔑

Once you have created your project, you can create your project's credentials.

To manage project's credentials you have the section api/credentials within Google APIs. But if this is your first credentials creation you better follow these steps:

  • First, you have to create the consent for your project
  • Once the consent is already created and you have a name for you google app you can create your credentials:
    • Go to + Create Credentials and select OAuth ID client
    • Or access to api/credentials/oauthclient
    • The OAuth client type is other and choose the name you prefer 😃

You have already created your credentials! 🎆

Just place them in a credentials.json file in the root of this repository. ❗❗

Enable Google APIs 📚

You can see where you have to access for each google api in the doc google apis usage

Generating your token.pickle 🔓

To authenticate us we have to send a token.pickle to Google APIs, this token.pickle is generated using the file credentials.json.

To generate this we have the make target google-auth, so, you just have to tun

  • make google-auth

⚠️ Credentials files to authenticate yourself are included in our .gitignore

👼 So, you don't have to worry about that 😃

Installing google-drive CLI

Using pipx

pipx install git+https://github.com/eduardogr/google-drive-python.git

Using pip

pip install google-drive

With specific version

Look for available versions with:

pip install google-drive==

And select one and run:

pip install google-drive==<VERSION>

CLI documentation

google-drive --help

Shows the help message

Usage

> google-drive --help
Usage: google-drive [OPTIONS] COMMAND [ARGS]...
Options:
--help Show this message and exit.
Commands:
get Get file metadata
get-mimetypes Get Mimetypes availables in this API implementation
login Perform a login with google oauth
ls List directory contents
mkdir Make directory

google-drive get-mimetypes

Get Mimetypes availables in this API implementation

Usage

> google-drive get-mimetypes credentials.json
- application/vnd.google-apps.folder
- application/vnd.google-apps.document
- application/vnd.google-apps.spreadsheet
- application/pdf

google-drive login

Perform a login with google oauth.

Usage

> google-drive login <path-to-credentials-file.json>

google-drive ls

List directory contents

Usage

> google-drive ls <directory>/<maybe-some-subdir> <path-to-credentials-file.json>
- (<GOOGLE_DOC_ID_1>, <FILENAME_1>, <FILE_MIMETYPE_1>)
- (<GOOGLE_DOC_ID_2>, <FILENAME_2>, <FILE_MIMETYPE_2>)
- (<GOOGLE_DOC_ID_3>, <FILENAME_3>, <FILE_MIMETYPE_3>)
...
- (<GOOGLE_DOC_ID_N>, <FILENAME_N>, <FILE_MIMETYPE_N>)

google-drive get

Get file metadata

Usage

> google-drive get <GOOGLE_DOC_ID> <path-to-credentials-file.json>
File Metadata:
==
id: <GOOGLE_DOC_ID>
name: <FILENAME>
parents: ['<GOOGLE_DOC__PARENT_ID>']
mime_type: <FILE_MIMETYPE>
export_links:
- application/rtf: https://docs.google.com/feeds/download/documents/export/Export?id=<GOOGLE_DOC_ID>&exportFormat=rtf
- application/vnd.oasis.opendocument.text: https://docs.google.com/feeds/download/documents/export/Export?id=<GOOGLE_DOC_ID>&exportFormat=odt
- text/html: https://docs.google.com/feeds/download/documents/export/Export?id=<GOOGLE_DOC_ID>&exportFormat=html
- application/pdf: https://docs.google.com/feeds/download/documents/export/Export?id=<GOOGLE_DOC_ID>&exportFormat=pdf
- application/epub+zip: https://docs.google.com/feeds/download/documents/export/Export?id=<GOOGLE_DOC_ID>&exportFormat=epub
- application/zip: https://docs.google.com/feeds/download/documents/export/Export?id=<GOOGLE_DOC_ID>&exportFormat=zip
- application/vnd.openxmlformats-officedocument.wordprocessingml.document: https://docs.google.com/feeds/download/documents/export/Export?id=<GOOGLE_DOC_ID>&exportFormat=docx
- text/plain: https://docs.google.com/feeds/download/documents/export/Export?id=<GOOGLE_DOC_ID>&exportFormat=txt

google-drive mkdir

Make directory

Usage

> google-drive mkdir <DIR_NAME> <path-to-credentials-file.json>
(<GOOGLE_DOC_ID>, <DIR_NAME>, application/vnd.google-apps.folder)

google-drive touch

Create empty file of specified mimetype

Usage

> google-drive touch <EXISTING_DIR>/<FILENAME> <SOME_MYMETYPE> <path-to-credentials-file.json>
(<GOOGLE_DOC_ID>, <FILENAME>, <SOME_MYMETYPE>)

It could raise MissingGoogleDriveFolderException when parent directories do not exist.

Library documentation

Using googledrive as a library.

TBC

Contributing

PRs Welcome

Contributions are welcome! Please see our Contributing Guide and Style Guide for more details.

You can visit our TODO list :)

License

This project is licensed under the Apache license.

About

Library and cli to manage and interact with your Google Drive. https://pypi.org/project/google-drive/

Topics

Resources

Contributing

Stars

23 stars

Watchers

2 watching

Forks

Releases

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Add copy buttons to all
 blocks
(function() {
function addCopyButtons() {
document.querySelectorAll('pre code').forEach(function(codeBlock) {
if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;
codeBlock.parentElement.setAttribute('data-copy-added', 'true');
var btn = document.createElement('button');
btn.textContent = 'Copy';
btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';
btn.onmouseover = function() { this.style.opacity = '1'; };
btn.onmouseout = function() { this.style.opacity = '0.7'; };
btn.onclick = function() {
navigator.clipboard.writeText(codeBlock.textContent).then(function() {
btn.textContent = 'Copied!';
setTimeout(function() { btn.textContent = 'Copy'; }, 1500);
});
};
codeBlock.parentElement.style.position = 'relative';
codeBlock.parentElement.appendChild(btn);
});
}
addCopyButtons();
// Re-run on dynamic content
var observer = new MutationObserver(addCopyButtons);
observer.observe(document.body, { childList: true, subtree: true });
})();
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Repository files navigation

google drive python


Library and cli to manage and interact with your Google Drive, sheets and docs

Table of Contents

  1. Introduction
  2. Obtaining credentials for Google APIs
  3. Installing google-drive CLI
  4. CLI documentation
  5. Library documentation
  6. Contributing
  7. License

Introduction

Build StatusPythonPRs WelcomeGitHub license

Obtaining credentials for Google APIs

Google API credentials

Create a Google project ⚡

Just access to Google APIs.

Create credentials for your project 🔑

Once you have created your project, you can create your project's credentials.

To manage project's credentials you have the section api/credentials within Google APIs. But if this is your first credentials creation you better follow these steps:

  • First, you have to create the consent for your project
  • Once the consent is already created and you have a name for you google app you can create your credentials:
    • Go to + Create Credentials and select OAuth ID client
    • Or access to api/credentials/oauthclient
    • The OAuth client type is other and choose the name you prefer 😃

You have already created your credentials! 🎆

Just place them in a credentials.json file in the root of this repository. ❗❗

Enable Google APIs 📚

You can see where you have to access for each google api in the doc google apis usage

Generating your token.pickle 🔓

To authenticate us we have to send a token.pickle to Google APIs, this token.pickle is generated using the file credentials.json.

To generate this we have the make target google-auth, so, you just have to tun

  • make google-auth

⚠️ Credentials files to authenticate yourself are included in our .gitignore

👼 So, you don't have to worry about that 😃

Installing google-drive CLI

Using pipx

pipx install git+https://github.com/eduardogr/google-drive-python.git

Using pip

pip install google-drive

With specific version

Look for available versions with:

pip install google-drive==

And select one and run:

pip install google-drive==<VERSION>

CLI documentation

google-drive --help

Shows the help message

Usage

> google-drive --help
Usage: google-drive [OPTIONS] COMMAND [ARGS]...
Options:
--help Show this message and exit.
Commands:
get Get file metadata
get-mimetypes Get Mimetypes availables in this API implementation
login Perform a login with google oauth
ls List directory contents
mkdir Make directory

google-drive get-mimetypes

Get Mimetypes availables in this API implementation

Usage

> google-drive get-mimetypes credentials.json
- application/vnd.google-apps.folder
- application/vnd.google-apps.document
- application/vnd.google-apps.spreadsheet
- application/pdf

google-drive login

Perform a login with google oauth.

Usage

> google-drive login <path-to-credentials-file.json>

google-drive ls

List directory contents

Usage

> google-drive ls <directory>/<maybe-some-subdir> <path-to-credentials-file.json>
- (<GOOGLE_DOC_ID_1>, <FILENAME_1>, <FILE_MIMETYPE_1>)
- (<GOOGLE_DOC_ID_2>, <FILENAME_2>, <FILE_MIMETYPE_2>)
- (<GOOGLE_DOC_ID_3>, <FILENAME_3>, <FILE_MIMETYPE_3>)
...
- (<GOOGLE_DOC_ID_N>, <FILENAME_N>, <FILE_MIMETYPE_N>)

google-drive get

Get file metadata

Usage

> google-drive get <GOOGLE_DOC_ID> <path-to-credentials-file.json>
File Metadata:
==
id: <GOOGLE_DOC_ID>
name: <FILENAME>
parents: ['<GOOGLE_DOC__PARENT_ID>']
mime_type: <FILE_MIMETYPE>
export_links:
- application/rtf: https://docs.google.com/feeds/download/documents/export/Export?id=<GOOGLE_DOC_ID>&exportFormat=rtf
- application/vnd.oasis.opendocument.text: https://docs.google.com/feeds/download/documents/export/Export?id=<GOOGLE_DOC_ID>&exportFormat=odt
- text/html: https://docs.google.com/feeds/download/documents/export/Export?id=<GOOGLE_DOC_ID>&exportFormat=html
- application/pdf: https://docs.google.com/feeds/download/documents/export/Export?id=<GOOGLE_DOC_ID>&exportFormat=pdf
- application/epub+zip: https://docs.google.com/feeds/download/documents/export/Export?id=<GOOGLE_DOC_ID>&exportFormat=epub
- application/zip: https://docs.google.com/feeds/download/documents/export/Export?id=<GOOGLE_DOC_ID>&exportFormat=zip
- application/vnd.openxmlformats-officedocument.wordprocessingml.document: https://docs.google.com/feeds/download/documents/export/Export?id=<GOOGLE_DOC_ID>&exportFormat=docx
- text/plain: https://docs.google.com/feeds/download/documents/export/Export?id=<GOOGLE_DOC_ID>&exportFormat=txt

google-drive mkdir

Make directory

Usage

> google-drive mkdir <DIR_NAME> <path-to-credentials-file.json>
(<GOOGLE_DOC_ID>, <DIR_NAME>, application/vnd.google-apps.folder)

google-drive touch

Create empty file of specified mimetype

Usage

> google-drive touch <EXISTING_DIR>/<FILENAME> <SOME_MYMETYPE> <path-to-credentials-file.json>
(<GOOGLE_DOC_ID>, <FILENAME>, <SOME_MYMETYPE>)

It could raise MissingGoogleDriveFolderException when parent directories do not exist.

Library documentation

Using googledrive as a library.

TBC

Contributing

PRs Welcome

Contributions are welcome! Please see our Contributing Guide and Style Guide for more details.

You can visit our TODO list :)

License

This project is licensed under the Apache license.

About

Library and cli to manage and interact with your Google Drive. https://pypi.org/project/google-drive/

Topics

Resources

Contributing

Stars

23 stars

Watchers

2 watching

Forks

Releases

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Force GitHub README to respect dark mode (function() { var style = document.createElement('style'); style.textContent = ' .markdown-body { color-scheme: dark light; } .markdown-body pre { background: #161b22 !important; } .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; } .markdown-body table th, .markdown-body table td { border-color: #30363d !important; } .markdown-body img { background: #0d1117; } .markdown-body blockquote { border-left-color: #8b949e; } .markdown-body hr { border-color: #30363d; } '; document.head.appendChild(style); })(); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

google drive python


Library and cli to manage and interact with your Google Drive, sheets and docs

Table of Contents

  1. Introduction
  2. Obtaining credentials for Google APIs
  3. Installing google-drive CLI
  4. CLI documentation
  5. Library documentation
  6. Contributing
  7. License

Introduction

Build StatusPythonPRs WelcomeGitHub license

Obtaining credentials for Google APIs

Google API credentials

Create a Google project ⚡

Just access to Google APIs.

Create credentials for your project 🔑

Once you have created your project, you can create your project's credentials.

To manage project's credentials you have the section api/credentials within Google APIs. But if this is your first credentials creation you better follow these steps:

  • First, you have to create the consent for your project
  • Once the consent is already created and you have a name for you google app you can create your credentials:
    • Go to + Create Credentials and select OAuth ID client
    • Or access to api/credentials/oauthclient
    • The OAuth client type is other and choose the name you prefer 😃

You have already created your credentials! 🎆

Just place them in a credentials.json file in the root of this repository. ❗❗

Enable Google APIs 📚

You can see where you have to access for each google api in the doc google apis usage

Generating your token.pickle 🔓

To authenticate us we have to send a token.pickle to Google APIs, this token.pickle is generated using the file credentials.json.

To generate this we have the make target google-auth, so, you just have to tun

  • make google-auth

⚠️ Credentials files to authenticate yourself are included in our .gitignore

👼 So, you don't have to worry about that 😃

Installing google-drive CLI

Using pipx

pipx install git+https://github.com/eduardogr/google-drive-python.git

Using pip

pip install google-drive

With specific version

Look for available versions with:

pip install google-drive==

And select one and run:

pip install google-drive==<VERSION>

CLI documentation

google-drive --help

Shows the help message

Usage

> google-drive --help
Usage: google-drive [OPTIONS] COMMAND [ARGS]...
Options:
--help Show this message and exit.
Commands:
get Get file metadata
get-mimetypes Get Mimetypes availables in this API implementation
login Perform a login with google oauth
ls List directory contents
mkdir Make directory

google-drive get-mimetypes

Get Mimetypes availables in this API implementation

Usage

> google-drive get-mimetypes credentials.json
- application/vnd.google-apps.folder
- application/vnd.google-apps.document
- application/vnd.google-apps.spreadsheet
- application/pdf

google-drive login

Perform a login with google oauth.

Usage

> google-drive login <path-to-credentials-file.json>

google-drive ls

List directory contents

Usage

> google-drive ls <directory>/<maybe-some-subdir> <path-to-credentials-file.json>
- (<GOOGLE_DOC_ID_1>, <FILENAME_1>, <FILE_MIMETYPE_1>)
- (<GOOGLE_DOC_ID_2>, <FILENAME_2>, <FILE_MIMETYPE_2>)
- (<GOOGLE_DOC_ID_3>, <FILENAME_3>, <FILE_MIMETYPE_3>)
...
- (<GOOGLE_DOC_ID_N>, <FILENAME_N>, <FILE_MIMETYPE_N>)

google-drive get

Get file metadata

Usage

> google-drive get <GOOGLE_DOC_ID> <path-to-credentials-file.json>
File Metadata:
==
id: <GOOGLE_DOC_ID>
name: <FILENAME>
parents: ['<GOOGLE_DOC__PARENT_ID>']
mime_type: <FILE_MIMETYPE>
export_links:
- application/rtf: https://docs.google.com/feeds/download/documents/export/Export?id=<GOOGLE_DOC_ID>&exportFormat=rtf
- application/vnd.oasis.opendocument.text: https://docs.google.com/feeds/download/documents/export/Export?id=<GOOGLE_DOC_ID>&exportFormat=odt
- text/html: https://docs.google.com/feeds/download/documents/export/Export?id=<GOOGLE_DOC_ID>&exportFormat=html
- application/pdf: https://docs.google.com/feeds/download/documents/export/Export?id=<GOOGLE_DOC_ID>&exportFormat=pdf
- application/epub+zip: https://docs.google.com/feeds/download/documents/export/Export?id=<GOOGLE_DOC_ID>&exportFormat=epub
- application/zip: https://docs.google.com/feeds/download/documents/export/Export?id=<GOOGLE_DOC_ID>&exportFormat=zip
- application/vnd.openxmlformats-officedocument.wordprocessingml.document: https://docs.google.com/feeds/download/documents/export/Export?id=<GOOGLE_DOC_ID>&exportFormat=docx
- text/plain: https://docs.google.com/feeds/download/documents/export/Export?id=<GOOGLE_DOC_ID>&exportFormat=txt

google-drive mkdir

Make directory

Usage

> google-drive mkdir <DIR_NAME> <path-to-credentials-file.json>
(<GOOGLE_DOC_ID>, <DIR_NAME>, application/vnd.google-apps.folder)

google-drive touch

Create empty file of specified mimetype

Usage

> google-drive touch <EXISTING_DIR>/<FILENAME> <SOME_MYMETYPE> <path-to-credentials-file.json>
(<GOOGLE_DOC_ID>, <FILENAME>, <SOME_MYMETYPE>)

It could raise MissingGoogleDriveFolderException when parent directories do not exist.

Library documentation

Using googledrive as a library.

TBC

Contributing

PRs Welcome

Contributions are welcome! Please see our Contributing Guide and Style Guide for more details.

You can visit our TODO list :)

License

This project is licensed under the Apache license.

About

Library and cli to manage and interact with your Google Drive. https://pypi.org/project/google-drive/

Topics

Resources

Contributing

Stars

23 stars

Watchers

2 watching

Forks

Releases

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Highlight search terms from Google/DuckDuckGo/Bing referrer (function() { var ref = document.referrer; var terms = []; if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) { var url = new URL(ref); var q = url.searchParams.get('q') || url.searchParams.get('p'); if (q) { terms = q.split(/\s+/).filter(function(t) { return t.length > 2; }); } } if (terms.length === 0) return; var style = document.createElement('style'); style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }'; document.head.appendChild(style); function highlight(node) { if (node.nodeType === 3) { // text node var text = node.textContent; var found = false; terms.forEach(function(term) { var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\]\\]/g, '\\') + ')', 'gi'); if (regex.test(text)) { found = true; var frag = document.createDocumentFragment(); var parts = text.split(regex); parts.forEach(function(part, i) { if (i % 2 === 0) { frag.appendChild(document.createTextNode(part)); } else { var span = document.createElement('span'); span.className = 'userscript-highlight'; span.textContent = part; frag.appendChild(span); } }); node.parentNode.replaceChild(frag, node); } }); } else if (node.nodeType === 1 && node.childNodes) { // element var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT']; if (!skipTags.includes(node.tagName)) { Array.from(node.childNodes).forEach(highlight); } } } highlight(document.body); // Re-highlight on dynamic content var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1 || node.nodeType === 3) highlight(node); }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

google drive python


Library and cli to manage and interact with your Google Drive, sheets and docs

Table of Contents

  1. Introduction
  2. Obtaining credentials for Google APIs
  3. Installing google-drive CLI
  4. CLI documentation
  5. Library documentation
  6. Contributing
  7. License

Introduction

Build StatusPythonPRs WelcomeGitHub license

Obtaining credentials for Google APIs

Google API credentials

Create a Google project ⚡

Just access to Google APIs.

Create credentials for your project 🔑

Once you have created your project, you can create your project's credentials.

To manage project's credentials you have the section api/credentials within Google APIs. But if this is your first credentials creation you better follow these steps:

  • First, you have to create the consent for your project
  • Once the consent is already created and you have a name for you google app you can create your credentials:
    • Go to + Create Credentials and select OAuth ID client
    • Or access to api/credentials/oauthclient
    • The OAuth client type is other and choose the name you prefer 😃

You have already created your credentials! 🎆

Just place them in a credentials.json file in the root of this repository. ❗❗

Enable Google APIs 📚

You can see where you have to access for each google api in the doc google apis usage

Generating your token.pickle 🔓

To authenticate us we have to send a token.pickle to Google APIs, this token.pickle is generated using the file credentials.json.

To generate this we have the make target google-auth, so, you just have to tun

  • make google-auth

⚠️ Credentials files to authenticate yourself are included in our .gitignore

👼 So, you don't have to worry about that 😃

Installing google-drive CLI

Using pipx

pipx install git+https://github.com/eduardogr/google-drive-python.git

Using pip

pip install google-drive

With specific version

Look for available versions with:

pip install google-drive==

And select one and run:

pip install google-drive==<VERSION>

CLI documentation

google-drive --help

Shows the help message

Usage

> google-drive --help
Usage: google-drive [OPTIONS] COMMAND [ARGS]...
Options:
--help Show this message and exit.
Commands:
get Get file metadata
get-mimetypes Get Mimetypes availables in this API implementation
login Perform a login with google oauth
ls List directory contents
mkdir Make directory

google-drive get-mimetypes

Get Mimetypes availables in this API implementation

Usage

> google-drive get-mimetypes credentials.json
- application/vnd.google-apps.folder
- application/vnd.google-apps.document
- application/vnd.google-apps.spreadsheet
- application/pdf

google-drive login

Perform a login with google oauth.

Usage

> google-drive login <path-to-credentials-file.json>

google-drive ls

List directory contents

Usage

> google-drive ls <directory>/<maybe-some-subdir> <path-to-credentials-file.json>
- (<GOOGLE_DOC_ID_1>, <FILENAME_1>, <FILE_MIMETYPE_1>)
- (<GOOGLE_DOC_ID_2>, <FILENAME_2>, <FILE_MIMETYPE_2>)
- (<GOOGLE_DOC_ID_3>, <FILENAME_3>, <FILE_MIMETYPE_3>)
...
- (<GOOGLE_DOC_ID_N>, <FILENAME_N>, <FILE_MIMETYPE_N>)

google-drive get

Get file metadata

Usage

> google-drive get <GOOGLE_DOC_ID> <path-to-credentials-file.json>
File Metadata:
==
id: <GOOGLE_DOC_ID>
name: <FILENAME>
parents: ['<GOOGLE_DOC__PARENT_ID>']
mime_type: <FILE_MIMETYPE>
export_links:
- application/rtf: https://docs.google.com/feeds/download/documents/export/Export?id=<GOOGLE_DOC_ID>&exportFormat=rtf
- application/vnd.oasis.opendocument.text: https://docs.google.com/feeds/download/documents/export/Export?id=<GOOGLE_DOC_ID>&exportFormat=odt
- text/html: https://docs.google.com/feeds/download/documents/export/Export?id=<GOOGLE_DOC_ID>&exportFormat=html
- application/pdf: https://docs.google.com/feeds/download/documents/export/Export?id=<GOOGLE_DOC_ID>&exportFormat=pdf
- application/epub+zip: https://docs.google.com/feeds/download/documents/export/Export?id=<GOOGLE_DOC_ID>&exportFormat=epub
- application/zip: https://docs.google.com/feeds/download/documents/export/Export?id=<GOOGLE_DOC_ID>&exportFormat=zip
- application/vnd.openxmlformats-officedocument.wordprocessingml.document: https://docs.google.com/feeds/download/documents/export/Export?id=<GOOGLE_DOC_ID>&exportFormat=docx
- text/plain: https://docs.google.com/feeds/download/documents/export/Export?id=<GOOGLE_DOC_ID>&exportFormat=txt

google-drive mkdir

Make directory

Usage

> google-drive mkdir <DIR_NAME> <path-to-credentials-file.json>
(<GOOGLE_DOC_ID>, <DIR_NAME>, application/vnd.google-apps.folder)

google-drive touch

Create empty file of specified mimetype

Usage

> google-drive touch <EXISTING_DIR>/<FILENAME> <SOME_MYMETYPE> <path-to-credentials-file.json>
(<GOOGLE_DOC_ID>, <FILENAME>, <SOME_MYMETYPE>)

It could raise MissingGoogleDriveFolderException when parent directories do not exist.

Library documentation

Using googledrive as a library.

TBC

Contributing

PRs Welcome

Contributions are welcome! Please see our Contributing Guide and Style Guide for more details.

You can visit our TODO list :)

License

This project is licensed under the Apache license.

About

Library and cli to manage and interact with your Google Drive. https://pypi.org/project/google-drive/

Topics

Resources

Contributing

Stars

23 stars

Watchers

2 watching

Forks

Releases

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Strip utm_, fbclid, gclid, etc. from all links on page (function() { var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid', 'ref', 'ref_src', 'source', 'medium', 'campaign']; function cleanUrl(url) { try { var u = new URL(url, window.location.origin); var changed = false; trackingParams.forEach(function(p) { if (u.searchParams.has(p)) { u.searchParams.delete(p); changed = true; } }); return changed ? u.toString() : url; } catch (e) { return url; } } function cleanLinks() { document.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } cleanLinks(); var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1) { if (node.tagName === 'A') cleanLinks(); node.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Repository files navigation

google drive python


Library and cli to manage and interact with your Google Drive, sheets and docs

Table of Contents

  1. Introduction
  2. Obtaining credentials for Google APIs
  3. Installing google-drive CLI
  4. CLI documentation
  5. Library documentation
  6. Contributing
  7. License

Introduction

Build StatusPythonPRs WelcomeGitHub license

Obtaining credentials for Google APIs

Google API credentials

Create a Google project ⚡

Just access to Google APIs.

Create credentials for your project 🔑

Once you have created your project, you can create your project's credentials.

To manage project's credentials you have the section api/credentials within Google APIs. But if this is your first credentials creation you better follow these steps:

  • First, you have to create the consent for your project
  • Once the consent is already created and you have a name for you google app you can create your credentials:
    • Go to + Create Credentials and select OAuth ID client
    • Or access to api/credentials/oauthclient
    • The OAuth client type is other and choose the name you prefer 😃

You have already created your credentials! 🎆

Just place them in a credentials.json file in the root of this repository. ❗❗

Enable Google APIs 📚

You can see where you have to access for each google api in the doc google apis usage

Generating your token.pickle 🔓

To authenticate us we have to send a token.pickle to Google APIs, this token.pickle is generated using the file credentials.json.

To generate this we have the make target google-auth, so, you just have to tun

  • make google-auth

⚠️ Credentials files to authenticate yourself are included in our .gitignore

👼 So, you don't have to worry about that 😃

Installing google-drive CLI

Using pipx

pipx install git+https://github.com/eduardogr/google-drive-python.git

Using pip

pip install google-drive

With specific version

Look for available versions with:

pip install google-drive==

And select one and run:

pip install google-drive==<VERSION>

CLI documentation

google-drive --help

Shows the help message

Usage

> google-drive --help
Usage: google-drive [OPTIONS] COMMAND [ARGS]...
Options:
--help Show this message and exit.
Commands:
get Get file metadata
get-mimetypes Get Mimetypes availables in this API implementation
login Perform a login with google oauth
ls List directory contents
mkdir Make directory

google-drive get-mimetypes

Get Mimetypes availables in this API implementation

Usage

> google-drive get-mimetypes credentials.json
- application/vnd.google-apps.folder
- application/vnd.google-apps.document
- application/vnd.google-apps.spreadsheet
- application/pdf

google-drive login

Perform a login with google oauth.

Usage

> google-drive login <path-to-credentials-file.json>

google-drive ls

List directory contents

Usage

> google-drive ls <directory>/<maybe-some-subdir> <path-to-credentials-file.json>
- (<GOOGLE_DOC_ID_1>, <FILENAME_1>, <FILE_MIMETYPE_1>)
- (<GOOGLE_DOC_ID_2>, <FILENAME_2>, <FILE_MIMETYPE_2>)
- (<GOOGLE_DOC_ID_3>, <FILENAME_3>, <FILE_MIMETYPE_3>)
...
- (<GOOGLE_DOC_ID_N>, <FILENAME_N>, <FILE_MIMETYPE_N>)

google-drive get

Get file metadata

Usage

> google-drive get <GOOGLE_DOC_ID> <path-to-credentials-file.json>
File Metadata:
==
id: <GOOGLE_DOC_ID>
name: <FILENAME>
parents: ['<GOOGLE_DOC__PARENT_ID>']
mime_type: <FILE_MIMETYPE>
export_links:
- application/rtf: https://docs.google.com/feeds/download/documents/export/Export?id=<GOOGLE_DOC_ID>&exportFormat=rtf
- application/vnd.oasis.opendocument.text: https://docs.google.com/feeds/download/documents/export/Export?id=<GOOGLE_DOC_ID>&exportFormat=odt
- text/html: https://docs.google.com/feeds/download/documents/export/Export?id=<GOOGLE_DOC_ID>&exportFormat=html
- application/pdf: https://docs.google.com/feeds/download/documents/export/Export?id=<GOOGLE_DOC_ID>&exportFormat=pdf
- application/epub+zip: https://docs.google.com/feeds/download/documents/export/Export?id=<GOOGLE_DOC_ID>&exportFormat=epub
- application/zip: https://docs.google.com/feeds/download/documents/export/Export?id=<GOOGLE_DOC_ID>&exportFormat=zip
- application/vnd.openxmlformats-officedocument.wordprocessingml.document: https://docs.google.com/feeds/download/documents/export/Export?id=<GOOGLE_DOC_ID>&exportFormat=docx
- text/plain: https://docs.google.com/feeds/download/documents/export/Export?id=<GOOGLE_DOC_ID>&exportFormat=txt

google-drive mkdir

Make directory

Usage

> google-drive mkdir <DIR_NAME> <path-to-credentials-file.json>
(<GOOGLE_DOC_ID>, <DIR_NAME>, application/vnd.google-apps.folder)

google-drive touch

Create empty file of specified mimetype

Usage

> google-drive touch <EXISTING_DIR>/<FILENAME> <SOME_MYMETYPE> <path-to-credentials-file.json>
(<GOOGLE_DOC_ID>, <FILENAME>, <SOME_MYMETYPE>)

It could raise MissingGoogleDriveFolderException when parent directories do not exist.

Library documentation

Using googledrive as a library.

TBC

Contributing

PRs Welcome

Contributions are welcome! Please see our Contributing Guide and Style Guide for more details.

You can visit our TODO list :)

License

This project is licensed under the Apache license.

About

Library and cli to manage and interact with your Google Drive. https://pypi.org/project/google-drive/

Topics

Resources

Contributing

Stars

23 stars

Watchers

2 watching

Forks

Releases

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Auto-enable theater mode on YouTube (function() { function tryTheater() { var btn = document.querySelector('button[aria-label="Theater mode"], ytd-player #player button[title="Theater mode"]'); if (btn && !btn.classList.contains('activated')) { btn.click(); } } // Try immediately tryTheater(); // Try after navigation (SPA) var lastUrl = location.href; setInterval(function() { if (location.href !== lastUrl) { lastUrl = location.href; setTimeout(tryTheater, 500); } }, 1000); // Also try on player load var observer = new MutationObserver(tryTheater); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

google drive python


Library and cli to manage and interact with your Google Drive, sheets and docs

Table of Contents

  1. Introduction
  2. Obtaining credentials for Google APIs
  3. Installing google-drive CLI
  4. CLI documentation
  5. Library documentation
  6. Contributing
  7. License

Introduction

Build StatusPythonPRs WelcomeGitHub license

Obtaining credentials for Google APIs

Google API credentials

Create a Google project ⚡

Just access to Google APIs.

Create credentials for your project 🔑

Once you have created your project, you can create your project's credentials.

To manage project's credentials you have the section api/credentials within Google APIs. But if this is your first credentials creation you better follow these steps:

  • First, you have to create the consent for your project
  • Once the consent is already created and you have a name for you google app you can create your credentials:
    • Go to + Create Credentials and select OAuth ID client
    • Or access to api/credentials/oauthclient
    • The OAuth client type is other and choose the name you prefer 😃

You have already created your credentials! 🎆

Just place them in a credentials.json file in the root of this repository. ❗❗

Enable Google APIs 📚

You can see where you have to access for each google api in the doc google apis usage

Generating your token.pickle 🔓

To authenticate us we have to send a token.pickle to Google APIs, this token.pickle is generated using the file credentials.json.

To generate this we have the make target google-auth, so, you just have to tun

  • make google-auth

⚠️ Credentials files to authenticate yourself are included in our .gitignore

👼 So, you don't have to worry about that 😃

Installing google-drive CLI

Using pipx

pipx install git+https://github.com/eduardogr/google-drive-python.git

Using pip

pip install google-drive

With specific version

Look for available versions with:

pip install google-drive==

And select one and run:

pip install google-drive==<VERSION>

CLI documentation

google-drive --help

Shows the help message

Usage

> google-drive --help
Usage: google-drive [OPTIONS] COMMAND [ARGS]...
Options:
--help Show this message and exit.
Commands:
get Get file metadata
get-mimetypes Get Mimetypes availables in this API implementation
login Perform a login with google oauth
ls List directory contents
mkdir Make directory

google-drive get-mimetypes

Get Mimetypes availables in this API implementation

Usage

> google-drive get-mimetypes credentials.json
- application/vnd.google-apps.folder
- application/vnd.google-apps.document
- application/vnd.google-apps.spreadsheet
- application/pdf

google-drive login

Perform a login with google oauth.

Usage

> google-drive login <path-to-credentials-file.json>

google-drive ls

List directory contents

Usage

> google-drive ls <directory>/<maybe-some-subdir> <path-to-credentials-file.json>
- (<GOOGLE_DOC_ID_1>, <FILENAME_1>, <FILE_MIMETYPE_1>)
- (<GOOGLE_DOC_ID_2>, <FILENAME_2>, <FILE_MIMETYPE_2>)
- (<GOOGLE_DOC_ID_3>, <FILENAME_3>, <FILE_MIMETYPE_3>)
...
- (<GOOGLE_DOC_ID_N>, <FILENAME_N>, <FILE_MIMETYPE_N>)

google-drive get

Get file metadata

Usage

> google-drive get <GOOGLE_DOC_ID> <path-to-credentials-file.json>
File Metadata:
==
id: <GOOGLE_DOC_ID>
name: <FILENAME>
parents: ['<GOOGLE_DOC__PARENT_ID>']
mime_type: <FILE_MIMETYPE>
export_links:
- application/rtf: https://docs.google.com/feeds/download/documents/export/Export?id=<GOOGLE_DOC_ID>&exportFormat=rtf
- application/vnd.oasis.opendocument.text: https://docs.google.com/feeds/download/documents/export/Export?id=<GOOGLE_DOC_ID>&exportFormat=odt
- text/html: https://docs.google.com/feeds/download/documents/export/Export?id=<GOOGLE_DOC_ID>&exportFormat=html
- application/pdf: https://docs.google.com/feeds/download/documents/export/Export?id=<GOOGLE_DOC_ID>&exportFormat=pdf
- application/epub+zip: https://docs.google.com/feeds/download/documents/export/Export?id=<GOOGLE_DOC_ID>&exportFormat=epub
- application/zip: https://docs.google.com/feeds/download/documents/export/Export?id=<GOOGLE_DOC_ID>&exportFormat=zip
- application/vnd.openxmlformats-officedocument.wordprocessingml.document: https://docs.google.com/feeds/download/documents/export/Export?id=<GOOGLE_DOC_ID>&exportFormat=docx
- text/plain: https://docs.google.com/feeds/download/documents/export/Export?id=<GOOGLE_DOC_ID>&exportFormat=txt

google-drive mkdir

Make directory

Usage

> google-drive mkdir <DIR_NAME> <path-to-credentials-file.json>
(<GOOGLE_DOC_ID>, <DIR_NAME>, application/vnd.google-apps.folder)

google-drive touch

Create empty file of specified mimetype

Usage

> google-drive touch <EXISTING_DIR>/<FILENAME> <SOME_MYMETYPE> <path-to-credentials-file.json>
(<GOOGLE_DOC_ID>, <FILENAME>, <SOME_MYMETYPE>)

It could raise MissingGoogleDriveFolderException when parent directories do not exist.

Library documentation

Using googledrive as a library.

TBC

Contributing

PRs Welcome

Contributions are welcome! Please see our Contributing Guide and Style Guide for more details.

You can visit our TODO list :)

License

This project is licensed under the Apache license.

About

Library and cli to manage and interact with your Google Drive. https://pypi.org/project/google-drive/

Topics

Resources

Contributing

Stars

23 stars

Watchers

2 watching

Forks

Releases

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Remove or un-stick sticky/fixed headers that block content (function() { function unstick() { document.querySelectorAll('header, nav, [role="banner"], .header, .navbar, .sticky, .fixed-top, [style*="position: fixed"], [style*="position:sticky"]').forEach(function(el) { if (el.style.position === 'fixed' || el.style.position === 'sticky' || getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') { el.style.position = 'static'; el.style.top = 'auto'; el.style.zIndex = 'auto'; } }); } unstick(); var observer = new MutationObserver(unstick); observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] }); })(); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

google drive python


Library and cli to manage and interact with your Google Drive, sheets and docs

Table of Contents

  1. Introduction
  2. Obtaining credentials for Google APIs
  3. Installing google-drive CLI
  4. CLI documentation
  5. Library documentation
  6. Contributing
  7. License

Introduction

Build StatusPythonPRs WelcomeGitHub license

Obtaining credentials for Google APIs

Google API credentials

Create a Google project ⚡

Just access to Google APIs.

Create credentials for your project 🔑

Once you have created your project, you can create your project's credentials.

To manage project's credentials you have the section api/credentials within Google APIs. But if this is your first credentials creation you better follow these steps:

  • First, you have to create the consent for your project
  • Once the consent is already created and you have a name for you google app you can create your credentials:
    • Go to + Create Credentials and select OAuth ID client
    • Or access to api/credentials/oauthclient
    • The OAuth client type is other and choose the name you prefer 😃

You have already created your credentials! 🎆

Just place them in a credentials.json file in the root of this repository. ❗❗

Enable Google APIs 📚

You can see where you have to access for each google api in the doc google apis usage

Generating your token.pickle 🔓

To authenticate us we have to send a token.pickle to Google APIs, this token.pickle is generated using the file credentials.json.

To generate this we have the make target google-auth, so, you just have to tun

  • make google-auth

⚠️ Credentials files to authenticate yourself are included in our .gitignore

👼 So, you don't have to worry about that 😃

Installing google-drive CLI

Using pipx

pipx install git+https://github.com/eduardogr/google-drive-python.git

Using pip

pip install google-drive

With specific version

Look for available versions with:

pip install google-drive==

And select one and run:

pip install google-drive==<VERSION>

CLI documentation

google-drive --help

Shows the help message

Usage

> google-drive --help
Usage: google-drive [OPTIONS] COMMAND [ARGS]...
Options:
--help Show this message and exit.
Commands:
get Get file metadata
get-mimetypes Get Mimetypes availables in this API implementation
login Perform a login with google oauth
ls List directory contents
mkdir Make directory

google-drive get-mimetypes

Get Mimetypes availables in this API implementation

Usage

> google-drive get-mimetypes credentials.json
- application/vnd.google-apps.folder
- application/vnd.google-apps.document
- application/vnd.google-apps.spreadsheet
- application/pdf

google-drive login

Perform a login with google oauth.

Usage

> google-drive login <path-to-credentials-file.json>

google-drive ls

List directory contents

Usage

> google-drive ls <directory>/<maybe-some-subdir> <path-to-credentials-file.json>
- (<GOOGLE_DOC_ID_1>, <FILENAME_1>, <FILE_MIMETYPE_1>)
- (<GOOGLE_DOC_ID_2>, <FILENAME_2>, <FILE_MIMETYPE_2>)
- (<GOOGLE_DOC_ID_3>, <FILENAME_3>, <FILE_MIMETYPE_3>)
...
- (<GOOGLE_DOC_ID_N>, <FILENAME_N>, <FILE_MIMETYPE_N>)

google-drive get

Get file metadata

Usage

> google-drive get <GOOGLE_DOC_ID> <path-to-credentials-file.json>
File Metadata:
==
id: <GOOGLE_DOC_ID>
name: <FILENAME>
parents: ['<GOOGLE_DOC__PARENT_ID>']
mime_type: <FILE_MIMETYPE>
export_links:
- application/rtf: https://docs.google.com/feeds/download/documents/export/Export?id=<GOOGLE_DOC_ID>&exportFormat=rtf
- application/vnd.oasis.opendocument.text: https://docs.google.com/feeds/download/documents/export/Export?id=<GOOGLE_DOC_ID>&exportFormat=odt
- text/html: https://docs.google.com/feeds/download/documents/export/Export?id=<GOOGLE_DOC_ID>&exportFormat=html
- application/pdf: https://docs.google.com/feeds/download/documents/export/Export?id=<GOOGLE_DOC_ID>&exportFormat=pdf
- application/epub+zip: https://docs.google.com/feeds/download/documents/export/Export?id=<GOOGLE_DOC_ID>&exportFormat=epub
- application/zip: https://docs.google.com/feeds/download/documents/export/Export?id=<GOOGLE_DOC_ID>&exportFormat=zip
- application/vnd.openxmlformats-officedocument.wordprocessingml.document: https://docs.google.com/feeds/download/documents/export/Export?id=<GOOGLE_DOC_ID>&exportFormat=docx
- text/plain: https://docs.google.com/feeds/download/documents/export/Export?id=<GOOGLE_DOC_ID>&exportFormat=txt

google-drive mkdir

Make directory

Usage

> google-drive mkdir <DIR_NAME> <path-to-credentials-file.json>
(<GOOGLE_DOC_ID>, <DIR_NAME>, application/vnd.google-apps.folder)

google-drive touch

Create empty file of specified mimetype

Usage

> google-drive touch <EXISTING_DIR>/<FILENAME> <SOME_MYMETYPE> <path-to-credentials-file.json>
(<GOOGLE_DOC_ID>, <FILENAME>, <SOME_MYMETYPE>)

It could raise MissingGoogleDriveFolderException when parent directories do not exist.

Library documentation

Using googledrive as a library.

TBC

Contributing

PRs Welcome

Contributions are welcome! Please see our Contributing Guide and Style Guide for more details.

You can visit our TODO list :)

License

This project is licensed under the Apache license.

About

Library and cli to manage and interact with your Google Drive. https://pypi.org/project/google-drive/

Topics

Resources

Contributing

Stars

23 stars

Watchers

2 watching

Forks

Releases

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Universal Dark Mode - works on any site (function() { var enabled = true; function applyDarkMode() { if (!enabled) return; // Create style element if it doesn't exist var style = document.getElementById('universal-dark-mode-style'); if (!style) { style = document.createElement('style'); style.id = 'universal-dark-mode-style'; document.head.appendChild(style); } // Dark mode CSS - inverts colors but preserves images/video style.textContent = ' /* Invert everything except media */ html { filter: invert(1) hue-rotate(180deg) !important; background: #1a1a2e !important; } /* Restore images, videos, iframes, canvas */ img, video, iframe, canvas, svg, picture, [style*="background-image"] { filter: invert(1) hue-rotate(180deg) !important; } /* Preserve specific elements that should not be inverted */ .no-dark-mode, .no-dark-mode *, [data-theme="light"], [data-theme="light"], .ace_editor, .ace_editor *, .CodeMirror, .CodeMirror *, .monaco-editor, .monaco-editor *, .markdown-body pre, .markdown-body pre *, .highlight, .highlight *, pre code, pre code * { filter: none !important; } /* Fix common UI elements */ .modal, .popup, .dropdown-menu, .tooltip, .popover { filter: invert(1) hue-rotate(180deg) !important; background: #2d2d44 !important; border-color: #444 !important; } /* Scrollbars */ ::-webkit-scrollbar { background: #1a1a2e !important; } ::-webkit-scrollbar-thumb { background: #444 !important; } ::-webkit-scrollbar-thumb:hover { background: #555 !important; } /* Selection */ ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; } ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; } '; } function removeDarkMode() { var style = document.getElementById('universal-dark-mode-style'); if (style) style.remove(); } // Toggle with Alt+Shift+D document.addEventListener('keydown', function(e) { if (e.altKey && e.shiftKey && e.key === 'D') { e.preventDefault(); enabled = !enabled; if (enabled) { applyDarkMode(); console.log('[Universal Dark Mode] Enabled'); } else { removeDarkMode(); console.log('[Universal Dark Mode] Disabled'); } } }); // Apply on load applyDarkMode(); // Re-apply on dynamic content var observer = new MutationObserver(function(mutations) { if (enabled && !document.getElementById('universal-dark-mode-style')) { applyDarkMode(); } }); observer.observe(document.head, { childList: true }); console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle'); })(); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Repository files navigation

google drive python


Library and cli to manage and interact with your Google Drive, sheets and docs

Table of Contents

  1. Introduction
  2. Obtaining credentials for Google APIs
  3. Installing google-drive CLI
  4. CLI documentation
  5. Library documentation
  6. Contributing
  7. License

Introduction

Build StatusPythonPRs WelcomeGitHub license

Obtaining credentials for Google APIs

Google API credentials

Create a Google project ⚡

Just access to Google APIs.

Create credentials for your project 🔑

Once you have created your project, you can create your project's credentials.

To manage project's credentials you have the section api/credentials within Google APIs. But if this is your first credentials creation you better follow these steps:

  • First, you have to create the consent for your project
  • Once the consent is already created and you have a name for you google app you can create your credentials:
    • Go to + Create Credentials and select OAuth ID client
    • Or access to api/credentials/oauthclient
    • The OAuth client type is other and choose the name you prefer 😃

You have already created your credentials! 🎆

Just place them in a credentials.json file in the root of this repository. ❗❗

Enable Google APIs 📚

You can see where you have to access for each google api in the doc google apis usage

Generating your token.pickle 🔓

To authenticate us we have to send a token.pickle to Google APIs, this token.pickle is generated using the file credentials.json.

To generate this we have the make target google-auth, so, you just have to tun

  • make google-auth

⚠️ Credentials files to authenticate yourself are included in our .gitignore

👼 So, you don't have to worry about that 😃

Installing google-drive CLI

Using pipx

pipx install git+https://github.com/eduardogr/google-drive-python.git

Using pip

pip install google-drive

With specific version

Look for available versions with:

pip install google-drive==

And select one and run:

pip install google-drive==<VERSION>

CLI documentation

google-drive --help

Shows the help message

Usage

> google-drive --help
Usage: google-drive [OPTIONS] COMMAND [ARGS]...
Options:
--help Show this message and exit.
Commands:
get Get file metadata
get-mimetypes Get Mimetypes availables in this API implementation
login Perform a login with google oauth
ls List directory contents
mkdir Make directory

google-drive get-mimetypes

Get Mimetypes availables in this API implementation

Usage

> google-drive get-mimetypes credentials.json
- application/vnd.google-apps.folder
- application/vnd.google-apps.document
- application/vnd.google-apps.spreadsheet
- application/pdf

google-drive login

Perform a login with google oauth.

Usage

> google-drive login <path-to-credentials-file.json>

google-drive ls

List directory contents

Usage

> google-drive ls <directory>/<maybe-some-subdir> <path-to-credentials-file.json>
- (<GOOGLE_DOC_ID_1>, <FILENAME_1>, <FILE_MIMETYPE_1>)
- (<GOOGLE_DOC_ID_2>, <FILENAME_2>, <FILE_MIMETYPE_2>)
- (<GOOGLE_DOC_ID_3>, <FILENAME_3>, <FILE_MIMETYPE_3>)
...
- (<GOOGLE_DOC_ID_N>, <FILENAME_N>, <FILE_MIMETYPE_N>)

google-drive get

Get file metadata

Usage

> google-drive get <GOOGLE_DOC_ID> <path-to-credentials-file.json>
File Metadata:
==
id: <GOOGLE_DOC_ID>
name: <FILENAME>
parents: ['<GOOGLE_DOC__PARENT_ID>']
mime_type: <FILE_MIMETYPE>
export_links:
- application/rtf: https://docs.google.com/feeds/download/documents/export/Export?id=<GOOGLE_DOC_ID>&exportFormat=rtf
- application/vnd.oasis.opendocument.text: https://docs.google.com/feeds/download/documents/export/Export?id=<GOOGLE_DOC_ID>&exportFormat=odt
- text/html: https://docs.google.com/feeds/download/documents/export/Export?id=<GOOGLE_DOC_ID>&exportFormat=html
- application/pdf: https://docs.google.com/feeds/download/documents/export/Export?id=<GOOGLE_DOC_ID>&exportFormat=pdf
- application/epub+zip: https://docs.google.com/feeds/download/documents/export/Export?id=<GOOGLE_DOC_ID>&exportFormat=epub
- application/zip: https://docs.google.com/feeds/download/documents/export/Export?id=<GOOGLE_DOC_ID>&exportFormat=zip
- application/vnd.openxmlformats-officedocument.wordprocessingml.document: https://docs.google.com/feeds/download/documents/export/Export?id=<GOOGLE_DOC_ID>&exportFormat=docx
- text/plain: https://docs.google.com/feeds/download/documents/export/Export?id=<GOOGLE_DOC_ID>&exportFormat=txt

google-drive mkdir

Make directory

Usage

> google-drive mkdir <DIR_NAME> <path-to-credentials-file.json>
(<GOOGLE_DOC_ID>, <DIR_NAME>, application/vnd.google-apps.folder)

google-drive touch

Create empty file of specified mimetype

Usage

> google-drive touch <EXISTING_DIR>/<FILENAME> <SOME_MYMETYPE> <path-to-credentials-file.json>
(<GOOGLE_DOC_ID>, <FILENAME>, <SOME_MYMETYPE>)

It could raise MissingGoogleDriveFolderException when parent directories do not exist.

Library documentation

Using googledrive as a library.

TBC

Contributing

PRs Welcome

Contributions are welcome! Please see our Contributing Guide and Style Guide for more details.

You can visit our TODO list :)

License

This project is licensed under the Apache license.

About

Library and cli to manage and interact with your Google Drive. https://pypi.org/project/google-drive/

Topics

Resources

Contributing

Stars

23 stars

Watchers

2 watching

Forks

Releases

Contributors

Languages