summaryrefslogtreecommitdiffhomepage
path: root/downtube.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'downtube.cpp')
-rw-r--r--downtube.cpp7
1 files changed, 5 insertions, 2 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);