diff options
author | bobzel <zzzman@gmail.com> | 2021-05-18 14:58:18 -0400 |
---|---|---|
committer | bobzel <zzzman@gmail.com> | 2021-05-18 15:50:30 -0400 |
commit | 6919954467f3f2e4ca2f02e34eda827df9f5f83d (patch) | |
tree | 3d80cefa5558d93a896a1ef6c7b98b9da83c2bde /src/server/ApiManagers/UploadManager.ts | |
parent | 4760f9be498d19de9d285e8d99e5fbb277df1904 (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.ts | 21 |
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; |