Downloads: Redownload Tracks

In the event of data loss by the user, or a corrupt download, the POOL API allows for redownloading a previously downloaded track. This API endpoint will only work for tracks that have been previously downloaded.

Redownload Tracks Specification

Parameters: POST variables:
  1. trackid_list: Comma delimited list of Track IDs
  2. reason: Textual reason for requesting the redownloaded media
Header variables:
  1. userid: integer
  2. token: string
JSON returned:

Redownload Tracks Workflow

  1. URL: https://api.promoonly.com/download/redownload_request
  2. Header: Authorization: Bearer Base64(userid:token)
  3. Method: POST
  4. Returned: JSON

    Example JSON Output

    {
        "result": "success",
        "tracks_requeued": 2
    }

Examples

  1. PHP (using cURL):

    <?php
        $userid = 1;
        $token = "8b26e1e4f3f5e00a888807e605565c47";

        $post_fields = "trackid_list=356111,356115&reason=".urlencode("I lost all of my media when my hard drive crashed");
        $redownload_url = "https://api.promoonly.com/download/redownload_request";

        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, $redownload_url);
        curl_setopt($ch, CURLOPT_POST, 1);
        curl_setopt($ch, CURL_POSTFIELDS, $post_fields);
        curl_setopt($ch, CURLOPT_HTTPHEADER, array("Authorization: Bearer ".base64_encode($userid.":".$token)));
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

        $redownload_result = curl_exec($ch);
        curl_close($ch);

        $redownload_obj = json_decode($redownload_result);
    ?>
  2. Javascript (using jQuery):

    function b64EncodeUnicode(str)
    {
        return btoa(encodeURIComponent(str).replace(/%([0-9A-F]{2})/g,
            function toSolidBytes(match, p1)
            {
                return String.fromCharCode('0x' + p1);
            }));
    }

    var userid = 1;
    var token = "8b26e1e4f3f5e00a888807e605565c47";
    var auth_str = "Bearer " + b64EncodeUnicode(userid + ":" + token);

    $.ajax({
        type: "POST",
        url: "https://api.promoonly.com/download/redownload_request",
        data: { trackid_list: "356111,356115", reason: "I lost all of my media when my hard drive crashed" },
        headers: { "Authorization": auth_str },
        dataType: "json",
        success: function (data)
        {
            console.log(data);
        }
    });
  3. Python (using requests):

    #!/usr/bin/env python

    import requests
    import base64
    import urllib

    userid = 1
    token = "8b26e1e4f3f5e00a888807e605565c47"

    b64_key = base64.b64encode("%s:%s" % (userid, token))
    redownload_data = { "trackid_list": "35611,356115", "reason": "I lost all of my media when my hard drive crashed" }
    headers = {"Authorization": "Bearer %s" % b64_key}
    redownload_url = "https://api.promoonly.com/download/redownload_request"
    result_return = requests.get(redownload_url, headers=headers, data=redownload_data)

    print(result_return.text)