diff options
author | Chocobozzz <me@florianbigard.com> | 2022-05-03 11:38:07 +0200 |
---|---|---|
committer | Chocobozzz <me@florianbigard.com> | 2022-05-03 14:49:15 +0200 |
commit | 26e3e98ff0e222a9fb9226938ac6902af77921bd (patch) | |
tree | 73d1c6f2524e380862d3365f12043fc319d40841 /shared/server-commands/videos/live-command.ts | |
parent | 86c5229b4d726202378ef46854383bcafca22310 (diff) | |
download | PeerTube-26e3e98ff0e222a9fb9226938ac6902af77921bd.tar.gz PeerTube-26e3e98ff0e222a9fb9226938ac6902af77921bd.tar.zst PeerTube-26e3e98ff0e222a9fb9226938ac6902af77921bd.zip |
Support live session in server
Diffstat (limited to 'shared/server-commands/videos/live-command.ts')
-rw-r--r-- | shared/server-commands/videos/live-command.ts | 48 |
1 files changed, 47 insertions, 1 deletions
diff --git a/shared/server-commands/videos/live-command.ts b/shared/server-commands/videos/live-command.ts index c24c7a5fc..2ff65881b 100644 --- a/shared/server-commands/videos/live-command.ts +++ b/shared/server-commands/videos/live-command.ts | |||
@@ -4,7 +4,17 @@ import { readdir } from 'fs-extra' | |||
4 | import { omit } from 'lodash' | 4 | import { omit } from 'lodash' |
5 | import { join } from 'path' | 5 | import { join } from 'path' |
6 | import { wait } from '@shared/core-utils' | 6 | import { wait } from '@shared/core-utils' |
7 | import { HttpStatusCode, LiveVideo, LiveVideoCreate, LiveVideoUpdate, VideoCreateResult, VideoDetails, VideoState } from '@shared/models' | 7 | import { |
8 | HttpStatusCode, | ||
9 | LiveVideo, | ||
10 | LiveVideoCreate, | ||
11 | LiveVideoSession, | ||
12 | LiveVideoUpdate, | ||
13 | ResultList, | ||
14 | VideoCreateResult, | ||
15 | VideoDetails, | ||
16 | VideoState | ||
17 | } from '@shared/models' | ||
8 | import { unwrapBody } from '../requests' | 18 | import { unwrapBody } from '../requests' |
9 | import { AbstractCommand, OverrideCommandOptions } from '../shared' | 19 | import { AbstractCommand, OverrideCommandOptions } from '../shared' |
10 | import { sendRTMPStream, testFfmpegStreamError } from './live' | 20 | import { sendRTMPStream, testFfmpegStreamError } from './live' |
@@ -25,6 +35,42 @@ export class LiveCommand extends AbstractCommand { | |||
25 | }) | 35 | }) |
26 | } | 36 | } |
27 | 37 | ||
38 | listSessions (options: OverrideCommandOptions & { | ||
39 | videoId: number | string | ||
40 | }) { | ||
41 | const path = `/api/v1/videos/live/${options.videoId}/sessions` | ||
42 | |||
43 | return this.getRequestBody<ResultList<LiveVideoSession>>({ | ||
44 | ...options, | ||
45 | |||
46 | path, | ||
47 | implicitToken: true, | ||
48 | defaultExpectedStatus: HttpStatusCode.OK_200 | ||
49 | }) | ||
50 | } | ||
51 | |||
52 | async findLatestSession (options: OverrideCommandOptions & { | ||
53 | videoId: number | string | ||
54 | }) { | ||
55 | const { data: sessions } = await this.listSessions(options) | ||
56 | |||
57 | return sessions[sessions.length - 1] | ||
58 | } | ||
59 | |||
60 | getReplaySession (options: OverrideCommandOptions & { | ||
61 | videoId: number | string | ||
62 | }) { | ||
63 | const path = `/api/v1/videos/${options.videoId}/live-session` | ||
64 | |||
65 | return this.getRequestBody<LiveVideoSession>({ | ||
66 | ...options, | ||
67 | |||
68 | path, | ||
69 | implicitToken: true, | ||
70 | defaultExpectedStatus: HttpStatusCode.OK_200 | ||
71 | }) | ||
72 | } | ||
73 | |||
28 | update (options: OverrideCommandOptions & { | 74 | update (options: OverrideCommandOptions & { |
29 | videoId: number | string | 75 | videoId: number | string |
30 | fields: LiveVideoUpdate | 76 | fields: LiveVideoUpdate |