Skip to content

Commit 6f76370

Browse files
authored
Merge pull request #75 from shanginn/patch-2
Добавление загрузки видео
2 parents 366225e + f5dd166 commit 6f76370

1 file changed

Lines changed: 90 additions & 0 deletions

File tree

vk_api/upload.py

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

197197
return response
198+
199+
def video(self, video_file=None, link=None, 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_file: путь до файла или file-like объект.
207+
:type video_file: object, str
208+
209+
:param link: url для встраивания видео с внешнего сайта,
210+
например, с Youtube.
211+
:type link: str
212+
213+
:param name: название видеофайла
214+
:type name: str
215+
216+
:param description: описание видеофайла
217+
:type description: str
218+
219+
:param is_private: указывается 1, если видео загружается для отправки
220+
личным сообщением. После загрузки с этим параметром видеозапись
221+
не будет отображаться в списке видеозаписей пользователя и не будет
222+
доступна другим пользователям по ее идентификатору.
223+
:type is_private: bool
224+
225+
:param wallpost: требуется ли после сохранения опубликовать
226+
запись с видео на стене.
227+
:type wallpost: bool
228+
229+
:param group_id: идентификатор сообщества, в которое будет сохранен
230+
видеофайл. По умолчанию файл сохраняется на страницу текущего
231+
пользователя.
232+
:type group_id: int
233+
234+
:param album_id: идентификатор альбома, в который будет загружен
235+
видео файл.
236+
:type album_id: int
237+
238+
:param privacy_view: настройки приватности просмотра видеозаписи в
239+
специальном формате. (https://vk.com/dev/objects/privacy)
240+
Приватность доступна для видеозаписей, которые пользователь
241+
загрузил в профиль. (список слов, разделенных через запятую)
242+
:param privacy_comment: настройки приватности комментирования
243+
видеозаписи в специальном формате.
244+
(https://vk.com/dev/objects/privacy)
245+
246+
:param no_comments: 1 — закрыть комментарии (для видео из сообществ).
247+
:type no_comments: bool
248+
249+
:param repeat: зацикливание воспроизведения видеозаписи. флаг.
250+
:type repeat: bool
251+
"""
252+
253+
if not link and not video_file:
254+
raise ValueError('Either link or video_file param is required')
255+
256+
if link and video_file:
257+
raise ValueError('Both params link and video_file aren\'t allowed')
258+
259+
if video_file and not hasattr(video_file, 'read'):
260+
video_file = open(video_file, 'rb')
261+
262+
if hasattr(video_file, 'name') and not name:
263+
name = video_file.name
264+
265+
values = {
266+
'name': name,
267+
'description': description,
268+
'is_private': is_private,
269+
'wallpost': wallpost,
270+
'link': link,
271+
'group_id': group_id,
272+
'album_id': album_id,
273+
'privacy_view': privacy_view,
274+
'privacy_comment': privacy_comment,
275+
'no_comments': no_comments,
276+
'repeat': repeat
277+
}
278+
279+
response = self.vk.method('video.save', values)
280+
url = response['upload_url']
281+
282+
self.vk.http.post(
283+
url,
284+
files={'video_file': video_file} if not link else None
285+
).json()
286+
287+
return response
198288

199289
def document(self, doc, title=None, tags=None, group_id=None,
200290
to_wall=False):

0 commit comments

Comments
 (0)