diff --git a/app/src/main/java/org/schabi/newpipe/VideoInfoItemViewCreator.java b/app/src/main/java/org/schabi/newpipe/VideoInfoItemViewCreator.java
index 5bb89e931..9c71a1bde 100644
--- a/app/src/main/java/org/schabi/newpipe/VideoInfoItemViewCreator.java
+++ b/app/src/main/java/org/schabi/newpipe/VideoInfoItemViewCreator.java
@@ -1,7 +1,5 @@
package org.schabi.newpipe;
-import android.content.Context;
-import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
@@ -33,7 +31,7 @@ import com.nostra13.universalimageloader.core.ImageLoader;
* along with NewPipe. If not, see .
*/
-class VideoInfoItemViewCreator {
+public class VideoInfoItemViewCreator {
private final LayoutInflater inflater;
private ImageLoader imageLoader = ImageLoader.getInstance();
private DisplayImageOptions displayImageOptions = new DisplayImageOptions.Builder().cacheInMemory(true).build();
diff --git a/app/src/main/java/org/schabi/newpipe/extractor/services/youtube/YoutubeSearchEngine.java b/app/src/main/java/org/schabi/newpipe/extractor/services/youtube/YoutubeSearchEngine.java
index 39cb42d7d..0b0c147fc 100644
--- a/app/src/main/java/org/schabi/newpipe/extractor/services/youtube/YoutubeSearchEngine.java
+++ b/app/src/main/java/org/schabi/newpipe/extractor/services/youtube/YoutubeSearchEngine.java
@@ -220,7 +220,7 @@ public class YoutubeSearchEngine extends SearchEngine {
// -1 for no duration
return -1;
} else {
- throw new ParsingException("Could not get Duration", e);
+ throw new ParsingException("Could not get Duration: " + getTitle(), e);
}
@@ -263,7 +263,7 @@ public class YoutubeSearchEngine extends SearchEngine {
return -1;
} else {
throw new ParsingException(
- "Could not parse yt-lockup-meta although available", e);
+ "Could not parse yt-lockup-meta although available: " + getTitle(), e);
}
}
@@ -305,6 +305,14 @@ public class YoutubeSearchEngine extends SearchEngine {
private boolean isLiveStream(Element item) {
Element bla = item.select("span[class*=\"yt-badge-live\"]").first();
+
+ if(bla == null) {
+ // sometimes livestreams dont have badges but sill are live streams
+ // if video time is not available we most likly have an offline livestream
+ if(item.select("span[class*=\"video-time\"]").first() == null) {
+ return true;
+ }
+ }
return bla != null;
}
};
diff --git a/app/src/main/res/layout/against_drm_fragment.xml b/app/src/main/res/layout/against_drm_fragment.xml
new file mode 100644
index 000000000..be73ca72a
--- /dev/null
+++ b/app/src/main/res/layout/against_drm_fragment.xml
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
+
\ No newline at end of file