async get (options: OverrideCommandOptions & {
url: string
+
+ videoFileToken?: string
+ reinjectVideoFileToken?: boolean
+
withRetry?: boolean // default false
currentRetry?: number
- }) {
- const { withRetry, currentRetry = 1 } = options
+ }): Promise<string> {
+ const { videoFileToken, reinjectVideoFileToken, withRetry = false, currentRetry = 1 } = options
try {
const result = await unwrapTextOrDecode(this.getRawRequest({
...options,
url: options.url,
+ query: {
+ videoFileToken,
+ reinjectVideoFileToken
+ },
implicitToken: false,
defaultExpectedStatus: HttpStatusCode.OK_200
}))
return result
} catch (err) {
- if (!withRetry || currentRetry > 5) throw err
+ if (!withRetry || currentRetry > 10) throw err
- await wait(100)
+ await wait(250)
return this.get({
...options,
}
}
- getFragmentedSegment (options: OverrideCommandOptions & {
+ async getFragmentedSegment (options: OverrideCommandOptions & {
url: string
range?: string
+
+ withRetry?: boolean // default false
+ currentRetry?: number
}) {
- return unwrapBody<Buffer>(this.getRawRequest({
- ...options,
-
- url: options.url,
- range: options.range,
- implicitToken: false,
- defaultExpectedStatus: HttpStatusCode.OK_200
- }))
+ const { withRetry = false, currentRetry = 1 } = options
+
+ try {
+ const result = await unwrapBody<Buffer>(this.getRawRequest({
+ ...options,
+
+ url: options.url,
+ range: options.range,
+ implicitToken: false,
+ responseType: 'application/octet-stream',
+ defaultExpectedStatus: HttpStatusCode.OK_200
+ }))
+
+ return result
+ } catch (err) {
+ if (!withRetry || currentRetry > 10) throw err
+
+ await wait(250)
+
+ return this.getFragmentedSegment({
+ ...options,
+
+ withRetry,
+ currentRetry: currentRetry + 1
+ })
+ }
}
- getSegmentSha256 (options: OverrideCommandOptions & {
+ async getSegmentSha256 (options: OverrideCommandOptions & {
url: string
+
+ withRetry?: boolean // default false
+ currentRetry?: number
}) {
- return unwrapBodyOrDecodeToJSON<{ [ id: string ]: string }>(this.getRawRequest({
- ...options,
+ const { withRetry = false, currentRetry = 1 } = options
+
+ try {
+ const result = await unwrapBodyOrDecodeToJSON<{ [ id: string ]: string }>(this.getRawRequest({
+ ...options,
- url: options.url,
- implicitToken: false,
- defaultExpectedStatus: HttpStatusCode.OK_200
- }))
+ url: options.url,
+ contentType: 'application/json',
+ implicitToken: false,
+ defaultExpectedStatus: HttpStatusCode.OK_200
+ }))
+
+ return result
+ } catch (err) {
+ if (!withRetry || currentRetry > 10) throw err
+
+ await wait(250)
+
+ return this.getSegmentSha256({
+ ...options,
+
+ withRetry,
+ currentRetry: currentRetry + 1
+ })
+ }
}
}