aboutsummaryrefslogtreecommitdiff
path: root/src/server/ApiManagers/UploadManager.ts
diff options
context:
space:
mode:
authorbobzel <zzzman@gmail.com>2021-05-18 14:58:18 -0400
committerbobzel <zzzman@gmail.com>2021-05-18 15:50:30 -0400
commit6919954467f3f2e4ca2f02e34eda827df9f5f83d (patch)
tree3d80cefa5558d93a896a1ef6c7b98b9da83c2bde /src/server/ApiManagers/UploadManager.ts
parent4760f9be498d19de9d285e8d99e5fbb277df1904 (diff)
added downloading of youtube videos if https://youtube-dl.org/ is installed on the server's path
Diffstat (limited to 'src/server/ApiManagers/UploadManager.ts')
-rw-r--r--src/server/ApiManagers/UploadManager.ts21
1 files changed, 21 insertions, 0 deletions
diff --git a/src/server/ApiManagers/UploadManager.ts b/src/server/ApiManagers/UploadManager.ts
index d6950d46a..02f6462aa 100644
--- a/src/server/ApiManagers/UploadManager.ts
+++ b/src/server/ApiManagers/UploadManager.ts
@@ -16,6 +16,7 @@ const imageDataUri = require('image-data-uri');
import { isWebUri } from "valid-url";
import { Opt } from "../../fields/Doc";
import { SolrManager } from "./SearchManager";
+import { StringDecoder } from "string_decoder";
export enum Directory {
parsed_files = "parsed_files",
@@ -66,6 +67,26 @@ export default class UploadManager extends ApiManager {
register({
method: Method.POST,
+ subscription: "/uploadYoutubeVideo",
+ secureHandler: async ({ req, res }) => {
+ //req.readableBuffer.head.data
+ return new Promise<void>(async resolve => {
+ req.addListener("data", async (args) => {
+ console.log(args);
+ const payload = String.fromCharCode.apply(String, args);
+ const videoId = JSON.parse(payload).videoId;
+ const results: Upload.FileResponse[] = [];
+ const result = await DashUploadUtils.uploadYoutube(videoId);
+ result && !(result.result instanceof Error) && results.push(result);
+ _success(res, results);
+ resolve();
+ });
+ });
+ }
+ });
+
+ register({
+ method: Method.POST,
subscription: new RouteSubscriber("youtubeScreenshot"),
secureHandler: async ({ req, res }) => {
const { id, timecode } = req.body;