@@ -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