From ee93c06f7d81e2101394b0810a545a28085d9cb7 Mon Sep 17 00:00:00 2001 From: SumGuyV5 Date: Mon, 21 Sep 2026 20:21:13 +0000 Subject: [PATCH] Created new get_youtube_server that loads and youtube Credentials --- package/youtube/config.py | 27 +++++++++++++++++---------- package/youtube/find_tags.py | 6 ++---- package/youtube/uploader.py | 8 ++------ 3 files changed, 21 insertions(+), 20 deletions(-) diff --git a/package/youtube/config.py b/package/youtube/config.py index 1c4269b..df1c88d 100644 --- a/package/youtube/config.py +++ b/package/youtube/config.py @@ -3,15 +3,14 @@ import json from google.oauth2.credentials import Credentials from google.auth.transport.requests import Request +from googleapiclient.discovery import build -CREDENTIALS = None - -def load_credentials() -> Credentials: - """Load credentials from secrets.json""" +def get_youtube_service(): + """Get the YouTube service using the loaded credentials.""" try: with open('secrets.json', 'r') as f: creds_data = json.load(f) - + credentials = Credentials( token=creds_data['token'], refresh_token=creds_data['refresh_token'], @@ -20,17 +19,25 @@ def load_credentials() -> Credentials: client_secret=creds_data['client_secret'], scopes=creds_data['scopes'] ) - + # Refresh token if expired if credentials.expired: credentials.refresh(Request()) - - return credentials + except FileNotFoundError: print("Error: secrets.json not found! Please run setup.py first.") return None except Exception as e: print(f"Error loading credentials: {str(e)}") return None - -CREDENTIALS = load_credentials() \ No newline at end of file + + if credentials is None: + print("Error: Credentials not loaded. Please check secrets.json.") + return None + + try: + youtube_service = build('youtube', 'v3', credentials=credentials) + return youtube_service + except Exception as e: + print(f"Error creating YouTube service: {str(e)}") + return None \ No newline at end of file diff --git a/package/youtube/find_tags.py b/package/youtube/find_tags.py index 8fdb315..d7e40b2 100755 --- a/package/youtube/find_tags.py +++ b/package/youtube/find_tags.py @@ -97,10 +97,8 @@ def scan_channel_videos_for_tag(youtube: build, uploads_playlist_id: str, target def find_tags(): - if not config.CREDENTIALS: - return - - youtube = build('youtube', 'v3', credentials=config.CREDENTIALS) + + youtube = config.get_youtube_service() # 1. Fetch your dynamic uploads playlist pointer uploads_id = get_my_uploads_playlist_id(youtube) diff --git a/package/youtube/uploader.py b/package/youtube/uploader.py index da96528..296f5dc 100755 --- a/package/youtube/uploader.py +++ b/package/youtube/uploader.py @@ -55,13 +55,9 @@ def upload_video(file_path: str, title: str, category: CategoryId, description: print(f"❌ Error: File not found: {file_path}") return None - # Load credentials - if not config.CREDENTIALS: - print("❌ Error: YouTube API credentials not configured.") - return None - + # Create YouTube API client - youtube = build('youtube', 'v3', credentials=config.CREDENTIALS) + youtube = config.get_youtube_service() # Configure the status object dynamically status_body = {