If you only need to use gdown-async as a library, you can install it via pip:
pip install gdown-asyncIf you also want to use the CLI, you can simply install the optional cli extra:
pip install gdown-async[cli]To download a file from Google Drive, you can use the download_file function:
import anyio
from gdown_async import download_file
async def main():
await download_file("file_id_or_url", output_dir="path/to/output/dir")
anyio.run(main)If passed a FILE_ID or FILE_URL, the function will download the corresponding file into the specified output_dir with the name of the file stored on Google Drive. If you want to specify a different filename, you can pass a File object instead:
import anyio
from gdown_async import download_file, File, fetch_file
async def main():
file = File("file_id", name="filename")
# NOTE: to create a File object you need to use the file_id, not the file URL
# if you only have the URL, you can use the fetch_file function to get the file_id
# file = await fetch_file("file_id_or_url")
# file.name = "filename"
await download_file(file, output_dir="path/to/output/dir")Similarly, you can use the download_folder function to download a folder:
import anyio
from gdown_async import download_folder
async def main():
await download_folder("folder_id_or_url", output_dir="path/to/output/dir")
anyio.run(main)The download_folder function will download the entire folder structure into the specified output_dir with the same names as on Google Drive. If you want to specify a different folder/subfolder/file name or only download specific files, you can use the Folder object:
import anyio
from gdown_async import download_folder, Folder, fetch_folder
async def main():
folder = await fetch_folder("folder_id_or_url")
# modify the folder object as needed
await download_folder(folder, output_dir="path/to/output/dir")
anyio.run(main)To download a file from Google Drive, you can use the gdown-async command:
gdown-async --file FILE_ID_OR_URLSimilarly, you can use the gdown-async command to download a folder:
gdown-async --folder FOLDER_ID_OR_URLThe following optional flags are available for both file and folder downloads:
--output-diror-o: Directory where the file/folder will be downloaded (default:.). When downloading a file, the file will be saved inside this directory with the name of the file stored on Google Drive. When downloading a folder, the root folder will be saved inside this directory with the same name as on Google Drive.--quietor-q: Suppress all output except for errors (default:False).--forceor-f: Overwrite existing files (default:False). If this flag is not set, the program will skip downloading files that already exist in the output directory (no check is made to verify that the existing file is the same as the one being downloaded, only the filename is checked).
When downloading a folder, you can also use the following optional flags:
--max-concurrencyor-c: Maximum number of concurrent downloads (default:None). If not specified, no limit is set.--max-depthor-d: Maximum depth of the folder structure to download (default:None). If not specified, the entire folder structure will be downloaded.
This project is licensed under the MIT License. See the LICENSE file for more information.