Search code examples
vimeo-api

How to get ondemand ids for Vimeo API


I am trying to work with the Vimeo API and I cannot figure out how to access the ondemand data.

The endpoint and parameters in the docs require an ondemand_id to work correctly. I assumed this ID would come from any official ondemand page within Vimeo. But whenever I search the ondemand pages of Vimeo and click on a resource, the URL does not contain any numerical ID.

It only contains the root path for the Vimeo website with /ondemand_page_name at the end. This value cannot be the ID since it is a string and not a number. I have looked through the entire page plenty of different times to try to find the ID but cannot seem to find it.

For example, when you visit a normal video page on Vimeo, the URL looks something like this:

https://vimeo.com/272976101

where the number 272976101 is the video_id that can be used within the API to get all the data about this particular video. Instead of this format, the ondemand pages have the format:

https://vimeo.com/ondemand/nebula

where there is no numerical ID within the URL. This is the issue I am having. How would I retrieve the public data about this ondemand page throught the API.

I feel like there may be a very simple solution/explanation to this issue and any help would be much appreciated.

Also, right now I am not using any SDK to access this data. I am strictly trying to figure out how the API works through the built-in client provided within the documentation.


Solution

  • It's undocumented, but you can use the On Demand custom url path as the ondemand_id.

    So for your On Demand video at https://vimeo.com/ondemand/nebula, you can make an API request to this path: https://api.vimeo.com/ondemand/pages/nebula.

    In the response, you'll see the "uri" value "/ondemand/pages/203314", which you can log on your end and use as the ondemand_id instead of /nebula.

    Also note, this should be the same URL as your On Demand settings page: https://vimeo.com/ondemand/203314/settings

    I hope this information helps!