Your workflow is unique 👨‍💻 -  tell us how you use Dropbox here.

Forum Discussion

rajasimon's avatar
rajasimon
Explorer | Level 3
9 years ago

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

  • rajasimon's avatar
    rajasimon
    Explorer | Level 3
    9 years ago

    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-DB's avatar
    Greg-DB
    Icon for Dropbox Community Moderator rankDropbox Community Moderator
    9 years ago
    The API is returning a valid URL for me. Can you share a sample URL that's giving you trouble? Thanks in advance!
  • Greg-DB's avatar
    Greg-DB
    Icon for Dropbox Community Moderator rankDropbox Community Moderator
    9 years ago

    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

Node avatar for 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!