# Play URL - Passcode?

**URL:** <https://devforum.zoom.us/t/play-url-passcode/31606>\
**Category:** API and Webhooks\
**Created:** [September 29, 2020, 10:36am UTC](https://devforum.zoom.us/t/play-url-passcode/31606 "2020-09-29T10:36:07Z")\
**Posts on this page:** 18\
**Page:** 1

<div class="post-metadata">

**Author:** ![richard.moran](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/richard.moran/32/14850_2.png) [@richard.moran](https://devforum.zoom.us/u/richard.moran)\
**Post date:** [September 29, 2020, 10:36am UTC](https://devforum.zoom.us/t/play-url-passcode/31606/1 "2020-09-29T10:36:07Z")

</div>

**Description**  
When getting a listing of meeting recordings, the JSON includes a “play\_url”. If I attempt to navigate to this URL then I am asked for a passcode. This passcode is not included in the JSON so I cannot access the URL. The passcode is included in the email but that doesn’t help me integrate this into my product. Any idea how I can use this play\_url? Ideally, I want to be able to access it without using an oAuth token as we will have some non-authenticated users who need to be able to view the recordings. Using a JWT token is absolutely out of the question for this integration, unfortunately.

**Error**  
N/A

**Which App Type (OAuth / Chatbot / JWT / Webhook)?**  
oAuth app but requires non-authenticated users to access recordings.

**Which Endpoint/s?**  
GET Meeting Recordings List API or Webhook. [https://marketplace.zoom.us/docs/api-reference/zoom-api/cloud-recording/recordingget](https://marketplace.zoom.us/docs/api-reference/zoom-api/cloud-recording/recordingget) or [https://marketplace.zoom.us/docs/api-reference/webhook-reference/recording-events/recording-completed](https://marketplace.zoom.us/docs/api-reference/webhook-reference/recording-events/recording-completed)

**How To Reproduce (If applicable)**  
Steps to reproduce the behavior:

1. Attempt to access play\_url
2. Presented with screen to enter “passcode”
3. You do not have the passcode, so cannot continue.

---

<div class="post-metadata">

**Author:** ![will.zoom](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/will.zoom/32/14417_2.png) [@will.zoom](https://devforum.zoom.us/u/will.zoom)\
**Post date:** [September 30, 2020, 8:19pm UTC](https://devforum.zoom.us/t/play-url-passcode/31606/2 "2020-09-30T20:19:33Z")

</div>

Hey @richard.moran,

Thanks for reaching out about this—As is turns out, the `play_url` cannot be accessed programmatically when it has a password. The password must be entered by the user. If you want to embed the play\_url, I suggest uploading the recording to a video streaming service like youtube, and then embedding the youtube video in your site.

Let me know if this helps to clarify—thanks!  
Will

---

<div class="post-metadata">

**Author:** ![richard.moran](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/richard.moran/32/14850_2.png) [@richard.moran](https://devforum.zoom.us/u/richard.moran)\
**Post date:** [October 1, 2020, 8:07am UTC](https://devforum.zoom.us/t/play-url-passcode/31606/3 "2020-10-01T08:07:58Z")

</div>

Hi Will,

Thanks, but I’m not trying to access it programmatically. I’m happy to just put the play\_url on a page alongside the passcode to allow my users to review their recordings. However, without the ability to access the passcode in the JSON, I can’t do this and I’d be forced into a much more complicated (and expensive) solution where I’d have to download the recordings, upload them to somewhere (likely Azure) and then go from there. This seems really unnecessary when the videos are already stored by Zoom and a play\_url is provided, it’s just one that I can’t seem to use.

Do you know how I can make the play\_url usable for my clients?

Richard

---

<div class="post-metadata">

**Author:** ![will.zoom](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/will.zoom/32/14417_2.png) [@will.zoom](https://devforum.zoom.us/u/will.zoom)\
**Post date:** [October 2, 2020, 2:40pm UTC](https://devforum.zoom.us/t/play-url-passcode/31606/4 "2020-10-02T14:40:19Z")

</div>

Hey @richard.moran,

I appreciate the clarification, and can definitely understand why downloading the recording is not conducive to your use case. While this would be your best bet to avoid the passcode prompt, I’m happy to share this feedback internally, as I understand having more flexibility on how the `play_url` can be accessed would be valuable.

Thanks,  
Will

---

<div class="post-metadata">

**Author:** ![richard.moran](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/richard.moran/32/14850_2.png) [@richard.moran](https://devforum.zoom.us/u/richard.moran)\
**Post date:** [October 2, 2020, 3:27pm UTC](https://devforum.zoom.us/t/play-url-passcode/31606/5 "2020-10-02T15:27:21Z")

</div>

Thanks, Will. It’s a shame that this isn’t something that’s already doable, but if it will be potentially possible in the future that would be great.

---

<div class="post-metadata">

**Author:** ![will.zoom](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/will.zoom/32/14417_2.png) [@will.zoom](https://devforum.zoom.us/u/will.zoom)\
**Post date:** [October 2, 2020, 8:59pm UTC](https://devforum.zoom.us/t/play-url-passcode/31606/6 "2020-10-02T20:59:35Z")

</div>

Thanks for the feedback @richard.moran — I hear you on this! I’ll make sure this suggestion reaches the right team.

Best,  
Will

---

<div class="post-metadata">

**Author:** ![akhmerov](https://avatars.discourse-cdn.com/v4/letter/a/7ba0ec/32.png) [@akhmerov](https://devforum.zoom.us/u/akhmerov)\
**Post date:** [October 4, 2020, 7:00pm UTC](https://devforum.zoom.us/t/play-url-passcode/31606/7 "2020-10-04T19:00:05Z")

</div>

Another way to improve on the current situation would be to return the recording password from the API call (it’s missing right now).

As an immediate workaround I have turned off recording passwords on the account, however another option would be to patch the recording settings and set a random password.

---

<div class="post-metadata">

**Author:** ![richard.moran](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/richard.moran/32/14850_2.png) [@richard.moran](https://devforum.zoom.us/u/richard.moran)\
**Post date:** [October 5, 2020, 8:19am UTC](https://devforum.zoom.us/t/play-url-passcode/31606/8 "2020-10-05T08:19:26Z")

</div>

So if I set a password on the meeting, will the same password work to open the play\_url?

---

<div class="post-metadata">

**Author:** ![will.zoom](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/will.zoom/32/14417_2.png) [@will.zoom](https://devforum.zoom.us/u/will.zoom)\
**Post date:** [October 5, 2020, 8:30pm UTC](https://devforum.zoom.us/t/play-url-passcode/31606/9 "2020-10-05T20:30:48Z")

</div>

Thanks for the suggestion, @akhmerov!

@richard.moran, the password for a password-protected recording will be unique from the meeting’s passcode. It will be provided in the email that is generated when your recording finished processing, as well as in your recordings page.

Best,  
Will

---

<div class="post-metadata">

**Author:** ![richard.moran](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/richard.moran/32/14850_2.png) [@richard.moran](https://devforum.zoom.us/u/richard.moran)\
**Post date:** [October 12, 2020, 4:16pm UTC](https://devforum.zoom.us/t/play-url-passcode/31606/10 "2020-10-12T16:16:20Z")

</div>

I’ve come up with a workaround which involves adding an oAuth token to the end of the play\_url as I’ve seen suggested elsewhere, but that just results in a “this recording does not exist” error. Is adding “&access\_token=…” supported on play\_url?

---

<div class="post-metadata">

**Author:** ![chris.ota](https://avatars.discourse-cdn.com/v4/letter/c/e47c2d/32.png) [@chris.ota](https://devforum.zoom.us/u/chris.ota)\
**Post date:** [October 12, 2020, 11:16pm UTC](https://devforum.zoom.us/t/play-url-passcode/31606/11 "2020-10-12T23:16:03Z")

</div>

For meetings, it looks like the API response includes `encrypted_password` which can then be used as a query parameter so that the user does not have to manually type in the passcode ([https://zoom.us/rec/share/r0k\_uTn0ncpa5J6Eqw1QKFssZvHiLHwFl376IioLQ2M07dsKkuMXew-Omfwo-lEb.-7E0GfDy4r0EazLq](https://zoom.us/rec/share/r0k_uTn0ncpa5J6Eqw1QKFssZvHiLHwFl376IioLQ2M07dsKkuMXew-Omfwo-lEb.-7E0GfDy4r0EazLq)).

You can get the recording passcode in plain text using the Get Meeting Recording Settings endpoint ([https://marketplace.zoom.us/docs/api-reference/zoom-api/cloud-recording/recordingsettingupdate](https://marketplace.zoom.us/docs/api-reference/zoom-api/cloud-recording/recordingsettingupdate)), but there is no way to encrypt it and include it in the play URL.

It would be nice if the recording passcode worked similarly to the meeting passcode, where it can be passed encrypted as a query parameter.

---

<div class="post-metadata">

**Author:** ![will.zoom](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/will.zoom/32/14417_2.png) [@will.zoom](https://devforum.zoom.us/u/will.zoom)\
**Post date:** [October 13, 2020, 7:21pm UTC](https://devforum.zoom.us/t/play-url-passcode/31606/12 "2020-10-13T19:21:02Z")

</div>

Hey @richard.moran, do you have the meeting or recording ID when you ran into that error? Happy to take a closer look.

---

<div class="post-metadata">

**Author:** ![will.zoom](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/will.zoom/32/14417_2.png) [@will.zoom](https://devforum.zoom.us/u/will.zoom)\
**Post date:** [October 13, 2020, 7:22pm UTC](https://devforum.zoom.us/t/play-url-passcode/31606/13 "2020-10-13T19:22:08Z")

</div>

@chris.ota thanks for the feedback. This is an experience that I will advocate for improvement on. In the meantime, you might also consider posting this as a feature request here, too: #feature-requests

Best,  
Will

---

<div class="post-metadata">

**Author:** ![richard.moran](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/richard.moran/32/14850_2.png) [@richard.moran](https://devforum.zoom.us/u/richard.moran)\
**Post date:** [October 15, 2020, 8:50am UTC](https://devforum.zoom.us/t/play-url-passcode/31606/14 "2020-10-15T08:50:16Z")

</div>

Hi Will,

Here’s the URL I used (oAuth access token obscured) [https://zoom.us/rec/play/izjsznagV9Ie-cGk1xZQK6uZ8dfWF89ypSQNXKeVUd6Tf7D0f1M9ZRlP5aJUmt\_d48XCSb-EABkN-jE.meSXyWbTCYvYHV9f&access\_token=[TOKEN]](https://zoom.us/rec/play/izjsznagV9Ie-cGk1xZQK6uZ8dfWF89ypSQNXKeVUd6Tf7D0f1M9ZRlP5aJUmt_d48XCSb-EABkN-jE.meSXyWbTCYvYHV9f&access_token=%5BTOKEN%5D)

---

<div class="post-metadata">

**Author:** ![will.zoom](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/will.zoom/32/14417_2.png) [@will.zoom](https://devforum.zoom.us/u/will.zoom)\
**Post date:** [October 16, 2020, 3:17pm UTC](https://devforum.zoom.us/t/play-url-passcode/31606/15 "2020-10-16T15:17:11Z")

</div>

Hey @richard.moran,

Can you share the Meeting ID as well?

Thanks,  
Will

---

<div class="post-metadata">

**Author:** ![richard.moran](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/richard.moran/32/14850_2.png) [@richard.moran](https://devforum.zoom.us/u/richard.moran)\
**Post date:** [October 16, 2020, 3:28pm UTC](https://devforum.zoom.us/t/play-url-passcode/31606/16 "2020-10-16T15:28:57Z")

</div>

Sure, it’s 96496123782

---

<div class="post-metadata">

**Author:** ![will.zoom](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/will.zoom/32/14417_2.png) [@will.zoom](https://devforum.zoom.us/u/will.zoom)\
**Post date:** [October 19, 2020, 6:17pm UTC](https://devforum.zoom.us/t/play-url-passcode/31606/17 "2020-10-19T18:17:33Z")

</div>

Thanks @richard.moran, I just DM’d you with some additional information as well.

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/flex016/uploads/zoomdeveloper/original/3X/6/1/614bdd549b610bbaa46ff934617683a02bdaa03c.png) [@system](https://devforum.zoom.us/u/system)\
**Post date:** [November 19, 2020, 4:17am UTC](https://devforum.zoom.us/t/play-url-passcode/31606/18 "2020-11-19T04:17:40Z")

</div>

Closed on November 19, 2020, 4:17am UTC

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.
