-async function checkCanSeeVideoIfPrivate (req: Request, res: Response, video: MVideo, authenticateInQuery = false) {
- if (!video.requiresAuth()) return true
+// ---------------------------------------------------------------------------
+
+async function checkCanSeeVideo (options: {
+ req: Request
+ res: Response
+ paramId: string
+ video: MVideo
+ authenticateInQuery?: boolean // default false
+}) {
+ const { req, res, video, paramId, authenticateInQuery = false } = options
+
+ if (video.requiresAuth()) {
+ return checkCanSeeAuthVideo(req, res, video, authenticateInQuery)
+ }
+
+ if (video.privacy === VideoPrivacy.UNLISTED) {
+ if (isUUIDValid(paramId)) return true
+
+ return checkCanSeeAuthVideo(req, res, video, authenticateInQuery)
+ }