mirror of
https://github.com/storytold/storyteller-ml.git
synced 2026-10-13 23:53:02 +00:00
49 lines
1.2 KiB
Python
49 lines
1.2 KiB
Python
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", encoding='utf-8') 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() |