CoolFace
Apppublic

MarneMorgan/piper_ffmpeg

sourceHugging Faceupdated 9mo agoView on Hugging Face
0likes
drive.py39 linesDownload Raw Back to root
1import os, json2from google.oauth2.service_account import Credentials3from googleapiclient.discovery import build4from googleapiclient.http import MediaFileUpload5 6SCOPES = ["https://www.googleapis.com/auth/drive.file"]7 8def _get_env(name: str) -> str:9    v = os.getenv(name, "").strip()10    if not v:11        raise RuntimeError(f"Missing env secret: {name}")12    return v13 14def _get_drive_service():15    creds_json = _get_env("GOOGLE_SERVICE_ACCOUNT_JSON")16    info = json.loads(creds_json)17    creds = Credentials.from_service_account_info(info, scopes=SCOPES)18    return build("drive", "v3", credentials=creds, cache_discovery=False)19 20def upload_file(local_path: str, filename: str, mime_type: str):21    folder_id = _get_env("DRIVE_FOLDER_ID")22    service = _get_drive_service()23 24    file_metadata = {"name": filename, "parents": [folder_id]}25    media = MediaFileUpload(local_path, mimetype=mime_type, resumable=True)26 27    created = service.files().create(28        body=file_metadata,29        media_body=media,30        fields="id, webViewLink"31    ).execute()32 33    file_id = created["id"]34    return {35        "driveFileId": file_id,36        "webViewLink": created.get("webViewLink"),37        "directDownloadLink": f"https://drive.google.com/uc?id={file_id}"38    }39