Вопрос: Как добавить видео с помощью API VK?

Лучший ответ: Загружать видео можно только в том случае, если все запросы к VK API осуществляются с сервера. В документации написано, как загружать видео, но я расскажу поподробнее. Ход действий примерно такой:Загрузите видео на свой сервер.Вызовите метод video.save. Указывать какие-либо параметры не обязательно, но можете указать, например, ID группы, в которую будет добавлено видео, в параметре group_id и имя видеозаписи в параметре name.После того, как вы вызовете метод video.save, вы получите ссылку, куда надо будет загрузить вашу видеозапись. Выглядеть ответ от ВК будет примерно так:response: {
  upload_url: 'http://cs12129.vkontakte.ru/upload_video.php?act=add_video&mid=15748&oid=66748&vid=164322743&fid=0&tag=122517f2&hash=8bf2ea4bb66ca67d28fb&swfupload=1',
  vid: 164322743,
  owner_id: 66321,
  name: 'No name',
  description: '',
  access_key: 'e6822bfb86f90a149c'
}
По этому адресу методом POST отправьте видеозапись в поле video_file.В ответ на загрузку видеозаписи ВК вернёт вам ID видеозаписи:{
  "size":1234,
  "video_id":1234567
}
Это всё. Видеозапись должна будет появиться в указанном вами сообществе.
Небольшой пример на PHP:<?php

define('VK_ACCESS_TOKEN', '533bacf01e11f55b536a565b57531ac114461ae8736d6506a3');
define('VK_API_VERSION', 5.53);

// // //
// Скачиваем видео с внешнего сервера на свой сервер
// // //

$ch = curl_init();
				
curl_setopt($ch, CURLOPT_URL, 'http://cache-spb07.cdn.yandex.net/kp.cdn.yandex.net/558075/kinopoisk.ru-L_odyss__233_e-311292.mp4');
curl_setopt($ch, CURLOPT_HTTPGET, TRUE);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_BINARYTRANSFER, TRUE);

$curl_result = curl_exec($ch);

curl_close($ch);

// Кладем видео в папку со скриптом
$fp = fopen('kinopoisk.ru-L_odyss__233_e-311292.mp4', 'x');
fwrite($fp, $curl_result);
fclose($fp);

// // //
// Получаем адрес ссылки, куда загружать видео
// // //

$ch = curl_init();
$parameters = http_build_query([
    'access_token' => VK_ACCESS_TOKEN, // access_token / ключ доступа
    'v'            => VK_API_VERSION, // версия API
    'name'         => 'Имя видеозаписи',
    'description'  => 'Исчерпывающее описание нашей первой видеозаписи.',
    'group_id'     => 125004421, // ID группы
    'no_comments'  => 0 // разрешаем комментирование
]);

curl_setopt($ch, CURLOPT_URL, 'https://api.vk.com/method/video.save?' . $parameters);
curl_setopt($ch, CURLOPT_HTTPGET, TRUE);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);

$curl_result = json_decode(curl_exec($ch), TRUE); // превращаем JSON-массив, который нам вернул VK, в обычный PHP-массив

curl_close($ch);

// // //
// Загружаем видео на серверы ВК
// // //

$ch = curl_init();
$parameters = [
    'video_file' => new CURLFile('kinopoisk.ru-L_odyss__233_e-311292.mp4')  // PHP >= 5.5.0
    // 'video_file' => '@kinopoisk.ru-L_odyss__233_e-311292.mp4' // PHP < 5.5.0
];

curl_setopt($ch, CURLOPT_URL, $curl_result['response']['upload_url']);
curl_setopt($ch, CURLOPT_POST, TRUE);
curl_setopt($ch, CURLOPT_POSTFIELDS, $parameters);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_SAFE_UPLOAD, TRUE); // если PHP < 5.5.0, то эту строку надо закомментировать

$curl_result = json_decode(curl_exec($ch), TRUE);

curl_close($ch);

if (isset($curl_result['error'])) {
    exit('Строка ' . __LINE__ . ': Ошибка при загрузке видео на серверы ВК: ' . $curl_result['error'] . '.');
}

echo 'Видеозапись успешно загружена.';
Кстати, параметр link метода video.save принимает только ссылки на популярные видеохостинги, вроде YouTube. О работе через этот параметр я писал в этом вопросе.

Худший ответ: https://new.vk.com/dev/upload_files_2?f=9.%2B%D0%9...Вам нужно этим методом добавлять видео