43 lines
1.4 KiB
Python
43 lines
1.4 KiB
Python
#!/usr/bin/env python3
|
|
import json
|
|
|
|
from google.oauth2.credentials import Credentials
|
|
from google.auth.transport.requests import Request
|
|
from googleapiclient.discovery import build
|
|
|
|
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'],
|
|
token_uri=creds_data['token_uri'],
|
|
client_id=creds_data['client_id'],
|
|
client_secret=creds_data['client_secret'],
|
|
scopes=creds_data['scopes']
|
|
)
|
|
|
|
# Refresh token if expired
|
|
if credentials.expired:
|
|
credentials.refresh(Request())
|
|
|
|
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
|
|
|
|
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 |