Как я могу опубликовать на Tumblr встроенное видео с помощью API Tumblr?

Я хотел бы опубликовать видео на Tumblr от имени пользователя с помощью API Tumblr (после получения токена доступа). Он отлично работает с видео на YouTube / Vimeo, но не при указании определенного URL-адреса видео (фактически не загружая его с нуля), например, этого видео. Я хочу, чтобы мое видео можно было воспроизводить на панели инструментов Tumblr (и в блоге пользователя).

Я использую следующую конечную точку: https://api.tumblr.com/v2/blog/myblog.tumblr.com/postHere со следующими параметрами:

params = {'type': 'video', 'caption': 'my cool video post!', 'embed': 'https://d22d7v2y1t140g.cloudfront.net/m_8386091_p64lvWa7cCG7.mov.mp4', 'format': "html"}

Как я могу сделать что-то подобное для других типов видео?

3 ответа

Решение

Вот один из рекомендуемых способов, используя pytumblr внешняя библиотека:

import pytumblr
client = pytumblr.TumblrRestClient(
    '<consumer_key>',
    '<consumer_secret>',
    '<oauth_token>',
    '<oauth_secret>',
)
# Now that you're established, look at the client.create_video method.
client.create_video(**kwargs)

Для дальнейшего изучения того, какие параметры он принимает, см. Источник, в частности data значение, которое представляет собой строку локального пути для загрузки или embed значение, которое является разделом HTML-кода, который будет загружать ваше внешнее размещенное видео.

Информацию о том, как должен выглядеть тег embed, вы можете увидеть в объекте ответа примера api:

{
  "width": 250,
  "embed_code": "<object width=\"248\" height=\"169\"><param
     name=\"movie\" value=\"http:\/\/www.youtube.com\/
     v\/4Q1aI7xPo0Y&rel=0&egm=0&
     showinfo=0&fs=1\"><\/param><param name=\"wmode\"
     value=\"transparent\"><\/param><param name=\"
     allowFullScreen\" value=\"true\"><\/param><embed
     src=\"http:\/\/www.youtube.com\/v\/
     4Q1aI7xPo0Y&rel=0&egm=0&showinfo=
     0&fs=1\" type=\"application\/x-shockwave-flash\"
     width=\"248\" height=\"169\" allowFullScreen=\"true\"
     wmode=\"transparent\"><\/embed><\/object>"

}

Ниже приведен параметр для видео поста в Tumblr

$params = array(
   'type' => 'video',
   'caption' => 'caption',
   'embed'=> '<iframe 
                 width="560" 
                 height="315" 
                 src="you youtube url" 
                 frameborder="0" 
                 allow="autoplay; encrypted-media" 
                 allowfullscreen></iframe>'
);

Вы можете отправить видеофайл с вашего сервера, вставив HTML5-видео следующим образом:

$params = array(
   'type' => 'video',
   'caption' => 'caption',
   'embed'=> '<video width="100%" height="auto" controls><source src="/path/to/video" type="video/mp4">Your browser does not support the video tag.</video>'
);
Другие вопросы по тегам