Reputation: 586
I’m uploading a custom thumbnail for a YouTube Shorts video using the YouTube Data API v3. The API response indicates success, but the uploaded thumbnail is not applied to the video.
if thumbnail_path:
try:
# Verify thumbnail meets requirements
img = Image.open(thumbnail_path)
logging.info(f"Verifying thumbnail dimensions: {img.size}")
if img.size != (720, 1280):
logging.error(f"Invalid thumbnail dimensions: {img.size}. Expected: (720, 1280)")
img.close()
return video_id
img.close()
if os.path.getsize(thumbnail_path) > 2 * 1024 * 1024:
logging.error("Thumbnail file size exceeds 2MB limit")
return video_id
# Create MediaFileUpload object for thumbnail
thumbnail_media = MediaFileUpload(
thumbnail_path,
mimetype='image/jpeg',
resumable=False
)
# Set thumbnail with proper request
thumbnail_response = self.youtube.thumbnails().set(
videoId=video_id,
media_body=thumbnail_media
).execute()
if 'items' in thumbnail_response:
logging.info(f"Thumbnail successfully set for video {video_id}")
logging.info(f"Original thumbnail dimensions: 720x1280")
logging.info(f"YouTube generated thumbnails: {thumbnail_response['items']}")
else:
logging.warning(f"Thumbnail upload response missing items: {thumbnail_response}")
# Wait for thumbnail processing
time.sleep(10) # Increased wait time
except Exception as e:
logging.error(f"Failed to upload thumbnail: {str(e)}")
logging.error(f"Thumbnail path: {thumbnail_path}")
logging.error(f"Video ID: {video_id}")
logging.error(f"Full error: {traceback.format_exc()}")
The uploaded thumbnail meets all the documented requirements:
Is this a limitation of YouTube Shorts, or is there something specific I need to do to apply a custom thumbnail to Shorts?
Upvotes: 0
Views: 15