use of com.sedmelluq.discord.lavaplayer.tools.io.PersistentHttpStream in project FredBoat by Frederikam.
the class HttpSourceManager method detectContainerWithClient.
private MediaContainerDetectionResult detectContainerWithClient(HttpInterface httpInterface, AudioReference reference, boolean ignoreHtml) throws IOException {
try (PersistentHttpStream inputStream = new PersistentHttpStream(httpInterface, new URI(reference.identifier), Long.MAX_VALUE)) {
int statusCode = inputStream.checkStatusCode();
String redirectUrl = HttpClientTools.getRedirectLocation(reference.identifier, inputStream.getCurrentResponse());
if (redirectUrl != null) {
return new MediaContainerDetectionResult(null, new AudioReference(redirectUrl, null));
} else if (statusCode == HttpStatus.SC_NOT_FOUND) {
return null;
} else if (!HttpClientTools.isSuccessWithContent(statusCode)) {
throw new FriendlyException("That URL is not playable.", COMMON, new IllegalStateException("Status code " + statusCode));
}
MediaContainerHints hints = MediaContainerHints.from(getHeaderValue(inputStream.getCurrentResponse(), "Content-Type"), null);
/* START CUSTOM CHANGES */
MediaContainerDetectionResult detection = MediaContainerDetection.detectContainer(reference, inputStream, hints);
if (!ignoreHtml && !detection.isReference() && !detection.isContainerDetected() && hints.mimeType.startsWith("text/html")) {
return checkHtmlResponse(reference, inputStream, hints);
}
return detection;
/* END CUSTOM CHANGES */
} catch (URISyntaxException e) {
throw new FriendlyException("Not a valid URL.", COMMON, e);
}
}
use of com.sedmelluq.discord.lavaplayer.tools.io.PersistentHttpStream in project lavaplayer by sedmelluq.
the class NicoAudioTrack method process.
@Override
public void process(LocalAudioTrackExecutor localExecutor) throws Exception {
sourceManager.checkLoggedIn();
try (HttpInterface httpInterface = sourceManager.getHttpInterface()) {
loadVideoMainPage(httpInterface);
String playbackUrl = loadPlaybackUrl(httpInterface);
log.debug("Starting NicoNico track from URL: {}", playbackUrl);
try (PersistentHttpStream stream = new PersistentHttpStream(httpInterface, new URI(playbackUrl), null)) {
processDelegate(new MpegAudioTrack(trackInfo, stream), localExecutor);
}
}
}
Aggregations