summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorRoland Reichwein <mail@reichwein.it>2020-05-31 18:36:59 +0200
committerRoland Reichwein <mail@reichwein.it>2020-05-31 18:36:59 +0200
commit8f4fb65730eba551f3b03d671111d8f458e3cfbc (patch)
tree7c877c7563050617638faa51000e02dfd90979fa
parent3bfd422f6f92fed162e14d29fd5cd6142b2b87a5 (diff)
Activate video option
-rw-r--r--downtube.cpp7
-rw-r--r--html/downtube.js10
-rw-r--r--html/index.html2
3 files changed, 13 insertions, 6 deletions
diff --git a/downtube.cpp b/downtube.cpp
index b3ed581..6e45764 100644
--- a/downtube.cpp
+++ b/downtube.cpp
@@ -147,7 +147,7 @@ int main(void)
FCGX_PutS("Content-Type: application/octet-stream\r\n", request.out);
FCGX_FPrintF(request.out, "Content-Length: %d\r\n\r\n", filedata.size());
FCGX_PutStr(filedata.c_str(), filedata.size(), request.out);
- } else if (false && format == "mp4") { // disabled for now
+ } else if (format == "mp4") {
//std::string cmd{"youtube-dl --no-warnings --no-call-home --no-progress --recode-video mp4 -o video.mp4 --restrict-filenames "s + url};
// Recoding to MP4 is too slow currently. So keep original format for now
std::string cmd{"youtube-dl --no-warnings --no-call-home --no-progress -o video.mp4 --restrict-filenames "s + url};
@@ -158,7 +158,7 @@ int main(void)
fs::directory_iterator di{fs::current_path()};
fs::path filename;
for (const auto& i: di) {
- if (i.path().stem().string() == "video"s) {
+ if (boost::algorithm::starts_with(i.path().filename().string(), "video."s)) {
filename = i.path().filename().string();
break;
}
@@ -170,6 +170,9 @@ int main(void)
std::string filedata {File::getFile(filename)}; // may throw
+ if (filedata.size() > 300000000)
+ throw std::runtime_error("File too big");
+
FCGX_PutS("Content-Type: application/octet-stream\r\n", request.out);
FCGX_FPrintF(request.out, "Content-Length: %d\r\n\r\n", filedata.size());
FCGX_PutStr(filedata.c_str(), filedata.size(), request.out);
diff --git a/html/downtube.js b/html/downtube.js
index abe62b8..f79443e 100644
--- a/html/downtube.js
+++ b/html/downtube.js
@@ -28,7 +28,7 @@ function on_start() {
return;
}
if (this.status != 200) {
- set_status("Server Error while retrieving filename");
+ set_status("Server Error while retrieving filename, " + filename + ", status: " + this.status + " " + this.statusText);
return;
}
@@ -68,11 +68,15 @@ function get_file(filename) {
// run on data received back
xhr.onreadystatechange = function() {
+ if (this.readyState == 3) {
+ set_status("Please wait while downloading " + filename + " ...");
+ return;
+ }
if (this.readyState != 4) {
return;
}
if (this.status != 200) {
- set_status("Server Error while retrieving " + filename);
+ set_status("Server Error while retrieving " + filename + ", status: " + this.status + " " + this.statusText);
return;
}
@@ -107,6 +111,6 @@ function get_file(filename) {
xhr.responseType = 'blob';
xhr.send(xmlDocument);
- set_status("Please wait while retrieving " + filename + " ...");
+ set_status("Please wait while server prepares " + filename + " ...");
}
diff --git a/html/index.html b/html/index.html
index 2892e79..05ab9d6 100644
--- a/html/index.html
+++ b/html/index.html
@@ -22,7 +22,7 @@
Transform to format:<br/>
<input type="radio" id="mp3" name="format" value="mp3" checked>
<label for="mp3">MP3 (Audio)</label><br>
- <input type="radio" id="mp4" name="format" value="mp4" disabled>
+ <input type="radio" id="mp4" name="format" value="mp4">
<label for="mp4">MP4 (Video)</label><br>
</p>