+activityPubClientRouter.get('/accounts?/:name/playlists',
+ executeIfActivityPub(asyncMiddleware(localAccountValidator)),
+ executeIfActivityPub(asyncMiddleware(accountPlaylistsController))
+)
+activityPubClientRouter.get('/accounts?/:name/likes/:videoId',
+ executeIfActivityPub(asyncMiddleware(getAccountVideoRateValidator('like'))),
+ executeIfActivityPub(getAccountVideoRate('like'))
+)
+activityPubClientRouter.get('/accounts?/:name/dislikes/:videoId',
+ executeIfActivityPub(asyncMiddleware(getAccountVideoRateValidator('dislike'))),
+ executeIfActivityPub(getAccountVideoRate('dislike'))
+)
+
+activityPubClientRouter.get('/videos/watch/:id',
+ executeIfActivityPub(asyncMiddleware(cacheRoute(ROUTE_CACHE_LIFETIME.ACTIVITY_PUB.VIDEOS))),
+ executeIfActivityPub(asyncMiddleware(videosCustomGetValidator('only-video-with-rights'))),
+ executeIfActivityPub(asyncMiddleware(videoController))
+)
+activityPubClientRouter.get('/videos/watch/:id/activity',
+ executeIfActivityPub(asyncMiddleware(videosCustomGetValidator('only-video-with-rights'))),
+ executeIfActivityPub(asyncMiddleware(videoController))
+)
+activityPubClientRouter.get('/videos/watch/:id/announces',
+ executeIfActivityPub(asyncMiddleware(videosCustomGetValidator('only-video'))),
+ executeIfActivityPub(asyncMiddleware(videoAnnouncesController))
+)
+activityPubClientRouter.get('/videos/watch/:id/announces/:actorId',
+ executeIfActivityPub(asyncMiddleware(videosShareValidator)),
+ executeIfActivityPub(asyncMiddleware(videoAnnounceController))
+)
+activityPubClientRouter.get('/videos/watch/:id/likes',
+ executeIfActivityPub(asyncMiddleware(videosCustomGetValidator('only-video'))),
+ executeIfActivityPub(asyncMiddleware(videoLikesController))
+)
+activityPubClientRouter.get('/videos/watch/:id/dislikes',
+ executeIfActivityPub(asyncMiddleware(videosCustomGetValidator('only-video'))),
+ executeIfActivityPub(asyncMiddleware(videoDislikesController))
+)
+activityPubClientRouter.get('/videos/watch/:id/comments',
+ executeIfActivityPub(asyncMiddleware(videosCustomGetValidator('only-video'))),
+ executeIfActivityPub(asyncMiddleware(videoCommentsController))
+)
+activityPubClientRouter.get('/videos/watch/:videoId/comments/:commentId',
+ executeIfActivityPub(asyncMiddleware(videoCommentGetValidator)),
+ executeIfActivityPub(asyncMiddleware(videoCommentController))
+)
+activityPubClientRouter.get('/videos/watch/:videoId/comments/:commentId/activity',
+ executeIfActivityPub(asyncMiddleware(videoCommentGetValidator)),
+ executeIfActivityPub(asyncMiddleware(videoCommentController))
+)
+
+activityPubClientRouter.get('/video-channels/:name',
+ executeIfActivityPub(asyncMiddleware(localVideoChannelValidator)),
+ executeIfActivityPub(asyncMiddleware(videoChannelController))
+)
+activityPubClientRouter.get('/video-channels/:name/followers',
+ executeIfActivityPub(asyncMiddleware(localVideoChannelValidator)),
+ executeIfActivityPub(asyncMiddleware(videoChannelFollowersController))
+)
+activityPubClientRouter.get('/video-channels/:name/following',
+ executeIfActivityPub(asyncMiddleware(localVideoChannelValidator)),
+ executeIfActivityPub(asyncMiddleware(videoChannelFollowingController))
+)
+
+activityPubClientRouter.get('/redundancy/videos/:videoId/:resolution([0-9]+)(-:fps([0-9]+))?',
+ executeIfActivityPub(asyncMiddleware(videoFileRedundancyGetValidator)),
+ executeIfActivityPub(asyncMiddleware(videoRedundancyController))
+)
+activityPubClientRouter.get('/redundancy/streaming-playlists/:streamingPlaylistType/:videoId',
+ executeIfActivityPub(asyncMiddleware(videoPlaylistRedundancyGetValidator)),
+ executeIfActivityPub(asyncMiddleware(videoRedundancyController))
+)
+
+activityPubClientRouter.get('/video-playlists/:playlistId',
+ executeIfActivityPub(asyncMiddleware(videoPlaylistsGetValidator)),
+ executeIfActivityPub(asyncMiddleware(videoPlaylistController))
+)
+activityPubClientRouter.get('/video-playlists/:playlistId/:videoId',
+ executeIfActivityPub(asyncMiddleware(videoPlaylistElementAPGetValidator)),
+ executeIfActivityPub(asyncMiddleware(videoPlaylistElementController))
+)