Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
|
@@ -14,13 +14,13 @@ from googleapiclient.errors import HttpError
|
|
| 14 |
|
| 15 |
def setup_kaggle_api():
|
| 16 |
try:
|
| 17 |
-
os.environ["KAGGLE_USERNAME"] =
|
| 18 |
-
os.environ["KAGGLE_KEY"] =
|
| 19 |
api = KaggleApi()
|
| 20 |
api.authenticate()
|
| 21 |
return api
|
| 22 |
except KeyError as e:
|
| 23 |
-
st.error(f"Missing Kaggle
|
| 24 |
st.stop()
|
| 25 |
except Exception as e:
|
| 26 |
st.error(f"Kaggle API setup failed: {e}")
|
|
@@ -28,7 +28,8 @@ def setup_kaggle_api():
|
|
| 28 |
|
| 29 |
def setup_drive_service():
|
| 30 |
try:
|
| 31 |
-
|
|
|
|
| 32 |
credentials = Credentials(
|
| 33 |
token=credentials_dict["access_token"],
|
| 34 |
refresh_token=credentials_dict["refresh_token"],
|
|
@@ -42,14 +43,18 @@ def setup_drive_service():
|
|
| 42 |
drive_service = build('drive', 'v3', credentials=credentials)
|
| 43 |
return drive_service
|
| 44 |
except KeyError as e:
|
| 45 |
-
st.error(f"Missing
|
|
|
|
|
|
|
|
|
|
| 46 |
st.stop()
|
| 47 |
except Exception as e:
|
| 48 |
st.error(f"Google Drive auth failed: {e}")
|
| 49 |
st.stop()
|
| 50 |
|
| 51 |
-
def upload_to_drive(drive_service, file_path, title, folder_id=
|
| 52 |
try:
|
|
|
|
| 53 |
file_metadata = {'name': title, 'parents': [folder_id]}
|
| 54 |
media = MediaFileUpload(file_path, resumable=True)
|
| 55 |
file = drive_service.files().create(
|
|
@@ -76,8 +81,9 @@ def delete_from_drive(drive_service, file_id):
|
|
| 76 |
except Exception as e:
|
| 77 |
st.error(f"Failed to delete file {file_id} from Drive: {e}")
|
| 78 |
|
| 79 |
-
def get_bvh_from_folder(drive_service, folder_id=
|
| 80 |
try:
|
|
|
|
| 81 |
query = f"'{folder_id}' in parents and name contains '.bvh'"
|
| 82 |
response = drive_service.files().list(q=query, fields="files(id, name, mimeType)", pageSize=1).execute()
|
| 83 |
files = response.get('files', [])
|
|
@@ -155,7 +161,7 @@ def process_video(api, drive_service, video_file):
|
|
| 155 |
video_file_id, video_shareable_link = upload_to_drive(drive_service, video_path, "input_video.mp4")
|
| 156 |
st.success(f"Video uploaded to Drive: {video_shareable_link}")
|
| 157 |
|
| 158 |
-
username =
|
| 159 |
notebook_slug = f"{username}/video-to-bvh-converter"
|
| 160 |
|
| 161 |
kernel_exists = check_kernel_exists(api, notebook_slug)
|
|
@@ -292,7 +298,7 @@ def main():
|
|
| 292 |
status_col1, status_col2 = st.columns(2)
|
| 293 |
with status_col1:
|
| 294 |
try:
|
| 295 |
-
username =
|
| 296 |
notebook_slug = f"{username}/video-to-bvh-converter"
|
| 297 |
kernel_exists = check_kernel_exists(api, notebook_slug)
|
| 298 |
if kernel_exists:
|
|
|
|
| 14 |
|
| 15 |
def setup_kaggle_api():
|
| 16 |
try:
|
| 17 |
+
os.environ["KAGGLE_USERNAME"] = os.environ.get("KAGGLE_USERNAME")
|
| 18 |
+
os.environ["KAGGLE_KEY"] = os.environ.get("KAGGLE_KEY")
|
| 19 |
api = KaggleApi()
|
| 20 |
api.authenticate()
|
| 21 |
return api
|
| 22 |
except KeyError as e:
|
| 23 |
+
st.error(f"Missing Kaggle environment variable: {e}")
|
| 24 |
st.stop()
|
| 25 |
except Exception as e:
|
| 26 |
st.error(f"Kaggle API setup failed: {e}")
|
|
|
|
| 28 |
|
| 29 |
def setup_drive_service():
|
| 30 |
try:
|
| 31 |
+
credentials_json = os.environ.get("GOOGLE_SERVICE_ACCOUNT")
|
| 32 |
+
credentials_dict = json.loads(credentials_json)
|
| 33 |
credentials = Credentials(
|
| 34 |
token=credentials_dict["access_token"],
|
| 35 |
refresh_token=credentials_dict["refresh_token"],
|
|
|
|
| 43 |
drive_service = build('drive', 'v3', credentials=credentials)
|
| 44 |
return drive_service
|
| 45 |
except KeyError as e:
|
| 46 |
+
st.error(f"Missing GOOGLE_SERVICE_ACCOUNT environment variable: {e}")
|
| 47 |
+
st.stop()
|
| 48 |
+
except json.JSONDecodeError as e:
|
| 49 |
+
st.error(f"Invalid JSON in GOOGLE_SERVICE_ACCOUNT: {e}")
|
| 50 |
st.stop()
|
| 51 |
except Exception as e:
|
| 52 |
st.error(f"Google Drive auth failed: {e}")
|
| 53 |
st.stop()
|
| 54 |
|
| 55 |
+
def upload_to_drive(drive_service, file_path, title, folder_id=None):
|
| 56 |
try:
|
| 57 |
+
folder_id = os.environ.get("DRIVE_FOLDER_ID", "1T6v7Iqc90-NA-F3I-HeHDSvEaIyFibKd")
|
| 58 |
file_metadata = {'name': title, 'parents': [folder_id]}
|
| 59 |
media = MediaFileUpload(file_path, resumable=True)
|
| 60 |
file = drive_service.files().create(
|
|
|
|
| 81 |
except Exception as e:
|
| 82 |
st.error(f"Failed to delete file {file_id} from Drive: {e}")
|
| 83 |
|
| 84 |
+
def get_bvh_from_folder(drive_service, folder_id=None):
|
| 85 |
try:
|
| 86 |
+
folder_id = os.environ.get("DRIVE_FOLDER_ID", "1T6v7Iqc90-NA-F3I-HeHDSvEaIyFibKd")
|
| 87 |
query = f"'{folder_id}' in parents and name contains '.bvh'"
|
| 88 |
response = drive_service.files().list(q=query, fields="files(id, name, mimeType)", pageSize=1).execute()
|
| 89 |
files = response.get('files', [])
|
|
|
|
| 161 |
video_file_id, video_shareable_link = upload_to_drive(drive_service, video_path, "input_video.mp4")
|
| 162 |
st.success(f"Video uploaded to Drive: {video_shareable_link}")
|
| 163 |
|
| 164 |
+
username = os.environ.get("KAGGLE_USERNAME")
|
| 165 |
notebook_slug = f"{username}/video-to-bvh-converter"
|
| 166 |
|
| 167 |
kernel_exists = check_kernel_exists(api, notebook_slug)
|
|
|
|
| 298 |
status_col1, status_col2 = st.columns(2)
|
| 299 |
with status_col1:
|
| 300 |
try:
|
| 301 |
+
username = os.environ.get("KAGGLE_USERNAME")
|
| 302 |
notebook_slug = f"{username}/video-to-bvh-converter"
|
| 303 |
kernel_exists = check_kernel_exists(api, notebook_slug)
|
| 304 |
if kernel_exists:
|