Я только что проверил это.Для первого запроса вам необходимо отправить с ним заголовок:
Accept-Location: *
В противном случае он вернет 500 (Внутренняя ошибка сервера).Но с этим заголовком он вернет строку идентификатора видео YouTube, и вы можете использовать 2-й API для проверки прогресса.
Вот код C #, который я использовал для тестирования:
HttpWebRequest wr = (HttpWebRequest)WebRequest.Create("FIRST_API_URL");
wr.UserAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.7 (KHTML, like Gecko) Chrome/16.0.912.75 Safari/535.7";
wr.Headers.Add("Accept-Location", "*");
string res = (new StreamReader(wr.GetResponse().GetResponseStream())).ReadToEnd();
Кстати, вы можете отслеживать заголовки на вкладке отладки сети (Chrome) браузера.
С уважением