use of com.sedmelluq.discord.lavaplayer.tools.io.PersistentHttpStream in project lavaplayer by sedmelluq.
the class SoundCloudAudioTrack method attemptLoadStream.
private boolean attemptLoadStream(LocalAudioTrackExecutor localExecutor, HttpInterface httpInterface, boolean checkUnauthorized) throws Exception {
String trackUrl = sourceManager.getTrackUrlFromId(trackInfo.identifier);
log.debug("Starting SoundCloud track from URL: {}", trackUrl);
try (PersistentHttpStream stream = new PersistentHttpStream(httpInterface, new URI(trackUrl), null)) {
if (checkUnauthorized) {
int statusCode = stream.checkStatusCode();
if (statusCode == 401) {
return false;
} else if (statusCode < 200 && statusCode >= 300) {
throw new IOException("Invalid status code for soundcloud stream: " + statusCode);
}
}
processDelegate(new Mp3AudioTrack(trackInfo, stream), localExecutor);
}
return true;
}
use of com.sedmelluq.discord.lavaplayer.tools.io.PersistentHttpStream in project lavaplayer by sedmelluq.
the class VimeoAudioTrack method process.
@Override
public void process(LocalAudioTrackExecutor localExecutor) throws Exception {
try (HttpInterface httpInterface = sourceManager.getHttpInterface()) {
String playbackUrl = loadPlaybackUrl(httpInterface);
log.debug("Starting Vimeo track from URL: {}", playbackUrl);
try (PersistentHttpStream stream = new PersistentHttpStream(httpInterface, new URI(playbackUrl), null)) {
processDelegate(new MpegAudioTrack(trackInfo, stream), localExecutor);
}
}
}
use of com.sedmelluq.discord.lavaplayer.tools.io.PersistentHttpStream in project lavaplayer by sedmelluq.
the class BandcampAudioTrack method process.
@Override
public void process(LocalAudioTrackExecutor localExecutor) throws Exception {
try (HttpInterface httpInterface = sourceManager.getHttpInterface()) {
log.debug("Loading Bandcamp track page from URL: {}", trackInfo.identifier);
String trackMediaUrl = getTrackMediaUrl(httpInterface);
log.debug("Starting Bandcamp track from URL: {}", trackMediaUrl);
try (PersistentHttpStream stream = new PersistentHttpStream(httpInterface, new URI(trackMediaUrl), null)) {
processDelegate(new Mp3AudioTrack(trackInfo, stream), localExecutor);
}
}
}
use of com.sedmelluq.discord.lavaplayer.tools.io.PersistentHttpStream in project lavaplayer by sedmelluq.
the class HttpAudioSourceManager method detectContainerWithClient.
private MediaContainerDetectionResult detectContainerWithClient(HttpInterface httpInterface, AudioReference reference) 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);
return MediaContainerDetection.detectContainer(reference, inputStream, hints);
} catch (URISyntaxException e) {
throw new FriendlyException("Not a valid URL.", COMMON, e);
}
}
use of com.sedmelluq.discord.lavaplayer.tools.io.PersistentHttpStream in project SkyBot by duncte123.
the class ClypitAudioSourceManager method detectContainerWithClient.
private MediaContainerDetectionResult detectContainerWithClient(HttpInterface httpInterface, AudioReference reference) 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);
return MediaContainerDetection.detectContainer(reference, inputStream, hints);
} catch (URISyntaxException e) {
throw new FriendlyException("Not a valid URL.", COMMON, e);
}
}
Aggregations