johnh10
johnh10

Reputation: 4185

Vimeo API says video not found but the player url still works. Help me understand

This url loads and plays the video: https://player.vimeo.com/video/516699168

This url says the video is not found: https://vimeo.com/516699168

So I use the API call at https://developer.vimeo.com/api/reference/videos#get_video with ID 516699168 and it returns

HTTP/1.1 404
Content-Type: application/vnd.vimeo.error+json

{
  "error": "The requested video couldn't be found."
}

So why does the player.vimeo.com link work? Is it supposed to?

I'm asking because I have a broken link script and the API isn't jiving with the player.vimeo.com link.

If there are restrictions on the video (such as privacy) why would the player url still work?

Upvotes: 1

Views: 15022

Answers (1)

Tommy Penner
Tommy Penner

Reputation: 3018

The player url (player.vimeo.com) is used as the source within the Vimeo iframe. Most likely the video is accessible when visiting that URL because it is set to "Hide from vimeo.com" and is only playable when embedded. To prevent this from happening, the video's embed privacy should be set to domain-level so that it's only playable when embedded on specified domains.

When requesting /videos/516699168 the API returns a 404 likely because the auth token used with the request only has "public" scope and can only be used to get public data on Vimeo. Because the video has "Hide from vimeo.com" privacy it is not public, and the API cannot pull its metadata.

Video privacy settings overview: https://vimeo.zendesk.com/hc/en-us/articles/224817847

API authentication and scopes overview: https://developer.vimeo.com/api/authentication#understanding-the-auth-process

Upvotes: 1

Related Questions