Your workflow is unique 👨💻 - tell us how you use Dropbox here.
Forum Discussion
rajasimon
9 years agoExplorer | Level 3
How to get the valid url using dropbox api media endpoint.?
Goal is to play audio file from dropbox. Using dropbox python sdk I can get the folders and files but the `media` doesn't have valid file to play with.
def post(self, request):
request_body = json.loads(request.body)
path = request_body['path']
client = helper.dropbox_client(request.user.profile.dropbox_access_token)
media_info = client.media(path=path)
return JsonResponse(media_info, safe=True)
The `media_info` have the dict contains `url` but that is not valid means it not playing the content.
How do make that work ?
5 Replies
- Greg-DB9 years ago
Dropbox Community Moderator
[Cross-linking for reference: https://stackoverflow.com/questions/41807719/how-to-get-the-valid-url-using-dropbox-api-media-endpoint ]
Can you elaborate on what the issue you're running in to with the URL is? Are you getting an error?
- rajasimon9 years agoExplorer | Level 3
After getting the response from Dropbox. I insert that url into audio player and seems it's not playing. The URL is not valid. If I copy paste that url into address bar it's not playing. My safari audio player simply shows Error.
Codes:
// HTML
<audio id="awesome-player" controls="" autoplay="">
<source id="mp3" src="" type="audio/mpeg">
Your browser does not support the audio tag.
</audio>// Javascript
var awesomePlayer = document.getElementById('awesome-player');
awesomePlayer.src=json.url;
awesomePlayer.play(); - Greg-DB9 years ago
Dropbox Community Moderator
The API is returning a valid URL for me. Can you share a sample URL that's giving you trouble? Thanks in advance! - rajasimon9 years agoExplorer | Level 3Thanks for the reply. This is the url I'm getting in the response.
https://dl.dropboxusercontent.com/1/view/npfkvmyekl783z9/wave.mp3 - Greg-DB9 years ago
Dropbox Community Moderator
Thanks! That's a valid URL, and it is responding successfully:
$ curl -v "https://dl.dropboxusercontent.com/1/view/npfkvmyekl783z9/wave.mp3" > wave.mp3 > GET /1/view/npfkvmyekl783z9/wave.mp3 HTTP/1.1 > Host: dl.dropboxusercontent.com > User-Agent: curl/7.42.1 > Accept: */* < HTTP/1.1 200 OK < Server: nginx < Date: Tue, 24 Jan 2017 05:54:26 GMT < Content-Type: audio/mpeg < Content-Length: 478 < Connection: keep-alive < content-disposition: inline; filename="wave.mp3"; filename*=UTF-8''wave.mp3 < set-cookie: uc_session=X8hTm61TndsDEYzqACTPuaZ66N7IjRoiESu0zqv42e3rOcWV3WuNCQRDzYGUKSPS; Domain=dropboxusercontent.com; httponly; Path=/; secure < accept-ranges: bytes < etag: 11n < x-dropbox-request-id: 1e0a8355c6effc46ece87bdf30885895 < pragma: public < cache-control: max-age=60 < X-Server-Response-Time: 173 < X-Robots-Tag: noindex, nofollow, noimageindex < { [478 bytes data] $ cat wave.mp3 bplist00�_WebMainResource� _WebResourceData_WebResourceMIMEType_ebResourceTextEncodingName^WebResourceURL_WebResourceFrameNameO�<html><body><video controls="" autoplay="" name="media" style="max-width: 100%; max-height: 100%;"><source src="http://www.sample-videos.com/audio/mp3/wave.mp3" type="audio/mpeg"></video></body></html>Zaudio/mpegUUTF-8_/http://www.sample-videos.com/audio/mp3/wave.mp3P �The linked file is only 478 bytes though, so it's probably not the data you actually want. Looking at the data itself, it doesn't seem to actually be mp3 data, but rather a webarchive file. You should go back to where you were trying to get the mp3 file and save the actual mp3 file.
About Dropbox API Support and Feedback
Get help with the Dropbox API from fellow developers and experts.
The Dropbox Community team is active from Monday to Friday. We try to respond to you as soon as we can, usually within 2 hours.
If you need more help you can view your support options (expected response time for an email or ticket is 24 hours), or contact us on X, Facebook or Instagram.
For more info on available support options for your Dropbox plan, see this article.
If you found the answer to your question in this Community thread, please 'like' the post to say thanks and to let us know it was useful!