diff --git a/CREDITS b/CREDITS
index e4a2257..ead5efd 100644
--- a/CREDITS
+++ b/CREDITS
@@ -9,7 +9,7 @@
----------
N: Robert Vokac
-E: robertvokac@nanoboot.org
+E: mail@robertvokac.com
W: https://nanoboot.org
P: 4096R/E3329055 322B D109 0AA8 C324 EA9C 72F5 693D 30BE E332 9055
D: Founder
diff --git a/README.md b/README.md
index d443751..69fe7bd 100644
--- a/README.md
+++ b/README.md
@@ -2,3 +2,4 @@
ffmpeg -i "$video"mkv -preset slow -crf 18 "$video"webm
+ffmpeg -i "$video"mkv -preset slow -crf 18 -vf scale="-1:480" "$video"webm
diff --git a/src/main/java/org/nanoboot/youtubedlfrontend/Main.java b/src/main/java/org/nanoboot/youtubedlfrontend/Main.java
index 75cf9bc..5001b95 100755
--- a/src/main/java/org/nanoboot/youtubedlfrontend/Main.java
+++ b/src/main/java/org/nanoboot/youtubedlfrontend/Main.java
@@ -24,13 +24,14 @@ import java.io.IOException;
import java.nio.file.Files;
import java.util.ArrayList;
import java.util.Collections;
+import java.util.Comparator;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import static org.nanoboot.youtubedlfrontend.Args.TWO_DASHES;
/**
- * @author Robert Vokac
+ * @author Robert Vokac
* @since 0.0.0
*/
public class Main {
@@ -45,9 +46,9 @@ public class Main {
if (args.length < 1) {
//System.err.println("At least one argument is expected, but the count of arguments is: " + args.length + ".");
- String argsS = "/rv/blupi/archivebox --video_ 7qKUtn76q30 --always-generate-metadata 1"
- + " --always-generate-html-files 1 --videos-per-row 4 --thumbnail-links-to-youtube 0"
- + " --thumbnail-as-base64 1"
+ String argsS = "/rv/blupi/archivebox --video_ 7qKUtn76q30 --always-generate-metadata 0"
+ + " --always-generate-html-files 0 --videos-per-row 4 --thumbnail-links-to-youtube 0"
+ + " --thumbnail-as-base64 0"
+ " --channel_ UCqBpgfXap7cZOYkAC34u8Lg ";
args = argsS.split(" ");
//System.exit(1);
@@ -91,6 +92,22 @@ public class Main {
System.out.println("[Warning] Snapshots without videos:");
YoutubeVideo.missingYoutubeVideos.forEach(s -> System.out.println(s));
+ System.out.println("Total duration: " + ((int)((((double)YoutubeVideo.totalDurationInMilliseconds) / 1000d / 60d / 60d))) + " hours");
+ youtubeVideos.sort(new Comparator() {
+ @Override
+ public int compare(YoutubeVideo o1, YoutubeVideo o2) {
+ return Long.valueOf(o1.getVideoDurationInMilliseconds()).compareTo(o2.getVideoDurationInMilliseconds());
+ }
+ });
+ youtubeVideos.forEach(y-> {System.out.println(y.getVideoDurationInMinutes() + " = minutes \t" + "https://youtube.com/watch?v=" + y.getId() + "\t" + y.getTitle());});
+ System.out.println("\n\n\n\n");
+ youtubeVideos.sort(new Comparator() {
+ @Override
+ public int compare(YoutubeVideo o1, YoutubeVideo o2) {
+ return Long.valueOf(o1.getVideoFileSizeInBytes()).compareTo(o2.getVideoFileSizeInBytes());
+ }
+ });
+ youtubeVideos.forEach(y-> {System.out.println(y.getVideoFileSizeInMegaBytes()+ " MB \t" + "https://youtube.com/watch?v=" + y.getId() + "\t" + y.getTitle());});
}
private static StringBuilder createChannelHtml(String wantedChannelName, List channels, Args argsInstance, Map channelUrls, List youtubeVideos, File archiveBoxRootDirectory, File videosDirectory, File archiveBoxArchiveDirectory) {
@@ -168,7 +185,7 @@ public class Main {
throw new YoutubedlFrontendException(ex.getMessage());
}
} else {
- oneChannelStringBuilder.append(thumbnailPath);
+ oneChannelStringBuilder.append("../" + thumbnailPath);
}
oneChannelStringBuilder.append("\" width=\"")
.append(THUMBNAIL_WIDTH)
diff --git a/src/main/java/org/nanoboot/youtubedlfrontend/YoutubeVideo.java b/src/main/java/org/nanoboot/youtubedlfrontend/YoutubeVideo.java
index 0266293..d4f2ac8 100644
--- a/src/main/java/org/nanoboot/youtubedlfrontend/YoutubeVideo.java
+++ b/src/main/java/org/nanoboot/youtubedlfrontend/YoutubeVideo.java
@@ -326,7 +326,7 @@ public class YoutubeVideo implements Comparable {
}
}
}
-
+ public static long totalDurationInMilliseconds = 0l;
public static List loadYoutubeVideos(File archiveBoxArchiveDirectory, Args argsInstance) throws IOException, InterruptedException {
int i = 0;
List youtubeVideos = new ArrayList<>();
@@ -363,6 +363,8 @@ public class YoutubeVideo implements Comparable {
System.out.println("videoFileSizeInBytes = " + youtubeVideo.getVideoFileSizeInBytes());
System.out.println("videoFileSha512HashSum = " + youtubeVideo.getVideoFileSha512HashSum());
System.out.println("videoDuration = " + youtubeVideo.getVideoDuration());
+ System.out.println("getVideoDurationInMilliseconds = " + youtubeVideo.getVideoDurationInMilliseconds());
+ totalDurationInMilliseconds = totalDurationInMilliseconds + youtubeVideo.getVideoDurationInMilliseconds();
System.out.println("channelName = " + youtubeVideo.getChannelName());
System.out.println("channelUrl = " + youtubeVideo.getChannelUrl());
System.out.println("uploadDate = " + youtubeVideo.getUploadDate());
@@ -391,5 +393,25 @@ public class YoutubeVideo implements Comparable {
}
return youtubeVideos;
}
+ public long getVideoDurationInMilliseconds() {
+ String duration = videoDuration;
+ String[] array = duration.split(":");
+ long ms = Long.valueOf(array[0]) * 60l *60l * 1000l;
+ ms = ms + Long.valueOf(array[1]) * 60l * 1000l;
+ String[] array2 = array[2].split("\\.");
+ ms = ms + Long.valueOf(array2[0]) * 1000l;
+ ms = ms + Long.valueOf(array2[1]);
+ return ms;
+ }
+
+ long getVideoDurationInMinutes() {
+ double s = getVideoDurationInMilliseconds();
+ return (long) (s / 1000d / 60d);
+ }
+
+ long getVideoFileSizeInMegaBytes() {
+ double b = getVideoFileSizeInBytes();
+ return (long) (b / 1024d / 1024d);
+ }
}
diff --git a/src/main/java/org/nanoboot/youtubedlfrontend/YoutubedlFrontendException.java b/src/main/java/org/nanoboot/youtubedlfrontend/YoutubedlFrontendException.java
index ccc2ce4..f436265 100644
--- a/src/main/java/org/nanoboot/youtubedlfrontend/YoutubedlFrontendException.java
+++ b/src/main/java/org/nanoboot/youtubedlfrontend/YoutubedlFrontendException.java
@@ -19,7 +19,7 @@
package org.nanoboot.youtubedlfrontend;
/**
- * @author Robert Vokac
+ * @author Robert Vokac
* @since 0.0.0
*/
public class YoutubedlFrontendException extends RuntimeException {