init: kompletní struktura /dnes, vyčištěná administrativa a mpd patch
This commit is contained in:
Executable
+58
@@ -0,0 +1,58 @@
|
||||
#!/usr/bin/env python3
|
||||
import os
|
||||
from google.auth.transport.requests import Request
|
||||
from google.oauth2.credentials import Credentials
|
||||
from google_auth_oauthlib.flow import InstalledAppFlow
|
||||
from google.api_core.retry import Retry
|
||||
from googleapiclient.discovery import build
|
||||
from googleapiclient.http import MediaFileUpload
|
||||
|
||||
SCOPES = ["https://www.googleapis.com/auth/youtube.upload"]
|
||||
|
||||
def authenticate():
|
||||
creds = None
|
||||
if os.path.exists("token.json"):
|
||||
creds = Credentials.from_authorized_user_file("token.json", SCOPES)
|
||||
|
||||
if not creds or not creds.valid:
|
||||
if creds and creds.expired and creds.refresh_token:
|
||||
creds.refresh(Request())
|
||||
else:
|
||||
flow = InstalledAppFlow.from_client_secrets_file("client_secret.json", SCOPES)
|
||||
creds = flow.run_local_server(port=0)
|
||||
|
||||
with open("token.json", "w") as token:
|
||||
token.write(creds.to_json())
|
||||
|
||||
return creds
|
||||
|
||||
def upload_video(file_path, title, description, category="22", privacy="private"):
|
||||
creds = authenticate()
|
||||
youtube = build("youtube", "v3", credentials=creds)
|
||||
|
||||
body = {
|
||||
"snippet": {
|
||||
"title": title,
|
||||
"description": description,
|
||||
"tags": ["test"],
|
||||
"categoryId": category
|
||||
},
|
||||
"status": {
|
||||
"privacyStatus": privacy
|
||||
}
|
||||
}
|
||||
|
||||
media = MediaFileUpload(file_path, mimetype="video/mp4", resumable=True)
|
||||
request = youtube.videos().insert(part="snippet,status", body=body, media_body=media)
|
||||
|
||||
response = None
|
||||
while response is None:
|
||||
status, response = request.next_chunk()
|
||||
if status:
|
||||
print(f"Upload progress: {int(status.progress() * 100)}%")
|
||||
|
||||
print(f"Video uploaded! Video ID: {response['id']}")
|
||||
|
||||
if __name__ == "__main__":
|
||||
upload_video("your_video.mp4", "My Video Title", "My description", privacy="public")
|
||||
|
||||
Reference in New Issue
Block a user