diff options
Diffstat (limited to 'downtube.cpp')
-rw-r--r-- | downtube.cpp | 7 |
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); |