2015-07-26 1 views
0

Я использую youtube-dl, чтобы получить URL двоичного потока видео на YouTube, что по какой-то причине я хотел бы, чтобы загрузить, я делаю это так:Блочная загрузить в Scala/Java

youtube-dl -f bestaudio -g --skip-download https://www.youtube.com/watch?v=nk5YtLYcH74

После того как я есть URL, я свернуться его, как-то вроде этого:

https://r6---sn-gqn-vhgl.googlevideo.com/videoplayback\?id\=afe82f21e356....

или я мог бы направить вывод в файл, конечно, но это закон t объяснить. Я хотел бы загрузить его, но не с завитком, а с клиентом Scala HTTP, на данный момент akka-http. Но таким образом я получаю:

IllegalResponseException: Response Content-Length 195022703 exceeds the configured limit of 8388608

Я знаю, что это большой поток, но как локон делать это автоматически? Как он запрашивает куски или как это работает, как мне написать его в Scala/Java?

Некоторый код и more:

val connectionFlow = Http().outgoingConnectionTls(hostname) 
val responseFuture = 
    Source.single(HttpRequest(uri = path, method = GET)) 
    .via(connectionFlow) 
    .runWith(Sink.foreach[HttpResponse] { r => 
     logger.info(s"${r.status}") 
    }) 
+1

«Как локон сделать это автоматически?» -> не имея предела. – immibis

ответ

1

По умолчанию контента длина 8M для Акку-HTTP.

Увеличьте значение max-content-length для анализа клиента akka http в файле application.conf, и оно должно работать нормально.

akka.http.client.parsing.max-content-length =78m 

больше о конфе и информации по этой ссылке http://doc.akka.io/docs/akka-stream-and-http-experimental/1.0/scala/http/configuration.html

+0

Спасибо, что только что убил мой вопрос :)) Я действительно хотел обработать куски и утилиту, чтобы определить, как большие пакеты должны поступать данными, и в реактивном потоке с противодавлением. Я буду продолжать пытаться понять это. –

Смежные вопросы