{"nbformat":4,"nbformat_minor":0,"metadata":{"colab":{"provenance":[]},"kernelspec":{"name":"python3","display_name":"Python 3"},"language_info":{"name":"python"}},"cells":[{"cell_type":"code","source":["# %load_ext autoreload\n","# %autoreload 2"],"metadata":{"id":"mAaspsfqKYkA"},"execution_count":null,"outputs":[]},{"cell_type":"code","source":["# %load_ext gradio"],"metadata":{"id":"8fBrlr18CB3F"},"execution_count":null,"outputs":[]},{"cell_type":"code","execution_count":null,"metadata":{"id":"6l8QdIpAB5j_"},"outputs":[],"source":["# %%blocks\n","\n","# from play_gradio import demo"]},{"cell_type":"markdown","source":["---"],"metadata":{"id":"2KNPZna6wl7f"}},{"cell_type":"code","source":["# !pip install -U google-api-python-client google-auth-httplib2 google-auth-oauthlib"],"metadata":{"id":"ExtfLnlMprwD"},"execution_count":null,"outputs":[]},{"cell_type":"code","source":["import os.path\n","\n","from google.auth.transport.requests import Request\n","from google.oauth2.credentials import Credentials\n","from google_auth_oauthlib.flow import InstalledAppFlow\n","from googleapiclient.discovery import build\n","from googleapiclient.errors import HttpError"],"metadata":{"id":"ADy9dN7bo_TC"},"execution_count":null,"outputs":[]},{"cell_type":"code","source":["# If modifying these scopes, delete the file token.json.\n","SCOPES = [\"https://www.googleapis.com/auth/drive.metadata.readonly\"]"],"metadata":{"id":"-1BrLvGaWxZ2"},"execution_count":null,"outputs":[]},{"cell_type":"code","source":["def main():\n"," \"\"\"Shows basic usage of the Drive v3 API.\n"," Prints the names and ids of the first 10 files the user has access to.\n"," \"\"\"\n"," creds = None\n"," # The file token.json stores the user's access and refresh tokens, and is\n"," # created automatically when the authorization flow completes for the first\n"," # time.\n"," if os.path.exists(\"token.json\"):\n"," creds = Credentials.from_authorized_user_file(\"token.json\", SCOPES)\n"," # If there are no (valid) credentials available, let the user log in.\n"," if not creds or not creds.valid:\n"," if creds and creds.expired and creds.refresh_token:\n"," creds.refresh(Request())\n"," else:\n"," flow = InstalledAppFlow.from_client_secrets_file(\n"," \"credentials.json\", SCOPES\n"," )\n"," creds = flow.run_local_server(port=0)\n"," # Save the credentials for the next run\n"," with open(\"token.json\", \"w\") as token:\n"," token.write(creds.to_json())\n","\n"," try:\n"," service = build(\"drive\", \"v3\", credentials=creds)\n","\n"," # Call the Drive v3 API\n"," results = (\n"," service.files()\n"," .list(pageSize=10, fields=\"nextPageToken, files(id, name)\")\n"," .execute()\n"," )\n"," items = results.get(\"files\", [])\n","\n"," if not items:\n"," print(\"No files found.\")\n"," return\n"," print(\"Files:\")\n"," for item in items:\n"," print(f\"{item['name']} ({item['id']})\")\n"," except HttpError as error:\n"," # TODO(developer) - Handle errors from drive API.\n"," print(f\"An error occurred: {error}\")"],"metadata":{"id":"-qwFweRKqBZ0"},"execution_count":null,"outputs":[]},{"cell_type":"code","source":["main()"],"metadata":{"id":"x62A2GyFqH19"},"execution_count":null,"outputs":[]},{"cell_type":"code","source":["if __name__ == \"__main__\":\n"," main()"],"metadata":{"id":"6mwHQ-vFqF-y"},"execution_count":null,"outputs":[]},{"cell_type":"code","source":[],"metadata":{"id":"xqVim7U8qBRn"},"execution_count":null,"outputs":[]},{"cell_type":"code","source":[],"metadata":{"id":"KrIr5DqVwFPR"},"execution_count":null,"outputs":[]},{"cell_type":"code","source":["import google.auth\n","from googleapiclient.discovery import build\n","from googleapiclient.errors import HttpError\n","from googleapiclient.http import MediaFileUpload"],"metadata":{"id":"bKn3EWoHtIw3"},"execution_count":null,"outputs":[]},{"cell_type":"code","source":["creds, _ = google.auth.default()"],"metadata":{"id":"siH9BRzptIhS"},"execution_count":null,"outputs":[]},{"cell_type":"code","source":["creds"],"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"Bhz_xW99tLDS","executionInfo":{"status":"ok","timestamp":1736790633770,"user_tz":-540,"elapsed":8,"user":{"displayName":"Frederikus Hudi","userId":"06823040510862360282"}},"outputId":"3271b64c-82cd-466f-8321-b5d0ddc884d6"},"execution_count":null,"outputs":[{"output_type":"execute_result","data":{"text/plain":[""]},"metadata":{},"execution_count":3}]},{"cell_type":"code","source":["service = build(\"drive\", \"v3\", credentials=creds)"],"metadata":{"id":"Z3UPsS57tIaP"},"execution_count":null,"outputs":[]},{"cell_type":"code","source":["service"],"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"FhPuaL29ziYw","executionInfo":{"status":"ok","timestamp":1736791252169,"user_tz":-540,"elapsed":9,"user":{"displayName":"Frederikus Hudi","userId":"06823040510862360282"}},"outputId":"66e7a320-3133-4647-9a73-94b4f65ca898"},"execution_count":null,"outputs":[{"output_type":"execute_result","data":{"text/plain":[""]},"metadata":{},"execution_count":11}]},{"cell_type":"code","source":["file_metadata = {\"name\": \"wow.txt\"}\n","media = MediaFileUpload(\"wow.txt\")"],"metadata":{"id":"sckvnGYtqBKw"},"execution_count":null,"outputs":[]},{"cell_type":"code","source":["media"],"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"xjvE-Mva03L0","executionInfo":{"status":"ok","timestamp":1736791259359,"user_tz":-540,"elapsed":9,"user":{"displayName":"Frederikus Hudi","userId":"06823040510862360282"}},"outputId":"5eac30fc-1da6-48c3-93ca-40e0174d1816"},"execution_count":null,"outputs":[{"output_type":"execute_result","data":{"text/plain":[""]},"metadata":{},"execution_count":12}]},{"cell_type":"code","source":["dir(media)"],"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"qK-N7udo7u1i","executionInfo":{"status":"ok","timestamp":1736793093612,"user_tz":-540,"elapsed":27,"user":{"displayName":"Frederikus Hudi","userId":"06823040510862360282"}},"outputId":"a961fd11-4fae-4473-94ab-9bc775a6335e"},"execution_count":null,"outputs":[{"output_type":"execute_result","data":{"text/plain":["['__class__',\n"," '__del__',\n"," '__delattr__',\n"," '__dict__',\n"," '__dir__',\n"," '__doc__',\n"," '__eq__',\n"," '__format__',\n"," '__ge__',\n"," '__getattribute__',\n"," '__getstate__',\n"," '__gt__',\n"," '__hash__',\n"," '__init__',\n"," '__init_subclass__',\n"," '__le__',\n"," '__lt__',\n"," '__module__',\n"," '__ne__',\n"," '__new__',\n"," '__reduce__',\n"," '__reduce_ex__',\n"," '__repr__',\n"," '__setattr__',\n"," '__sizeof__',\n"," '__str__',\n"," '__subclasshook__',\n"," '__weakref__',\n"," '_chunksize',\n"," '_fd',\n"," '_filename',\n"," '_mimetype',\n"," '_resumable',\n"," '_size',\n"," '_to_json',\n"," 'chunksize',\n"," 'from_json',\n"," 'getbytes',\n"," 'has_stream',\n"," 'mimetype',\n"," 'new_from_json',\n"," 'resumable',\n"," 'size',\n"," 'stream',\n"," 'to_json']"]},"metadata":{},"execution_count":49}]},{"cell_type":"code","source":["f = (\n"," service.files()\n"," .create(body=file_metadata, media_body=media, fields=\"id\")\n"," .execute()\n"," )\n","print(f'File ID: {file.get(\"id\")}')"],"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"HipJX087zir2","executionInfo":{"status":"ok","timestamp":1736792615979,"user_tz":-540,"elapsed":2189,"user":{"displayName":"Frederikus Hudi","userId":"06823040510862360282"}},"outputId":"19a11b14-cc18-455a-a4f1-d1a69f69c72f"},"execution_count":null,"outputs":[{"output_type":"stream","name":"stdout","text":["File ID: 1Rnx0_wttlDG8XiyA_44yHBJeQBHvR_xh\n"]}]},{"cell_type":"code","source":["f.get(\"id\"), type(f)"],"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"GoMMo7qX5-OH","executionInfo":{"status":"ok","timestamp":1736792629838,"user_tz":-540,"elapsed":10,"user":{"displayName":"Frederikus Hudi","userId":"06823040510862360282"}},"outputId":"ade9f343-a514-4e61-97f9-2550ed55223c"},"execution_count":null,"outputs":[{"output_type":"execute_result","data":{"text/plain":["('1rE4uYBWAQBFVVB6m7jGqAJncIohTJrWp', dict)"]},"metadata":{},"execution_count":22}]},{"cell_type":"code","source":["f = file.get(\"id\")"],"metadata":{"id":"usWmDGQjzijj"},"execution_count":null,"outputs":[]},{"cell_type":"code","source":["f"],"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"PFCzbG0v0nZ-","executionInfo":{"status":"ok","timestamp":1736791193891,"user_tz":-540,"elapsed":4,"user":{"displayName":"Frederikus Hudi","userId":"06823040510862360282"}},"outputId":"9c8456bd-9996-40a4-e3e6-1e3eb0aafbe9"},"execution_count":null,"outputs":[{"output_type":"execute_result","data":{"text/plain":["'1Rnx0_wttlDG8XiyA_44yHBJeQBHvR_xh'"]},"metadata":{},"execution_count":9}]},{"cell_type":"code","source":["files = service.files()"],"metadata":{"id":"oh18pUBj3Hn4"},"execution_count":null,"outputs":[]},{"cell_type":"code","source":["dir(service)"],"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"LRsVc6pQ6c_1","executionInfo":{"status":"ok","timestamp":1736792725586,"user_tz":-540,"elapsed":4,"user":{"displayName":"Frederikus Hudi","userId":"06823040510862360282"}},"outputId":"c9ba40eb-f159-4f05-f5b1-53e5e81916da"},"execution_count":null,"outputs":[{"output_type":"execute_result","data":{"text/plain":["['__class__',\n"," '__delattr__',\n"," '__dict__',\n"," '__dir__',\n"," '__doc__',\n"," '__enter__',\n"," '__eq__',\n"," '__exit__',\n"," '__format__',\n"," '__ge__',\n"," '__getattribute__',\n"," '__getstate__',\n"," '__gt__',\n"," '__hash__',\n"," '__init__',\n"," '__init_subclass__',\n"," '__le__',\n"," '__lt__',\n"," '__module__',\n"," '__ne__',\n"," '__new__',\n"," '__reduce__',\n"," '__reduce_ex__',\n"," '__repr__',\n"," '__setattr__',\n"," '__setstate__',\n"," '__sizeof__',\n"," '__str__',\n"," '__subclasshook__',\n"," '__weakref__',\n"," '_add_basic_methods',\n"," '_add_nested_resources',\n"," '_add_next_methods',\n"," '_baseUrl',\n"," '_credentials_validated',\n"," '_developerKey',\n"," '_dynamic_attrs',\n"," '_http',\n"," '_model',\n"," '_requestBuilder',\n"," '_resourceDesc',\n"," '_rootDesc',\n"," '_schema',\n"," '_set_dynamic_attr',\n"," '_set_service_methods',\n"," '_universe_domain',\n"," '_validate_credentials',\n"," 'about',\n"," 'accessproposals',\n"," 'apps',\n"," 'changes',\n"," 'channels',\n"," 'close',\n"," 'comments',\n"," 'drives',\n"," 'files',\n"," 'new_batch_http_request',\n"," 'operation',\n"," 'operations',\n"," 'permissions',\n"," 'replies',\n"," 'revisions',\n"," 'teamdrives']"]},"metadata":{},"execution_count":31}]},{"cell_type":"code","source":["dir(service.files())"],"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"40nai28V7Q9B","executionInfo":{"status":"ok","timestamp":1736792941319,"user_tz":-540,"elapsed":14,"user":{"displayName":"Frederikus Hudi","userId":"06823040510862360282"}},"outputId":"4e9488bc-9370-44a3-c5cc-8d009630dc2c"},"execution_count":null,"outputs":[{"output_type":"execute_result","data":{"text/plain":["['__class__',\n"," '__delattr__',\n"," '__dict__',\n"," '__dir__',\n"," '__doc__',\n"," '__enter__',\n"," '__eq__',\n"," '__exit__',\n"," '__format__',\n"," '__ge__',\n"," '__getattribute__',\n"," '__getstate__',\n"," '__gt__',\n"," '__hash__',\n"," '__init__',\n"," '__init_subclass__',\n"," '__le__',\n"," '__lt__',\n"," '__module__',\n"," '__ne__',\n"," '__new__',\n"," '__reduce__',\n"," '__reduce_ex__',\n"," '__repr__',\n"," '__setattr__',\n"," '__setstate__',\n"," '__sizeof__',\n"," '__str__',\n"," '__subclasshook__',\n"," '__weakref__',\n"," '_add_basic_methods',\n"," '_add_nested_resources',\n"," '_add_next_methods',\n"," '_baseUrl',\n"," '_credentials_validated',\n"," '_developerKey',\n"," '_dynamic_attrs',\n"," '_http',\n"," '_model',\n"," '_requestBuilder',\n"," '_resourceDesc',\n"," '_rootDesc',\n"," '_schema',\n"," '_set_dynamic_attr',\n"," '_set_service_methods',\n"," '_universe_domain',\n"," '_validate_credentials',\n"," 'close',\n"," 'copy',\n"," 'create',\n"," 'delete',\n"," 'download',\n"," 'emptyTrash',\n"," 'export',\n"," 'export_media',\n"," 'generateIds',\n"," 'get',\n"," 'get_media',\n"," 'list',\n"," 'listLabels',\n"," 'listLabels_next',\n"," 'list_next',\n"," 'modifyLabels',\n"," 'update',\n"," 'watch']"]},"metadata":{},"execution_count":34}]},{"cell_type":"code","source":["files.delete(fileId=\"1Rnx0_wttlDG8XiyA_44yHBJeQBHvR_xh\").execute()"],"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"9zlanjZ96Yz9","executionInfo":{"status":"ok","timestamp":1736793000575,"user_tz":-540,"elapsed":896,"user":{"displayName":"Frederikus Hudi","userId":"06823040510862360282"}},"outputId":"d6ed9310-2efb-48d1-90e5-d5b0bd9536f6"},"execution_count":null,"outputs":[{"output_type":"execute_result","data":{"text/plain":["''"]},"metadata":{},"execution_count":40}]},{"cell_type":"code","source":["files.list().execute()"],"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"4guAyYqt7ehH","executionInfo":{"status":"ok","timestamp":1736793001570,"user_tz":-540,"elapsed":441,"user":{"displayName":"Frederikus Hudi","userId":"06823040510862360282"}},"outputId":"d96fe0c6-71b7-4bc3-8add-afbff7bbb054"},"execution_count":null,"outputs":[{"output_type":"execute_result","data":{"text/plain":["{'kind': 'drive#fileList',\n"," 'incompleteSearch': False,\n"," 'files': [{'kind': 'drive#file',\n"," 'mimeType': 'application/vnd.google-apps.folder',\n"," 'id': '1qStKuVerAQPsXagngfzlNg8PdAR5hupA',\n"," 'name': 'afureteshimau'}]}"]},"metadata":{},"execution_count":41}]},{"cell_type":"code","source":["ret = (\n"," files\n"," .create(body=, media_body=media)\n"," .execute()\n",")"],"metadata":{"id":"qS4ithoH7lBq"},"execution_count":null,"outputs":[]},{"cell_type":"code","source":["results = (\n"," service.files()\n"," .list(pageSize=10, fields=\"nextPageToken, files(id, name)\")\n"," .execute()\n"," )"],"metadata":{"id":"DJQwlCAq1IDz"},"execution_count":null,"outputs":[]},{"cell_type":"code","source":["results.get(\"files\", [])"],"metadata":{"id":"kKSZI82R1J2s"},"execution_count":null,"outputs":[]},{"cell_type":"code","source":[],"metadata":{"id":"qED1Eo_zKI4o"},"execution_count":null,"outputs":[]}]}