Video hosting with local control I am writing a web application with video lessons in sequence. I want to use a streaming service for high availability and compressing content for different viewports. I would like the user to watch a video to unlock the next one. And I would like to monitor the number of views to know when to release the next one. And I would also like to keep the option of releasing the video publicly with those views counting toward the total number of views.
I read about OAuth on Vimeo and think that something like tokens could work, although I'd also need to make an API call to check if a user with a token did finish watching the video.
Does any video streaming service do such a thing?
(Migrated from WebApps where the question got no answers in one week.)
I see 2 things you are trying to achieve here:

video is private, but becomes public. at api.video, we have the concept of private videos - where users must have a one time token to watch.  Anyone else using that token will be unable to watch the video.  Once you reach your view threshold, you can make the video public - removing this token behavior.

Monitoring the views of each user.  We have a concept of dynamic metadata - where you can attach session information to each view.  You could track each user's viewing in this way. For example, if you wanted to tag a view as watched by Bob:
https://embed.api.video/vod/vi2ZEgTAhfOEeYN7ZnEGsm3i?metadata[user]=bob


When you load the page of videos - you can query the video analytics for sessions for user=bob.  Each session will list the videoId, and the start/end time of the session.  Your app logic can decide if enough of the video was watched to unlock the next video.