mirror of
https://github.com/TeamNewPipe/NewPipe.git
synced 2024-11-22 02:53:09 +01:00
implemented optimised version of YoutubeExtractor.getVideoId().
new version uses a regular expression instead of creating a HashMap and looping over them. Needs testing before pushing to origin
This commit is contained in:
parent
873564f2aa
commit
3411b53450
@ -24,7 +24,7 @@ package org.schabi.newpipe;
|
|||||||
public enum MediaFormat {
|
public enum MediaFormat {
|
||||||
// id name suffix mime type
|
// id name suffix mime type
|
||||||
MPEG_4 (0x0, "MPEG-4", "mp4", "video/mp4"),
|
MPEG_4 (0x0, "MPEG-4", "mp4", "video/mp4"),
|
||||||
v3GPP (0x1, "3GPP", "3gp", "video/3gpp"),
|
v3GPP (0x1, "3GPP", "3gp", "video/3gpp"),
|
||||||
WEBM (0x2, "WebM", "webm", "video/webm"),
|
WEBM (0x2, "WebM", "webm", "video/webm"),
|
||||||
M4A (0x3, "m4a", "m4a", "audio/mp4"),
|
M4A (0x3, "m4a", "m4a", "audio/mp4"),
|
||||||
WEBMA (0x4, "WebM", "webm", "audio/webm");
|
WEBMA (0x4, "WebM", "webm", "audio/webm");
|
||||||
|
@ -67,8 +67,7 @@ public class VideoItemDetailActivity extends AppCompatActivity {
|
|||||||
arguments.putInt(VideoItemDetailFragment.STREAMING_SERVICE, i);
|
arguments.putInt(VideoItemDetailFragment.STREAMING_SERVICE, i);
|
||||||
try {
|
try {
|
||||||
currentStreamingService = i;
|
currentStreamingService = i;
|
||||||
extractor = ServiceList.getService(i)
|
extractor = ServiceList.getService(i).getExtractorInstance();
|
||||||
.getExtractorInstance();
|
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
|
@ -130,6 +130,26 @@ public class YoutubeExtractor implements Extractor {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getVideoId(String videoUrl) {
|
||||||
|
//https://www.youtube.com/watch?v=laF2D3QyAFQ
|
||||||
|
String id;
|
||||||
|
Pattern pat;
|
||||||
|
if(videoUrl.contains("youtube")) {
|
||||||
|
pat = Pattern.compile("youtube\\.com/watch\\?v=([a-zA-Z0-9_]{11})");
|
||||||
|
}
|
||||||
|
else if(videoUrl.contains("youtu.be")) {
|
||||||
|
pat = Pattern.compile("youtu\\.be/([a-zA-Z0-9_]{11})");
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
Log.e(TAG, "Error could not parse url: " + videoUrl);
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
Matcher mat = pat.matcher(videoUrl);
|
||||||
|
id = mat.group(1);
|
||||||
|
return (id == null ? "" : id);
|
||||||
|
}
|
||||||
|
/*
|
||||||
@Override
|
@Override
|
||||||
public String getVideoId(String videoUrl) {
|
public String getVideoId(String videoUrl) {
|
||||||
try {
|
try {
|
||||||
@ -165,7 +185,7 @@ public class YoutubeExtractor implements Extractor {
|
|||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
@Override
|
@Override
|
||||||
public String getVideoUrl(String videoId) {
|
public String getVideoUrl(String videoId) {
|
||||||
return "https://www.youtube.com/watch?v=" + videoId;
|
return "https://www.youtube.com/watch?v=" + videoId;
|
||||||
|
Loading…
Reference in New Issue
Block a user