Skip to content

Commit 4d5631a

Browse files
authored
Добавление загрузки видео
Добавляет возможность грузить видео по ссылке или файлом через метод https://vk.com/dev/video.save Протестирована загрузка по ссылкам и просто загрузка видеофайла. Все аргументы не тестировал, но должны работать
1 parent 366225e commit 4d5631a

1 file changed

Lines changed: 60 additions & 0 deletions

File tree

vk_api/upload.py

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -195,6 +195,66 @@ def audio(self, audio, artist, title):
195195
response = self.vk.method('audio.save', response)
196196

197197
return response
198+
199+
def video(self, video, name=None, description=None,
200+
is_private=False, wallpost=False, group_id=None,
201+
album_id=None, privacy_view=None, privacy_comment=None,
202+
no_comments=False, repeat=False):
203+
204+
""" Загрузка видео
205+
206+
:param video: url для встраивания видео с внешнего сайта, например, с Youtube.
207+
или file-like объект
208+
:param name: название видеофайла
209+
:param description: описание видеофайла
210+
:param is_private: указывается 1, если видео загружается для отправки личным сообщением.
211+
После загрузки с этим параметром видеозапись не будет отображаться в списке видеозаписей
212+
пользователя и не будет доступна другим пользователям по ее идентификатору.
213+
:param wallpost: требуется ли после сохранения опубликовать запись с видео на стене.
214+
:param group_id: идентификатор сообщества, в которое будет сохранен видеофайл.
215+
По умолчанию файл сохраняется на страницу текущего пользователя.
216+
:param album_id: идентификатор альбома, в который будет загружен видео файл.
217+
:param privacy_view: настройки приватности просмотра видеозаписи в специальном формате.
218+
Приватность доступна для видеозаписей, которые пользователь загрузил в профиль.
219+
(список слов, разделенных через запятую)
220+
:param privacy_comment: настройки приватности комментирования видеозаписи в специальном формате.
221+
(https://vk.com/dev/objects/privacy)
222+
:param no_comments: 1 — закрыть комментарии (для видео из сообществ).
223+
:param repeat: зацикливание воспроизведения видеозаписи. флаг, может принимать значения 1 или 0
224+
"""
225+
226+
if hasattr(video, 'read'):
227+
video_file = video
228+
link = None
229+
230+
if hasattr(video, 'name') and not name:
231+
name = file.name
232+
else:
233+
link = video
234+
video_file = None
235+
236+
values = {
237+
'name': name,
238+
'description': description,
239+
'is_private': is_private,
240+
'wallpost': wallpost,
241+
'link': link,
242+
'group_id': group_id,
243+
'album_id': album_id,
244+
'privacy_view': privacy_view,
245+
'privacy_comment': privacy_comment,
246+
'no_comments': no_comments,
247+
'repeat': repeat
248+
}
249+
250+
url = self.vk.method('video.save', values)['upload_url']
251+
252+
response = self.vk.http.post(
253+
url,
254+
files={'video_file': video_file} if not link else None
255+
).json()
256+
257+
return response
198258

199259
def document(self, doc, title=None, tags=None, group_id=None,
200260
to_wall=False):

0 commit comments

Comments
 (0)