The background of my question is as follows: I found a Vimeo embedded video on some website, and I would like to play it on the big screen (using my Apple TV with the Vimeo tvOS app installed, in which I successfully logged in to my Vimeo account; I suppose other kinds of set-top boxes or tablets with a Vimeo app would work just as well).

When visiting that website from a computer, however, I cannot find a Watch Later button (presumably because the video owner disabled it) — Regardless of whether I am logged in while browsing the website, and/or I open the iframe the video is in into a different tab. Is there still a way to exercise the Watch Later feature on such unlisted videos?

1 Answer 1


There is indeed; it requires placing a Web API call by hand (using the “copy as cUrl” feature in your browser's debugger) to bypass Vimeo's past efforts to make that feature unavailable in the UI.

  1. Obtain the private details of the embedded video you want to add to your Watch Later list. To this end,
    1. open the website where the video resides
    2. open the HTML source code for the iframe of the video. Instructions to do this vary by browser, but typically start by right-clicking the video:
      • for Chrome, right-click on the video and select View Frame Source,
      • for Firefox, right-click on the video then select This Frame > View Frame Source
    3. Take note of the video ID and the so-called “unlisted hash” of the video. Currently, this information is available in the top of the HTML in a line that looks like this:
      <link rel="canonical" href="https://player.vimeo.com/video/VVVVVVV?h=HHHHHHH">
    In this example, VVVVVVV (the part before the question mark) would be the video ID, and HHHHHHH (the part after ?h=) would be the unlisted hash (which acts as an authentication mechanism, and additionally prevents you from just browsing https://vimeo.com/video/VVVVVVV to use the UI buttons in a straightforward way).
  2. Craft a suitable HTTP PUT query using your Terminal and the curl command, from a “legitimate“ click on the Watch Later button of a public video. Here are step-by-step instructions:
    1. Ensure that you have the curl command-line tool installed on your operating system:
      • For Windows®, here are specific instructions — ⚠ Be warned that some (older?) versions of Windows® ship with a Microsoft-authored, crippled knockoff that won't help you, in which case you will have to perform the install steps as explained.
      • Other operating systems most likely already have a suitable version of curl already installed.
    2. Log in to the Vimeo website in your Web browser. If you are using ad blocking software such as uBlock Origin, make sure to turn it off.
    3. Navigate from the Vimeo page to any of the public videos, it doesn't really matter which (for instance, from the Watch menu → Best of the year). Be sure to navigate away from any search results page (i.e. click on one of those Best of the year videos so as to navigate to its page), as the steps that follow assume that you are on the page of a single video, rather than on a search results page.
    4. Make sure you can see the Watch later button. (Otherwise, it indicates that you are either not currently logged in, or you are using an ad blocker. Repeat step 2.2 in that case.)
    5. Open the browser's debugger (Web Developer tools or similar) and select the Network pane.
    6. Click on the Watch Later button from the Vimeo Web page. One of the last requests in your Network pane (which you might have to scroll to), should be a PUT request to https://api.vimeo.com/users/<your user ID>/watchlater/<some video ID>, which you should right-click → copy as cUrl and paste in a terminal (or Command Prompt in Windows®), to validate that it executes properly.
      Here is what a successful curl command would look like:
      curl 'https://api.vimeo.com/users/XXXXXXX/watchlater/YYYYYY' -X PUT -H 'User-Agent: [... truncated]
      💡 There should be no output (“no news = good news”), indicating that the public video was added to your Watch Later list (which should in fact result in no change, since you already did that by clicking in the browser). To confirm successful execution, recall the curl command by using the up arrow on your keyboard, and edit it to add a -v flag right after curl to turn on verbose mode, resulting in the following:
      curl -v 'https://api.vimeo.com/users/XXXXXXX/watchlater/YYYYYY' -X PUT -H 'User-Agent: [... truncated]
      *   Trying
      [... a lot of preamble stuff ...]
      < HTTP/1.1 204 No Content
      [... more stuff ...]
      whence the 204 part means that the PUT API command was successful.
  3. Edit the successful curl command line from the previous step once more, and adjust the URL using the details for your unlisted or private video that you obtained at step 1. For instance, assuming the video ID and unlisted hash parts found in the HTML source code at step 1, are VVVVVVV and HHHHHHH respectively,
    curl -v 'https://api.vimeo.com/users/XXXXXXX/watchlater/VVVVVVV:HHHHHHH' -X PUT -H 'User-Agent: [... truncated]

Once that last command completes successfully (again with code 204), the change you wanted should be effective; check in your Watch Later list at https://vimeo.com/watchlater to confirm.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.