Appearance
YouTube
YouTube uses a dedicated Google OAuth connection for channel uploads.
Connect
Add this callback to the Google OAuth Web application:
text
https://auth.genium.one/callback/youtubeCreate a one-time connection URL:
bash
curl -X POST https://auth.genium.one/api/social/connect-ticket \
-H "Authorization: Bearer $USER_API_KEY" \
-H "Content-Type: application/json" \
-d '{"provider":"youtube"}'Open the returned connect_url, then list connected channels:
bash
curl https://auth.genium.one/api/youtube/channels \
-H "Authorization: Bearer $USER_API_KEY"Upload a local video
privacy_status accepts private, unlisted, or public. Missing or invalid values default to private.
bash
curl -X POST https://auth.genium.one/api/youtube/videos \
-H "Authorization: Bearer $USER_API_KEY" \
-F "video=@video.mp4;type=video/mp4" \
-F "title=Video title" \
-F "description=Video description #hashtag" \
-F "privacy_status=private"Reuse R2 media
bash
curl -X POST https://auth.genium.one/api/youtube/videos \
-H "Authorization: Bearer $USER_API_KEY" \
-H "Content-Type: application/json" \
-d '{"media_key":"videos/VIDEO_KEY","title":"Video title","description":"Video description","privacy_status":"unlisted"}'When media_key is used, Genium keeps the R2 object so another provider can reuse it. Local multipart uploads keep temporary-media cleanup behavior.
Status
bash
curl "https://auth.genium.one/api/youtube/status?post_id=POST_ID" \
-H "Authorization: Bearer $USER_API_KEY"Poll until PUBLISH_COMPLETE. Upload and status responses include a YouTube permalink when the video ID is available.