- this.videoCaptionService.listCaptions(videoId)
- ])
- .pipe(
- // If 400, 403 or 404, the video is private or blocked so redirect to 404
- catchError(err => {
- const errorBody = err.body as PeerTubeProblemDocument
-
- if (errorBody.code === ServerErrorCode.DOES_NOT_RESPECT_FOLLOW_CONSTRAINTS && errorBody.originUrl) {
- const search = window.location.search
- let originUrl = errorBody.originUrl
- if (search) originUrl += search
-
- this.confirmService.confirm(
- $localize`This video is not available on this instance. Do you want to be redirected on the origin instance: <a href="${originUrl}">${originUrl}</a>?`,
- $localize`Redirection`
- ).then(res => {
- if (res === false) {
- return this.restExtractor.redirectTo404IfNotFound(err, 'video', [
- HttpStatusCode.BAD_REQUEST_400,
- HttpStatusCode.FORBIDDEN_403,
- HttpStatusCode.NOT_FOUND_404
- ])
- }
-
- return window.location.href = originUrl
- })
- }
-
- return this.restExtractor.redirectTo404IfNotFound(err, 'video', [
- HttpStatusCode.BAD_REQUEST_400,
- HttpStatusCode.FORBIDDEN_403,
- HttpStatusCode.NOT_FOUND_404
- ])
- })
- )
- .subscribe(([ video, captionsResult ]) => {
+ this.videoCaptionService.listCaptions(videoId),
+ this.userService.getAnonymousOrLoggedUser()
+ ]).subscribe({
+ next: ([ video, captionsResult, loggedInOrAnonymousUser ]) => {