C # Потоковое видео с URL - PullRequest
0 голосов
/ 01 апреля 2019

Я пытаюсь транслировать видео с Google Диска с помощью служебной учетной записи. У меня все работает, но элементы управления видео (пауза / перемотка вперед / перемотка назад / поиск / и т. Д.) Не работают.

Я попытался использовать пару прокси-решений, но все они выдавали мне ошибку 403 в браузере. См. ProxyKit для примера того, что я пытался.

Приведенный ниже код воспроизводит видео в браузере, мне просто нужно выяснить, как заставить работать элементы управления. Я подозреваю, что мне нужно проверить заголовки и передать правильные заголовки в запрос к Google Drive.

[HttpGet("{id}")]
public async Task<IActionResult> GetAsync([FromRoute] string id, [FromQuery] int? quality)
{
    HttpResponseMessage result = null;
    using (var httpClient = new HttpClient())
    {
        httpClient.DefaultRequestHeaders.Authorization = await this._TokenManager.GetGoogleDriveAuthHeaderAsync();
        result = await httpClient.GetAsync($"https://drive.google.com/get_video_info?docid={id}");
        var actualResult = await result.Content.ReadAsStringAsync();
        var videoInfo = this._VideoInfoParser.Parse(actualResult);
        // Default to 360p for now
        var q = videoInfo.maps.Where(m => m.quality == "medium").FirstOrDefault();
        return new FileStreamResult(await httpClient.GetStreamAsync(q.url), "video/mp4");
    }
}
...