Skip to content

Commit 9c715d7

Browse files
committed
Fixed Soundcloud test: Return EVERYTHING that is found
deduplication should be done by the extractor
1 parent 34d11af commit 9c715d7

4 files changed

Lines changed: 8 additions & 169 deletions

File tree

extractor/src/main/java/org/schabi/newpipe/extractor/services/soundcloud/extractors/SoundcloudStreamExtractor.java

Lines changed: 2 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,6 @@
3434
import org.schabi.newpipe.extractor.streamdata.format.registry.AudioFormatRegistry;
3535
import org.schabi.newpipe.extractor.streamdata.stream.AudioStream;
3636
import org.schabi.newpipe.extractor.streamdata.stream.simpleimpl.SimpleAudioStreamImpl;
37-
import org.schabi.newpipe.extractor.streamdata.stream.util.NewPipeStreamCollectors;
3837

3938
import java.io.IOException;
4039
import java.io.UnsupportedEncodingException;
@@ -44,6 +43,7 @@
4443
import java.util.List;
4544
import java.util.Objects;
4645
import java.util.Optional;
46+
import java.util.stream.Collectors;
4747

4848
import javax.annotation.Nonnull;
4949
import javax.annotation.Nullable;
@@ -185,15 +185,6 @@ public List<AudioStream> getAudioStreams() throws ExtractionException {
185185
}
186186
}
187187

188-
private static boolean checkMp3ProgressivePresence(@Nonnull final JsonArray transcodings) {
189-
return transcodings.stream()
190-
.filter(JsonObject.class::isInstance)
191-
.map(JsonObject.class::cast)
192-
.anyMatch(transcoding -> transcoding.getString("preset").contains("mp3")
193-
&& transcoding.getObject("format").getString("protocol")
194-
.equals("progressive"));
195-
}
196-
197188
@Nonnull
198189
private String getTranscodingUrl(final String endpointUrl,
199190
final String protocol)
@@ -237,8 +228,6 @@ private List<AudioStream> extractAudioStreams() {
237228
return Collections.emptyList();
238229
}
239230

240-
final boolean mp3ProgressiveInStreams = checkMp3ProgressivePresence(transcodings);
241-
242231
return transcodings.stream()
243232
.filter(JsonObject.class::isInstance)
244233
.map(JsonObject.class::cast)
@@ -262,11 +251,6 @@ private List<AudioStream> extractAudioStreams() {
262251
final AudioMediaFormat mediaFormat;
263252
final int averageBitrate;
264253
if (preset.contains("mp3")) {
265-
// Don't add the MP3 HLS stream if there is a progressive stream present
266-
// because the two have the same bitrate
267-
if (mp3ProgressiveInStreams && protocol.equals("hls")) {
268-
return null;
269-
}
270254
mediaFormat = AudioFormatRegistry.MP3;
271255
averageBitrate = 128;
272256
} else if (preset.contains("opus")) {
@@ -285,7 +269,7 @@ private List<AudioStream> extractAudioStreams() {
285269
);
286270
})
287271
.filter(Objects::nonNull)
288-
.collect(NewPipeStreamCollectors.toDistinctList());
272+
.collect(Collectors.toList());
289273
}
290274

291275
/**

extractor/src/main/java/org/schabi/newpipe/extractor/streamdata/stream/util/NewPipeStreamCollectors.java

Lines changed: 0 additions & 98 deletions
This file was deleted.

extractor/src/main/java/org/schabi/newpipe/extractor/streamdata/stream/util/NewPipeStreamUtil.java

Lines changed: 0 additions & 38 deletions
This file was deleted.

extractor/src/test/java/org/schabi/newpipe/extractor/services/soundcloud/SoundcloudStreamExtractorTest.java

Lines changed: 6 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
import org.schabi.newpipe.extractor.services.DefaultStreamExtractorTest;
1717
import org.schabi.newpipe.extractor.stream.StreamExtractor;
1818
import org.schabi.newpipe.extractor.streamdata.delivery.ProgressiveHTTPDeliveryData;
19+
import org.schabi.newpipe.extractor.streamdata.delivery.UrlBasedDeliveryData;
1920
import org.schabi.newpipe.extractor.streamdata.format.registry.AudioFormatRegistry;
2021
import org.schabi.newpipe.extractor.streamdata.stream.AudioStream;
2122

@@ -191,30 +192,20 @@ public void testAudioStreams() throws Exception {
191192
super.testAudioStreams();
192193

193194
final List<AudioStream> audioStreams = extractor.getAudioStreams();
194-
assertEquals(2, audioStreams.size());
195+
assertEquals(3, audioStreams.size());
195196

196197
for (final AudioStream audioStream : audioStreams) {
197-
assertTrue(audioStream.deliveryData() instanceof ProgressiveHTTPDeliveryData,
198+
assertTrue(audioStream.deliveryData() instanceof UrlBasedDeliveryData,
198199
"Wrong delivery method for mediaFormat=" + audioStream.mediaFormat()
199200
+ " , avgBR=" + audioStream.averageBitrate()
200201
+ " , deliverDataType=" + audioStream.deliveryData().getClass()
201202
);
202203

203-
final ProgressiveHTTPDeliveryData deliveryData =
204-
(ProgressiveHTTPDeliveryData) audioStream.deliveryData();
204+
final UrlBasedDeliveryData deliveryData =
205+
(UrlBasedDeliveryData) audioStream.deliveryData();
205206

206207
final String mediaUrl = deliveryData.url();
207-
if (audioStream.mediaFormat() == AudioFormatRegistry.OPUS) {
208-
// Assert that it's an OPUS 64 kbps media URL with a single range which comes
209-
// from an HLS SoundCloud CDN
210-
ExtractorAsserts.assertContains("-hls-opus-media.sndcdn.com", mediaUrl);
211-
ExtractorAsserts.assertContains(".64.opus", mediaUrl);
212-
} else if (audioStream.mediaFormat() == AudioFormatRegistry.MP3) {
213-
// Assert that it's a MP3 128 kbps media URL which comes from a progressive
214-
// SoundCloud CDN
215-
ExtractorAsserts.assertContains("-media.sndcdn.com/bKOA7Pwbut93.128.mp3",
216-
mediaUrl);
217-
}
208+
ExtractorAsserts.assertContains("-media.sndcdn.com", mediaUrl);
218209
}
219210
}
220211
}

0 commit comments

Comments
 (0)