Spaces:
Running
on
A10G
Running
on
A10G
import sys | |
import requests | |
def download_file_from_google_drive(id, destination): | |
URL = "https://docs.google.com/uc?export=download&confirm=1" | |
session = requests.Session() | |
response = session.get(URL, params={"id": id}, stream=True) | |
token = get_confirm_token(response) | |
if token: | |
params = {"id": id, "confirm": token} | |
response = session.get(URL, params=params, stream=True) | |
save_response_content(response, destination) | |
def get_confirm_token(response): | |
for key, value in response.cookies.items(): | |
if key.startswith("download_warning"): | |
return value | |
return None | |
def save_response_content(response, destination): | |
CHUNK_SIZE = 32768 | |
with open(destination, "wb") as f: | |
for chunk in response.iter_content(CHUNK_SIZE): | |
if chunk: # filter out keep-alive new chunks | |
f.write(chunk) | |
def main(): | |
if len(sys.argv) >= 3: | |
file_id = sys.argv[1] | |
destination = sys.argv[2] | |
else: | |
file_id = "TAKE_ID_FROM_SHAREABLE_LINK" | |
destination = "DESTINATION_FILE_ON_YOUR_DISK" | |
print(f"dowload {file_id} to {destination}") | |
download_file_from_google_drive(file_id, destination) | |
if __name__ == "__main__": | |
main() |