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.
Example JSON Output
{
"result": "success",
"tracks_requeued": 2
}
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);
?>
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);
}
});
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)