У меня есть файл изображения в памяти в виде объекта io.BytesIO
, созданный с помощью Подушки. С этим объектом проблем нет, так как я могу записать его содержимое на диск и получить ожидаемый образ.
Моя проблема связана с клиентом API Python YouTube, так как его реализация метода thumbnails.set , похоже, не поддерживает загрузку чего-либо, кроме путей к файлам, существующим на диске или? MediaFileUpload
объект, который, как доказала его документация и мои эксперименты, страдает от той же проблемы только принятия путей.
Мой текущий код выглядит следующим образом:
youtube.thumbnails().set(
videoId = video_response["id"],
media_body = thumbnail_image
).execute()
Где thumbnail_image
- мой io.BytesIO
объект.
Я также попытался передать thumbnail_image.getvalue()
, но безрезультатно. Ошибка одинакова в обоих случаях:
File "C:\Users\smwle\OneDrive\Desktop\Pylights\Modules\YouTubeUpload.py", line 75, in upload_video
media_body = thumbnail_image.getvalue()
File "I:\Programs\Python\lib\site-packages\googleapiclient\discovery.py", line 820, in method
raise TypeError('media_filename must be str or MediaUpload.')
TypeError: media_filename must be str or MediaUpload.
Есть ли способ сделать то, что я пытаюсь? Если нет, есть ли альтернатива без использования клиента API?