Downloads: Queue Download

This API endpoint is the first step that must be taken to request a download from the POOL system. With the results from this call, a Download Token, and an available server list will be issued which will make up parts of the final download URL. Requirements for this endpoint include a valid POOL User ID, a valid Access Token, and a Track ID that is part of the user account distribution. The media type that will be queued for download is the default media type that is saved in POOL Preferences.

Queue Download Specification

Parameters: Header variables:
  1. userid: integer
  2. token: string
JSON returned:

Queue Download Workflow

  1. URL: https://api.promoonly.com/downloads/queue/TRACK_ID
  2. Header: Authorization: Bearer Base64(userid:token)
  3. Method: GET
  4. Returned: JSON

    Example JSON Output

    {
        "Result": "Track successfully queued for download.",
        "artist": "Rage Against The Machine",
        "bpm": 134,
        "content_warn": "False",
        "dl_token": "8fa199a6bc7bde6d99e257f185df0478",
        "duration": 215,
        "end": "Cold",
        "explicit": 0,
        "file_type": "720 mp4",
        "genre": "Rock",
        "label": "Epic",
        "media_type": 1,
        "mix": "From The Battle Of Mexico City",
        "modified": 1586170938,
        "queueid": 12997,
        "release_image": "https://pomed.promoonly.com/issue_imgs/hits_hd_web.jpg",
        "release_name": "Hits HD (4-16-2020)",
        "release_year": 2020,
        "releaseid": 56320,
        "servers":
        [
            "dc03.promoonly.com",
            "ny01.promoonly.com",
            "sl02.promoonly.com"
        ],
        "title": "Sleep Now In The Fire",
        "titleid": 627199,
        "trackid": 374210
    }

Examples

  1. PHP (using cURL):

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

        $trackid = 274861;
        $queue_url = "https://api.promoonly.com/downloads/queue/".$trackid;

        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, $queue_url);
        curl_setopt($ch, CURLOPT_HTTPHEADER, array("Authorization: Bearer ".base64_encode($userid.":".$token)));
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

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

        $queue_obj = json_decode($queue_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: "GET",
        url: "https://api.promoonly.com/downloads/queue/274861",
        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))
    headers = {"Authorization": "Bearer %s" % b64_key}
    queue_url = "https://api.promoonly.com/downloads/queue/274861"
    result_return = requests.get(queue_url, headers=headers)

    print(result_return.text)