CINXE.COM
ccMixter - Query API 2.0 (beta)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xml:lang="en" lang="en"> <head> <title>ccMixter - Query API 2.0 (beta)</title> <meta name="keywords" content="cchost, remix, sharing, media" /> <meta name="description" content="ccMixter is a community remix site operated by ArtisTech Media, created by Creative Commons" /> <meta name="robots" content="index, follow" /> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <script type="text/javascript"> //<!-- var home_url = 'https://ccmixter.org/'; var root_url = 'https://ccmixter.org/'; var query_url = 'https://ccmixter.org/api/query?'; var q = '?'; var user_name = null; //--> </script> <script type="text/javascript" src="https://ccmixter.org/ccskins/shared/js/prototype.js" ></script> <script type="text/javascript" src="https://ccmixter.org/ccskins/shared/js/selector-addon-v1.js" ></script> <script type="text/javascript" src="https://ccmixter.org/ccskins/shared/js/scriptaculous/builder.js" ></script> <script type="text/javascript" src="https://ccmixter.org/ccskins/shared/js/scriptaculous/effects.js" ></script> <script type="text/javascript" src="https://ccmixter.org/ccskins/shared/js/scriptaculous/controls.js" ></script> <script type="text/javascript" src="https://ccmixter.org/ccskins/shared/js/scriptaculous/dragdrop.js" ></script> <script type="text/javascript" src="https://ccmixter.org/ccskins/shared/js/strings.js" ></script> <script type="text/javascript" src="https://ccmixter.org/ccskins/shared/js/modalbox/modalbox.js" ></script> <script type="text/javascript" src="https://ccmixter.org/ccskins/shared/js/cchost.js" ></script> <!-- layout 24 --> <style type="text/css"> div#wrapper{float:right;width:100%;margin-left:-160px} div#content{margin-left:160px;padding-left: 0.5em;} div#navigation{float:left;width:160px;} div#extra{float:left;clear:left;width:160px;} div#footer{clear:both;width:100%} .menu_group { margin-left: 16px; } </style><style type="text/css"> .light_bg { background-color: #F0F0F0; } .light_border { border-color: #FFFFFF; } .light_color, a.light_color, a.light_color:visited, a.light_color:link { color: #FFFFFF; } .dark_bg { background-color: #000000; } .dark_border { border-color: #000000; } .dark_color { color: #000000; } .med_dark_bg { background-color: #555555; } .med_dark_color { color: #555555; } .med_dark_border { color: #555555; } .med_bg { background-color: #BBBBBB; } .med_color { color: #A0A0A0; } .med_border { color: #A0A0A0; } .med_light_bg { background-color: #DDDDDD; } .med_light_color { color: #CCC; } .med_light_border { color: #DDDDDD; } .selected_area { background-color: #000000; color: #FFFFFF; } a, a:visited, a:link { color: #223344; } a.cc_user_link, a.cc_user_link:visited, a.cc_user_link:link { color: #686868; font-weight: normal;} a.cc_file_link, a.cc_file_link:visited, a.cc_file_link:link { color: #669966; font-weight: bold; letter-spacing:0.05em;} .menu_group a.cc_file_link:visited, .menu_group a.cc_user_link:visited, .menu_group a.cc_file_link:link { font-weight: normal; } .cc_form a, .client_menu_table a, #extra a, #navigation a, .cc_breadcrumbs a { color: #777777; } .cc_form a:hover, .client_menu_table a:hover, #extra a:hover, #navigation a:hover, .cc_breadcrumbs a:hover { color: black; text-decoration: none; } </style> <style type="text/css"> body, td, input, select, option, ul, h1, h2, h3, h4, p, a, a span { font-family: Verdana, Geneva, Arial, sans-serif; } </style> <style type="text/css"> body, td, input, select, ul, p { font-size: 11px; } </style><style type="text/css"> #tabs li { float: left; display: block; padding-right: 13px; } #sub_tabs li { display: block; float: left; margin-right: 9px; } </style> <script type="text/javascript" src="https://ccmixter.org/ccskins/shared/js/round-box.js"></script> <link rel="stylesheet" type="text/css" href="https://ccmixter.org/ccskins/shared/layouts/box_round.css" title="Default Style" /> <!--[if IE]> <link rel="stylesheet" type="text/css" href="https://ccmixter.org/ccskins/shared/layouts/box_round_ie.css" title="Default Style" /> <![endif]--> <style type="text/css"> .cssbox, .cssbox_body, .cssbox_head, .cssbox_head h2 { background-image: url('https://ccmixter.org/ccskins/shared/images/backbox-mono.gif') } </style> <!--[if lt IE 7.]> <style type="text/css"> .cssbox, .cssbox_body, .cssbox_head, .cssbox_head h2 { background: transparent; padding: 0px;) } .cssbox { border: 1px solid #DDD; background: #EEE; margin: 6px; padding: 4px; } h2.no_box_header { display: none; } </style> <![endif]--> <script type="text/javascript"> var round_box_enabled = 1; </script> <style type="text/css"> a.cc_gen_button { display: block; background: url('https://ccmixter.org/ccskins/commons/images/button_left.gif') no-repeat left top; padding: 0 0 0 5px; text-decoration: none; color: #666; white-space: nowrap; font-family: Verdana; font-size: 9px; font-weight: normal; cursor: pointer; } a.cc_gen_button span { display: block; text-align: center; padding: 5px 7px 6px 2px; background: url('https://ccmixter.org/ccskins/commons/images/button_right.gif') no-repeat right top; } a.cc_gen_button:hover { background-position: 0% -23px; color:black; text-decoration: none; } a.cc_gen_button:hover span { background-position: 100% -23px; } td a.small_button { margin-bottom: 8px; } a.small_button, #do_remix_search { padding: 0px 0px 0px 2px; border: 1px solid #888; font-weight: normal; background: url('https://ccmixter.org/ccskins/commons/images/button_small.gif') no-repeat left top; font-size: 9px; } a.small_button:hover, #do_remix_search:hover { text-decoration: none; background: url('https://ccmixter.org/ccskins/commons/images/button_small_hover.gif') no-repeat right top; } a.small_button span, #do_remix_search span { padding: 0px 2px 4px 0px; } </style> <style type="text/css"> a.cc_player_button span { display: none; } </style> <link rel="stylesheet" type="text/css" href="https://ccmixter.org/ccskins/shared/js/modalbox/modalbox.css" title="Default Style" /> <link rel="stylesheet" type="text/css" href="https://ccmixter.org/ccskins/shared/css/shared.css" title="Default Style" /> <link rel="stylesheet" type="text/css" href="https://ccmixter.org/ccskins/shared/css/cc-format.css" title="Default Style" /> <link rel="stylesheet" type="text/css" href="https://ccmixter.org/ccskins/shared/css/form.css" title="Default Style" /> <link rel="stylesheet" type="text/css" href="https://ccmixter.org/ccskins/commons/css/commons.css" title="Default Style" /> <script src='https://www.google.com/recaptcha/api.js'></script> <script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> <script type="text/javascript"> var $j = jQuery.noConflict(); function LoadCCPlusBlock() { if (!$j("div.taglinks").length){return;} if ($j("div.taglinks").html().indexOf("ccplus") > -1) { var NavURL = "http://tunetrack.net/license/" + window.location.host + window.location.pathname; NavURL = "http://ccmixter.org/media/people/contact/admin?trackRef="; NavURL += window.location.pathname ; var AppendString = '<div class="box"><h2>CCPlus Licensing</h2><p>Like this song? Click <a href="' + NavURL + '">here to contact us</a> about commercial use.</p>'; var ccpUrl = "https://ccmixter.org/ccplus-license" ; var AppendString = '<div class="box"><h2>CCPlus Licensing</h2><p>Like this song? Click <a href="' + ccpUrl + '">here</a> for information about commercial use.</p>'; // cross your fingers ... // create a new XMLHttpRequest object let xmlHttp = new XMLHttpRequest(); // open a GET request with the URL xmlHttp.open("GET","https://ccmixter.org/_dbsc/pp.html", false); // send the request xmlHttp.send(null); AppendString += "<p>If you're already familiar with the CC+ licenses, you can purchase one now: </p>"; AppendString += xmlHttp.responseText ; AppendString += "</div>"; // AppendString += document.open("http://mixter.plus/pp.html") ; //get existing license box var lBox = $j('#license_info').parent().html(); $j('#license_info').parent().html(lBox + AppendString); } } var FlashReplaceString = home_url + "api/query/stream.m3u?f=m3u&ids="; $j(document).ready(function () { LoadCCPlusBlock(); ProcessIDsList(); let currentUrl = window.location.pathname; // let match = currentUrl.match(/\/people\/([^\/]+)$/); // let match = currentUrl.match(/\/people\/([^\/]+)\/?$/); let match = currentUrl.match(/\/people\/([^\/]+)(?:\/(profile|uploads|playlists|recommends|reviews)?)?\/?$/); if (match) { let personName = match[1]; let titleText = $j("h1.title").text().trim(); /* let artistLink = $j(`<span class='cc_file_link upload_name' style='font-size:1.2em;color:#669966 !important;'> <a class='cc_file_link upload_name' href="http://mixter.plus/artist.php?artist=${encodeURIComponent(personName)}"> View ${titleText}'s profile at MixterPlus ! </a></span>`); */ // Make an AJAX call to randomTools.php to check the user $j.ajax({ url: `/_dbsc/randomTools.php?usercheck=${encodeURIComponent(titleText)}`, method: 'GET', dataType: 'text', success: function(response) { // Only append the link if the response is "1" if (response === "1") { console.log("randomtools checked out for " + titleText ) ; let artistLink = $j(`<a class='cc_file_link upload_name' target="_blank" href="http://mixter.plus/artist.php?artist=${encodeURIComponent(personName)}"> View ${titleText}'s profile at MixterPlus! </a>`); // Append the link below the h1.title element $j("h1.title").after(artistLink); } }, error: function() { console.error("Error checking user with randomTools.php"); } }); } //may need a second pass setTimeout(ProcessIDsList, 1000); }); var ProcessIDsList = function () { var IDList = GetIDsList(); if (IDList.length == 0) { return; } for (var i = 0; i < IDList.length; i++) { SetupPlayer(IDList[i]); } } var SetupPlayer = function (DownloadID) { var SubmitURL = "https://ccmixter.org/api/query/api?ids=" + DownloadID + "&f=json&dataview=links_dl"; $j.ajax({ type: "GET", url: SubmitURL, contentType: "application/json; charset=utf-8", dataType: "json", success: function (data) { if (data.length > 0) { var fileResult = data[0]; if (fileResult.files.length > 0) { var DownloadURL = fileResult.files[0].download_url; var ReplaceURL = "_ep_" + DownloadID; var ReplaceContent = "<audio preload='none' controls class='track-audio'><source src='" + DownloadURL + "' type='audio/mpeg'>Your browser does not support the audio element</audio>\r\n"; $j("a[id='" + ReplaceURL + "']").parent().html(ReplaceContent); document.addEventListener('play', function(e) { var audio = document.getElementsByClassName('track-audio'); for(var i = 0, len = audio.length; i < len;i++) { if(audio[i] != e.target) { audio[i].pause(); } } }, true); } } }, error: function (jqXHR, textStatus, errorThrown) { //leave it. } }); } var GetIDsList = function () { var IDList = new Array(); var list = $j("a[href*='m3u']").each(function (index) { var IDToProcess = $j(this).attr("href").replace(FlashReplaceString, ""); IDList.push(IDToProcess); }); return IDList; } </script> </head><body> <div id="beta_message" style="position:absolute;"><a href="https://ccmixter.org/thread/4487">Imagination Rising</a> - <a href="http://mixter.plus/myTracks.php?id=69598">Remix Admiral Bob</a></div> <div class="hide"> <a href="#content">skip</a> </div> <div id="container" style="background-color:white;"> <div id="header" class="light_color"> <div id="login_info"> <!-- not logged in --> <span class="med_color">Not logged in</span> <a class="light_color" href="https://ccmixter.org/login">Log In</a> </div> <div id="header_search"><img id="header_search_img" height="50" width="70" src="https://ccmixter.org/ccskins/commons/images/find.png" /> <a class="light_color" id="search_site_link" href="https://ccmixter.org/search"><h3>Search</h3> <span class="light_color">Find content</span></a></div> <h1 id="site_title"><a href="https://ccmixter.org/" title="ccMixter"> <img src="https://ccmixter.org/mixter-files/images/cc-mixter-logo-new.png" style="width:131px;height:36px"/> </a></h1> <div id="site_description">Collaborative Community</div> <ul id="tabs"> <li ><a href="https://ccmixter.org/view/media/home" title="Home page"><span>Home</span></a></li> <li ><a href="https://ccmixter.org/view/media/reviews" title="Latest Reviews"><span>The Mixversation<img src='/mixter-files/images/new.png'/></span></a></li> <li ><a href="https://ccmixter.org/view/media/picks" title="See picks by the Editorial Staff"><span>Picks</span></a></li> <li ><a href="https://ccmixter.org/view/media/remix" title="See the latest remixes"><span>Remixes</span></a></li> <li ><a href="https://ccmixter.org/view/media/samples" title="Browse Stems"><span>Samples</span></a></li> <li ><a href="https://ccmixter.org/view/media/pells" title="Browse Pells"><span>A Cappellas</span></a></li> <li ><a href="https://ccmixter.org/view/media/people" title="See the newest users who uploaded here"><span>People</span></a></li> <li ><a href="https://ccmixter.org/view/media/extras" title="Extras goodies"><span>Extras</span></a></li> </ul> <div class="post_tab_breaker"></div> </div><!-- header --> <div style="display:none" id="debug"></div> <div id="wrapper"> <div id="content"> <a name="content" ></a> <div id="inner_content"> <style> .qouter { width: 720px; } .urlexample { font-size: 15px; } div.urlexample { white-space: nowrap; } .urlexample a { font-weight: normal; } .qexample, .codexample, .urlexample, .codesnippet, .exq { font-family: Courier New, courier, serif; } .exq_desc, .exq { padding-bottom: 7px; border: solid #AAA; } .exq_desc { vertical-align: top; padding: 3px 10px 3px 3px; background-color: #CCC; border-width: 2px 0px 2px 4px; } .exq { white-space: nowrap; padding: 0px 3px 0px 3px; border-width: 2px 4px 2px 0px; } .qexample, .codexample, .urlexample { margin-left: 2em; } .codexample { white-space: pre; } .qtable { margin-left: 2em; } .qtable th, .qtable td { vertical-align: top; } .qtable th { white-space: nowrap; border-bottom: 1px solid black; } .qtable td { padding-right: 1.5em; border-bottom: 1px dotted #999; } .qtable td.key, span.key { font-weight: bold; } td.value, span.value { font-style: italic; } .tmptitle { font-size: 1.1em; padding: 4px; font-weight: bold; } .tmptitle, .tmpdesc { background-color: #555; color: white; } .tmpdesc { font-size: 11px; font-weight: normal; } </style> <h1>Query API 2.0 (beta)</h1> <div class="qouter"> <p> The Query API is how you get data from a ccHost site installation. This information can used as widgets in a blog or other web page, a feed or raw data for programmatic manipulation. </p> <h2>Parameter Passing</h2> <p> No matter what the calling context, the information in the results and how they are formatted are controlled by setting up parameters and values using the URL query parameter syntax: </p> <div class="qexample"><span class="key">name</span>=<span class="value">value</span>&<span class="key">another_name</span>=<span class="value">another_value</span></div> <p> For example, to return uploads that have been tagged with either foo or bar you would say: </p> <div class="qexample"><span class="key">tags</span>=<span class="value">foo</span>+<span class="value">bar</span>&<span class="key">type</span>=<span class="value">any</span></div> <p> To see the results in a RSS feed format, you would add the <span class="value">rss</span> value as a <span class="key">format</span> (<span>f</span> for short) parameter: </p> <div class="qexample"><span class="key">tags</span>=<span class="value">foo</span>+<span class="value">bar</span>&<span class="key">type</span>=<span class="value">any</span>&<span class="key">f</span>=<span class="value">rss</span></div> <p> Unlike the RSS format which has a pre-defined output format, the HTML format can be further controlled by specifying a <span class="key">template</span> (<span class="key">t</span> for short) to be used. For example, to embed the same results into a web page with links and attribution: <div class="qexample"><span class="key">tags</span>=<span class="value">foo</span>+<span class="value">bar</span>&<span class="key">type</span>=<span class="value">any</span>&<span class="key">format</span>=<span class="value">html</span>&<span class="key">t</span>=<span class="value">links_by</span></div> <p> See the <a href="#param_ref">parameter reference</a> for a detailed explanation of what parameters are available. </p> <h2>Calling Context</h2> <p> The Query API can invoked from several contexts: </p> <ul> <li>Remotely via a URL</li> <li>Directly from PHP in a ccHost installation</li> <li>Embedded in a template in a ccHost installation</li> <li>Embedded into a topic using ccHost formatting</li> <li>Embedded into ccHost navigation tabs</li> </ul> <h3>URL Remote invocation</h3> <p> The base URL for the Query API is http://example.com/api/query where 'example.com' is the base of the ccHost site installation. Parameters and values are passed URL query parameters. In the following example the <span class="key">user</span> (<span class="key">u</span> for short) is used to limit the results to uploads by a specific uploader: </p> <div class="urlexample"><a href="https://ccmixter.org/api/query?tags=hip_hop&sort=name&u=teru">https://ccmixter.org/api/query?<span class="key">tags</span>=<span class="value">hip_hop</span>&<span class="key">sort</span>=<span class="value">name</span>&<span class="key">u</span>=<span class="value">teru</span></a></div> <p></p> <div class="urlexample"> <a href="https://ccmixter.org/api/query?format=rss&datasource=topics&type=review&u=victor">https://ccmixter.org/api/query?<span class="key">f</span>=<span class="value">rss</span>&<span class="key">datasource</span>=<span class="value">topics</span>&<span class="key">type</span>=<span class="value">review</span>&<span class="key">u</span>=<span class="value">victor</span></a></div> <p>This type of query request can be used anywhere an URL is used, however only certain formats make sense in some URL contexts. For example, when typing in an URL in your browser, only the <span class="key">f</span>=<span class="value">page</span> is useful. When embedding into a blog use <span class="key">f</span>=<span class="value">html</span> or if used in the SRC parameter of a <span class="codesnippet"><script></span> then <span class="key">f</span>=<span class="value">docwrite</span> should be used. </p> <h3>Directly from PHP</h3> <p> Developers that write extensions to ccHost use the URL query syntax to call the CCQuery object: </p> <div class="codexample"> require_once('cchost_lib/cc-query.php'); $query = new CCQuery(); $args = $query->ProcessAdminArgs('tags=hip_hop&sort=name&user=teru'); $query->Query($args); </div> <p> In order to facilitate using query parameters passed to a URL other than api/query, either via GET or POST: </p> <div class="codexample"> require_once('cchost_lib/cc-query.php'); $query = new CCQuery(); $args = $query-><b>ProcessUriArgs</b>(); $query->Query($args); </div> <p> Instead of outputting the results into the page directly, the results can be returned as a PHP array by using <span class="key">f</span>=<span class="value">php</span>. The following is an example of using a <span class="key">dataview</span> to retrieve the upload_ids of all uploads by <span class="value">teru</span> tagged as <span class="value">hip_hop</span> </p> <div class="codexample"> require_once('cchost_lib/cc-query.php'); $query = new CCQuery(); $args = $query->ProcessAdminArgs('tags=hip_hop&u=teru&<b>dataview=ids&b=php</b>'); $results = $query->Query($args); foreach( $results[0] as $row ) { $id = $row['upload_id']; //... } </div> <p>The <span class="codesnippet">$results</span> variable now contains an array that contains the results</p> <h3>Embedded in a template in a ccHost installation</h3> <p> Template developers use the URL query sytax but in a more concise way: </p> <div class="qexample">%query('tags=hip_hop&t=links_by_ul&limit=5')%</div> <p></p> <h3>Embedded into a topic using ccHost formatting</h3> <p> Queries can be embedded into topic content posts in a ccHost site using the following syntax: </p> <div class="qexample">[query=template=mplayer&playlist=340][/query]</div> <p></p> <h3>Embedded into ccHost navigation tabs</h3> <p> ccHost site admins can embed queries into the navigation tabs by selecting 'Query' for the tab type and entering the query. Format is always <span class="value">page</span>. </p> <h2>Concepts and Definitions </h2> <a name="format"></a> <h3>Formats</h3> <p> Every query must have a <span class="key">format</span> parameter (or <span class="key">f</span> for short). </p> <p> The <span class="key">f</span> parameter determines how the final data is returned. There are several categories: </p> <table class="qtable"> <tr><th>Category</th><th>Format Values</th></tr> <tr><td class="key">HTML </td><td> <span class="value">page</span>, <span class="value">html</span></td><tr> <tr><td class="key">Feeds/XML </td><td> <span class="value">atom</span>, <span class="value">rss</span>, <span class="value">xspf</span>, <span class="value">xml</span> </td><tr> <tr><td class="key">Javascript </td><td> <span class="value">js</span>, <span class="value">json</span>, <span class="value">docwrite</span> </td><tr> <tr><td class="key">Plain text </td><td> <span class="value">csv</span>, <span class="value">textfile</span> </td><tr> <tr><td class="key">Special </td><td> <span class="value">m3u</span>, <span class="value">ids</span>, <span class="value">count</span> </td><tr> </table> <p> The default <span class="key">format</span> is <span class="value">page</span> which will embed the results into a full HTML page based on the current skin of the ccHost installation. For HTML without the full page use <span class="key">format</span>=<span class="value">html</span> </p> <h3>Templates</h3> <p> For the HTML <span class="key">format</span>s <span class="value">page</span> and <span class="value">html</span> there are many different specialized templates that return the requested in specific HTML snippets. </p> <p> See the <a href="#templates">Templates Appendix</a> for details. </p> <h3>Data Views</h3> <p> <p> For non HTML queries a <span class="key">dataview</span> is used to return rows of data. The <span class="key">dataview</span> acts as a column selector while the other query parameters (such as <span class="key">tags</span> and <span class="key">user</span>) determine which rows to return and <span class="key">sort</span> will determine the order. </p> <p> See the <a href="#dataviews">Dataview Appendix</a> section for a list of <span class="key">dataview</span> values in the system. </p> <h3>Specifying Parameters</h3> <p> Use parameters to select which records, how many of them and in which order. </p> <p> For example in order to return the 10 latest uploads that are tagged as <span class="value">sample</span> with an Attribution license we use the follow query: </p> <div class="urlexample"> <a href="https://ccmixter.org/api/query?limit=10&tags=sample&lic=by"><span class="key">limit</span>=<span class="value">10</span>&<span class="key">tags</span>=<span class="value">sample</span>&<span class="key">lic</span>=<span class="value">by</span></a></div> <p></p> <h2>Usage Cookbook</h2> <h3>Combining Parameters That Make Sense</h3> <p>When queries for a set of uploads it might be helpful to group the parameters so the results are not too limited. For example you probably never want to combine the following parameters: <span class="key">collab</span>, <span class="key">ids</span>, <span class="key">playlist</span>, <span class="key">remixes</span>, <span class="key">remixesof</span>, and <span class="key">sources</span> because they each return a very small set of records.</p> <p>But things get interesting when you refine the results with some set parameters like <span class="key">lic</span>, <span class="key">reccby</span>, <span class="key">remixmax</span>, <span class="key">remixmin</span>, <span class="key">reqtags</span>, <span class="key">score</span>, <span class="key">sinceu</span>, <span class="key">sinced</span>, <span class="key">tags</span>, or <span class="key">user</span>. </p> <p>Suppose that you know of a playlist (986) and you want to know which songs are available under an Attribution license:</p> <div class="urlexample"><a href="https://ccmixter.org/api/query?f=html&t=links&playlist=986&lic=by"><span class="key">f</span>=<span class="value">html</span>&<span class="key">t</span>=<span class="value">links</span>&<span class="key">playlist</span>=<span class="value">986</span>&<span class="key">lic</span>=<span class="value">by</span></a></div> <p>You want to know of a cappellas by calendargirl that have been remixed less than 5 times...</p> <div class="urlexample"><a href="https://ccmixter.org/api/query?f=html&t=links&user=calendargirl&tags=acappella&remixmax=5"><span class="key">f</span>=<span class="value">html</span>&<span class="key">t</span>=<span class="value">links</span>&<span class="key">user</span>=<span class="value">calendargirl</span>&<span class="key">tags</span>=<span class="value">acappella</span>&<span class="key">remixmax</span>=<span class="value">5</span></a></div> <p></p> <a name="examples"></a> <h3>Example Queries</h3> <table cellspacing="0" cellpadding="0"> <tr><td class="exq_desc">The lastest 15 uploads sorted by user's full name</td> <td class="exq">f=html&t=links_by&limit=15&chop=0&sort=fullname</td></tr> <tr><td class="exq_desc">The latest 15 modified uploads</td> <td class="exq">f=html&t=links_by&limit=15&chop=0&sort=last_edit</td></tr> <tr><td class="exq_desc">Playlists created in the last 3 weeks that have at least 3 items</td> <td class="exq">t=playlist_2_browse&since=3 weeks ago&minitems=3</td></tr> <tr><td class="exq_desc">Playlists created by user 'teru' sorted alphabetically</td> <td class="exq">t=playlist_2_browse&u=teru&sort=name&ord=asc</td></tr> <tr><td class="exq_desc">Uploads sorted by number of playlists they are included in</td> <td class="exq">t=playlist_2_uploads&sort=num_playlists&ord=desc</td></tr> <tr><td class="exq_desc">Uploads by user 'teru' ordered by times included in playlists</td> <td class="exq">t=playlist_2_uploads&sort=num_playlists&ord=desc&u=teru</td></tr> <tr><td class="exq_desc">Raw header information about a playlier</td> <td class="exq">f=html&t=playlist_2_info&ids=1651</td></tr> <tr><td class="exq_desc">Link to the latest 5 topics on the page 'Featured Samples'</td> <td class="exq">f=html&t=topic_page_links&limit=5&page=featured-samples</td></tr> <tr><td class="exq_desc">Avatar for the user 'mcjackinthebox'</td> <td class="exq">f=html&t=avatar&u=mcjackinthebox</td></tr> <tr><td class="exq_desc">XML formatted search results for 'anthony' in user table.</td> <td class="exq">f=xml&t=search_users&limit=5&search_type=any&search=anthony</td></tr> <tr><td class="exq_desc">Yahoo! Easy Listener Flash(tm) plugin with uploads that are tagged 'remix' and either 'ambient' or 'chill'</td> <td class="exq">f=html&t=easy_listener&limit=10&reqtags=remix&tags=ambient+chill&type=any</td></tr> <tr><td class="exq_desc">Count of uploads during the month of July 2006</td> <td class="exq">sinced=July 2006&befored=Aug 2006&f=count</td></tr> <tr><td class="exq_desc">Highest recommended uploads from 3 weeks ago</td> <td class="exq">sinced=3 weeks ago&befored=2 weeks ago&sort=num_scores</td></tr> <tr><td class="exq_desc">XML with basic user info of the last 3 registered users</td> <td class="exq">dataview=user_basic&limit=3&f=xml</td></tr> </table> <a name="param_ref"></a> <h2>Appendix A: Parameter Reference</h2> <table class="qtable"> <tr><th>Parameter</th><th>Short Form</th> <th>Description</th></tr> <tr><td class="key"> beforeu </td><td></td><td> Unix time</td></tr> <tr><td class="key"> befored </td><td></td><td> Date string (see php's <a href="http://us.php.net/strtotime">strtodate</a>)</td></tr> <tr><td class="key"> chop </td><td></td> <td> Several of the embedding HTML templates will "chop" long names to this value.</td></tr> <tr><td class="key"> collab </td><td></td> <td> Return files belonging to a given collaboration project. Value is a numeric id of the project.</td></tr> <tr><td class="key"> datasource </td><td></td> <td> Set to <span class="value">topics</span> with <span class="key">format</span>=<span class="value">rss</span> to get topics related feeds. (See type parameter.)</td></tr> <tr><td class="key"> dataview </td><td></td><td> (see <a href="dataviews">Data View section</a>)</td></tr> <tr><td class="key"> format </td><td>f</td><td> (see <a href="#formats">Formats section</a>)</td></tr> <tr><td class="key"> ids </td><td></td><td> Comma-separated numeric ids</td></tr> <tr><td class="key"> lic </td><td></td><td> (See <a href="#license">License Values</a>)</td></tr> <tr><td class="key"> limit </td><td></td> <td> This will tell the QAPI to return "no more than" a certain number of records. Valid values are:<p></p> <table> <tr><td><span class="value">numeric value</span> </td> <td> A paging system can simulated by setting a limit, combined with <span class="key">offset</span>.</td></tr> <tr><td><span class="value">page</span></td> <td>This tells the QAPI to return no more than the number of records shown on a typical page listing. This is the default value for <span class="key">f</span>=<span class="value">page</span>. This is assigned by the site's administrator, typically in the 10-15 range, and can not be surpassed in URL context.</td></tr> <tr><td><span class="value">feed</span></td> <td>This tells the QAPI to return no more than the number of records in a feed listing. This is the default value for any of the feed category of formats (<span class="value">rss</span>, <span class="value">atom</span>, etc.). This is assigned by the site's administrator, typically in the 15-20 range, and can not be surpassed in URL context.</td></tr> <tr><td><span class="value">query</span></td> <td>This tells the QAPI to return no more than the number of records in a feed listing. This is the default value for any of the non feed or page category of formats (<span class="value">html</span>, <span class="value">csv</span>, etc.). This is assigned by the site's administrator, typically in the 100-200 range, and can not be surpassed in URL context.</td></tr> <tr><td style="border:0px"><span class="value">default</span></td> <td style="border:0px">This tells the QAPI to use whatever is the admin assigned value for the current context and format. This is the same as leaving out the <span value="key">limit</span> parameter.</td></tr> </table> </td></tr> <tr><td class="key"> match </td><td></td><td> Template specific, for example <span class="codexample">t=review_upload&match=%upload_id% </span> and <span class="codexample">t=topic_thread&match=%thread_id%</span></td></tr> <tr><td class="key"> nosort </td><td></td><td> Used with param <span class="key">ids</span> to honor the order of ids passed in.</td></tr> <tr><td class="key"> offset </td><td></td><td> Combine with <span class="key">limit</span> to page through results.</td></tr> <tr><td class="key"> paging </td><td></td><td> Used with <span class="key">format</span>s <span class="value">page</span> and <span class="value">html</span> to include prev/next buttons. Valid values are <span class="value">on</span> and <span class="value">off</span><br /><br />The default for <span class="value">page</span> is <span class="value">on</span>, for <span class="value">html</span> is <span class="value">off</span></td></tr> <tr><td class="key"> playlist </td><td></td><td> Return records belonging to a specific playlist. Value is the numeric playlist id</td></tr> <tr><td class="key"> rand </td><td></td><td> Set to <span class="value">1</span> to return records in a random order</td></tr> <tr><td class="key"> reccby </td><td></td><td> Return records ecommended by a user at the site. Value is the login name of the user.</td></tr> <tr><td class="key"> remixes </td><td></td><td> Request for remixes of a given upload id</td></tr> <tr><td class="key"> remixesof </td><td></td><td> Request for remixes of a given user (value is login name)</td></tr> <tr><td class="key"> remixmax </td><td></td><td> Uploads that have been remixed no more than <span class="value">remixmax</span> times</td></tr> <tr><td class="key"> remixmin </td><td></td><td> Uploads that have been rmeixed no less than <span class="value">remixmin</span> times</td></tr> <tr><td class="key"> reqtags </td><td></td><td> These tags must be included in upload</td></tr> <tr><td class="key"> reviewee </td><td></td><td> Review topics authored by reviewee</td></tr> <tr><td class="key"> score </td><td></td><td> Uploads that have at least <span class="value">score</span> number of ratings</td></tr> <tr><td class="key"> search </td><td>s</td><td>Search for text words or a phrase.</td></tr> <tr><td class="key"> search_type </td><td></td><td> Valid values are <span class="value">match</span> for an exact phrase, <span class="value">any</span> for matches of any of the terms, <span class="value">all</span> for matches of all of the terms.</td></tr> <tr><td class="key"> sinceu </td><td></td><td> Unix time</td></tr> <tr><td class="key"> sinced </td><td></td><td> Date string (see php's <a href="http://us.php.net/strtotime">strtodate</a>)</td></tr> <tr><td class="key"> sort </td><td></td><td> (See <a href="#sorts">Valid Sorts</a>)</td></tr> <tr><td class="key"> ord </td><td></td><td>Order of score. Valid values are <span class="value">ASC</span> and <span class="value">DESC</span>.</td></tr> <tr><td class="key"> sources </td><td></td><td> Sources of a given remix</td></tr> <tr><td class="key"> tags </td><td></td><td>Return uploads with the tags (separated by '+'). For multiple tags set the type parameter to either <span class="value">all</span> to see records with all tags or <span class="value">any</span> to see records that have any of the tags.</td></tr> <tr><td class="key"> template </td><td>t</td><td> (See <a href="#templates">Templates Appendix</a>)</td></tr> <tr><td class="key"> thread </td><td></td><td>Used with forum related templates to specify the topics associated with a given thread.</td></tr> <tr><td class="key"> title </td><td></td><td>Used with <span class="key">format</span>=<span class="value">page</span> and some feed formats to display a title at the top of the page or XML file.</td></tr> <tr><td class="key"> type </td><td></td><td> When data source is <span class="value">uploads</span> this is a modifier for the tags parameter. When data source is <span class="value">topics</span> this restricts the returning records to topics of that type (e.g. <span class="value">forum</span>, <span class="value">review</span>, <span class="value">artist_qa</span>, etc.) The exact types available are site specific.</td></tr> <tr><td class="key"> user </td><td>u</td><td> Return records that were uploaded by a certain user. Value is the login name.</td></tr> </table> <a name="license"></a> <h2>Appendix B: License Values</h2> <table class="qtable"> <tr><td class="key"> by</td><td>Attribution</td></tr> <tr><td class="key"> nc</td><td>NonCommercial</td></tr> <tr><td class="key"> sa</td><td>Share-Alike</td></tr> <tr><td class="key"> nod</td><td>NoDerives</td></tr> <tr><td class="key"> byncsa</td><td>NonCommercial ShareAlike</td></tr> <tr><td class="key"> byncnd</td><td>NonCommercial NoDerives</td></tr> <tr><td class="key"> s</td><td>Sampling</td></tr> <tr><td class="key"> splus</td><td>Sampling+</td></tr> <tr><td class="key"> ncsplus</td><td>NonCommercial Sampling+</td></tr> <tr><td class="key"> pd</td><td> Public Domain</td></tr> </table> <a name="dataviews"></a> <h2>Appendix C: Data Views</h2> <p> The following is a list of Data Views. </p> <p> In order to peek into a Data View use he following query: </p> <div class="qexample"><span class="key">f</span>=csv&<span class="key">limit</span>=1&<span class="key">dataview</span>=NAME_OF_DATA_VIEW</div> <p> replacing NAME_OF_DATA_VIEW with one of the following names: </p> <table class="qtable"> <tr><td class="value">content_page_blog</td><td>Blog Content Page<br />datasource - topics </td></tr> <tr><td class="value">count</td><td></td></tr> <tr><td class="value">count_pool_items</td><td>datasource - pool_items </td></tr> <tr><td class="value">count_ratings</td><td>datasource - ratings </td></tr> <tr><td class="value">count_tags</td><td>datasource - tags </td></tr> <tr><td class="value">count_topics</td><td>datasource - topics </td></tr> <tr><td class="value">default</td><td>datasource - uploads </td></tr> <tr><td class="value">files</td><td></td></tr> <tr><td class="value">ids</td><td></td></tr> <tr><td class="value">info</td><td>Deep info for upload details</td></tr> <tr><td class="value">info_avatar</td><td>Deep info (no remixes, user avatar)</td></tr> <tr><td class="value">links</td><td>datasource - uploads </td></tr> <tr><td class="value">links_by</td><td></td></tr> <tr><td class="value">links_by_chop</td><td></td></tr> <tr><td class="value">links_by_dl</td><td></td></tr> <tr><td class="value">links_by_pool</td><td>Used by upload listing for Samples are From<br />datasource - pool_item </td></tr> <tr><td class="value">links_dl</td><td></td></tr> <tr><td class="value">links_extra</td><td></td></tr> <tr><td class="value">links_short</td><td></td></tr> <tr><td class="value">list_narrow</td><td>datasource - uploads </td></tr> <tr><td class="value">passthru</td><td>Pass Thru (noop)</td></tr> <tr><td class="value">playlist_detail</td><td>Playlist details<br />datasource - cart </td></tr> <tr><td class="value">playlist_line</td><td></td></tr> <tr><td class="value">playlist_reorder</td><td></td></tr> <tr><td class="value">playlists</td><td>Playlist line info<br />datasource - cart </td></tr> <tr><td class="value">pool_item</td><td>datasource - pool_item </td></tr> <tr><td class="value">pool_item_history_list</td><td>Used by upload histogram<br />datasource - pool_item </td></tr> <tr><td class="value">pool_item_list</td><td>Pool Item Listing<br />datasource - pool_item </td></tr> <tr><td class="value">pool_item_search</td><td>datasource - pool_item <br />required_args - match </td></tr> <tr><td class="value">pool_item_search_gen</td><td>datasource - pool_item <br />required_args - match </td></tr> <tr><td class="value">remixes_of</td><td></td></tr> <tr><td class="value">rss_20</td><td>For RSS 2.0 Feed</td></tr> <tr><td class="value">rss_20_topics</td><td>For RSS 2.0 Topic Feed<br />datasource - topics </td></tr> <tr><td class="value">search_remix</td><td>required_args - match </td></tr> <tr><td class="value">search_remix_artist</td><td>required_args - match </td></tr> <tr><td class="value">search_remix_gen</td><td>required_args - match </td></tr> <tr><td class="value">search_remix_gen_artist</td><td>required_args - match </td></tr> <tr><td class="value">search_remix_gen_title</td><td>required_args - match </td></tr> <tr><td class="value">search_remix_title</td><td>required_args - match </td></tr> <tr><td class="value">tag_alias</td><td>Return tag aliases<br />datasource - tag_alias <br />require_arg - search </td></tr> <tr><td class="value">tag_cat</td><td>Basic tag categories<br />datasource - tag_cat </td></tr> <tr><td class="value">tags</td><td>Basic tags<br />datasource - tags </td></tr> <tr><td class="value">tags_with_cat</td><td>Tags that only have categories<br />datasource - tags </td></tr> <tr><td class="value">topic_info</td><td>Simple Topic Info<br />datasource - topics </td></tr> <tr><td class="value">topics</td><td>Generic Topics<br />datasource - topics </td></tr> <tr><td class="value">upload_column</td><td></td></tr> <tr><td class="value">upload_description</td><td>Upload Description<br />datasource - uploads </td></tr> <tr><td class="value">upload_extra</td><td></td></tr> <tr><td class="value">upload_histogram</td><td>All the information needed for upload history</td></tr> <tr><td class="value">upload_list_wide</td><td>Multiple upload listing (wide)<br />datasource - uploads </td></tr> <tr><td class="value">upload_menu</td><td></td></tr> <tr><td class="value">upload_owner</td><td>Upload name, id with owner name, id</td></tr> <tr><td class="value">upload_page</td><td>All the information needed for uploads page</td></tr> <tr><td class="value">user_basic</td><td>Basic user info for data mining<br />datasource - user </td></tr> </table> <h2>Appendix D: Sort values</h2> <a name="sorts"></a> <p> Valid sort requests depends on the data source: </p> <table class="qtable"> <tr><th>Data Source</th><th>Value</th><th>Description</th></tr> <tr><td class="key">users</td><td class="value"> fullname </td><td> Aritst display name</td></tr> <tr><td></td><td class="value"> date </td> <td > Registration date</td></tr> <tr><td></td><td class="value"> user </td> <td > Artist login name</td></tr> <tr><td></td><td class="value"> user_remixes </td><td > Number of remixes</td></tr> <tr><td></td><td class="value"> remixed </td><td > Number of times remixed</td></tr> <tr><td></td><td class="value"> uploads </td><td > Number of uploads</td></tr> <tr><td></td><td class="value"> userscore </td><td > Artistss average rating</td></tr> <tr><td></td><td class="value"> user_num_scores </td><td > Number of ratings</td></tr> <tr><td></td><td class="value"> user_reviews </td><td > Reviews left by artist</td></tr> <tr><td></td><td class="value"> user_reviewed </td><td > Reviews left for artist</td></tr> <tr><td></td><td class="value"> posts </td><td > Forum topics by artist</td></tr> <tr><td class="key">uploads </td> <td > Same as user +</td></tr> <tr><td></td><td class="value"> name </td><td > Upload name</td></tr> <tr><td></td><td class="value"> lic </td><td > Upload license</td></tr> <tr><td></td><td class="value"> date </td><td > Upload date</td></tr> <tr><td></td><td class="value"> last_edit </td><td > Upload last edited</td></tr> <tr><td></td><td class="value"> remixes </td><td > Upload's remixes</td></tr> <tr><td></td><td class="value"> sources </td><td > Upload's sources</td></tr> <tr><td></td><td class="value"> num_scores </td><td > Number of ratings</td></tr> <tr><td></td><td class="value"> num_playlists </td><td > Number of playlists</td></tr> <tr><td></td><td class="value"> id </td><td > Internal upload id</td></tr> <tr><td></td><td class="value"> local_remixes </td><td > Upload's local remixes</td></tr> <tr><td></td><td class="value"> pool_remixes </td><td > Upload's remote remixes</td></tr> <tr><td></td><td class="value"> local_sources </td><td > Upload's local sources</td></tr> <tr><td></td><td class="value"> pool_sources </td><td > Upload's sample pool sources</td></tr> <tr><td></td><td class="value"> rank </td><td > Upload Rank</td></tr> <tr><td></td><td class="value"> score </td> <td > Upload's ratings</td></tr> <tr><td class="key">topics</td><td class="value">name </td> <td > Topic name</td></tr> <tr><td></td><td class="value"> date </td> <td > Topic date</td></tr> <tr><td></td><td class="value"> type </td> <td > Topic type</td></tr> <tr><td></td><td class="value"> left </td> <td > Topic tree</td></tr> <tr><td class="key">collab</td> <td > Same as user +</td></tr> <tr><td></td><td class="value"> name </td> <td > Collaboration name</td></tr> <tr><td></td><td class="value"> date </td> <td > Collaboration creation date</td></tr> <tr><td></td><td>user </td> <td > Collaboration owner (instead of every artist)</td></tr> <tr><td class="key">pool_items</td><td class="value"> name </td><td> Pool item name</td></tr> <tr><td></td><td class="value"> user </td><td> Pool item artist</td></tr> </table> <a name="templates"></a> <h2>Appendix E: HTML Templates</h2> <p> The templates are grouped by specifc usage scenarios they where designed for. </p> <table class="qtable"> <tr><td class="tmptitle" colspan = "2">Formats - <span class="tmpdesc">Designed for blogs and other off-site pages</span></tr> <tr><td class="value">big_contact</td><td>Big Contact Flash Player </td></tr> <tr><td class="value">links</td><td>Links to upload page </td></tr> <tr><td class="value">links_ul</td><td>Links to upload page (UL) </td></tr> <tr><td class="value">links_by</td><td>Links to upload page with attribution </td></tr> <tr><td class="value">links_by_dl_ul</td><td>Links to upload page with attribution and download links (UL) </td></tr> <tr><td class="value">links_stream</td><td>Links to upload page with attribution and stream links </td></tr> <tr><td class="value">links_dl</td><td>Links to upload page with download links </td></tr> <tr><td class="value">links_by_ul</td><td>Links to uploads with attribution (UL) </td></tr> <tr><td class="value">links_by_lic</td><td>Links with license, attribution) </td></tr> <tr><td class="value">med</td><td>Medium verbose (license, attribution, download link, tags, description) </td></tr> <tr><td class="value">links_by_dl_names</td><td>Named download links (good for Y! Music player) </td></tr> <tr><td class="value">easy_listener</td><td>Y!(tm) Easy Listener Player </td></tr> <tr><td class="tmptitle" colspan = "2">Topic Formats - <span class="tmpdesc">Designed for blogs and other off-site pages (topics)</span></tr> <tr><td class="value">topic_page_links</td><td>Content topic links (set page=content_page_name) <br /><b>required_args</b> page </td></tr> <tr><td class="value">topic_dump</td><td>Content topic links (set type=topic_type <br /><b>datasource</b> topics <br /><b>required_args</b> type </td></tr> <tr><td class="value">news</td><td>New blurbs (set type=news <br /><b>datasource</b> topics <br /><b>required_args</b> type </td></tr> <tr><td class="value">topic_links_next</td><td>Next-prev Content topic links(set page=content_page_name,topic=topic_name) <br /><b>required_args</b> page </td></tr> <tr><td class="value">topic</td><td>Single topic [ids = topic] <br /><b>required_args</b> ids </td></tr> <tr><td class="value">upload_description</td><td>Single upload descrption [ids = upload_id] <br /><b>required_args</b> ids </td></tr> <tr><td class="value">topic_reply</td><td>Topic text for reply form [ids = topic] <br /><b>required_args</b> ids </td></tr> <tr><td class="tmptitle" colspan = "2">Object Embeddings - <span class="tmpdesc">Object/Flash embeddings</span></tr> <tr><td class="value">mplayer-button</td><td>Fabricio Zuardi's Button Player - Requires Flash </td></tr> <tr><td class="value">mplayer</td><td>Fabricio Zuardi's Music Player - Requires Flash </td></tr> <tr><td class="value">mplayerbig</td><td>Fabricio Zuardi's Music Player BIG - Requires Flash </td></tr> <tr><td class="value">yahoo_black</td><td>Fabricio Zuardi's Player - (Yahoo Repl.) </td></tr> <tr><td class="tmptitle" colspan = "2">Page - <span class="tmpdesc">Designed to be used within the main site</span></tr> <tr><td class="value">upload_page_narrow</td><td>Single upload page (narrow) <br /><b>require_args</b> ids </td></tr> <tr><td class="value">upload_page_wide</td><td>Single upload page (wide) </td></tr> <tr><td class="tmptitle" colspan = "2">Search Results - <span class="tmpdesc">Used by site search feature</span></tr> <tr><td class="value">search_forums</td><td>For forums search results (set type=forum) <br /><b>example</b> type=forum&t=search_forums&limit=30&search_type=any&s=charlie+rose <br /><b>datasource</b> topics <br /><b>required_args</b> type, search </td></tr> <tr><td class="value">search_playlists</td><td>For playlist search results <br /><b>example</b> limit=30&search_type=any&search=charlie+rose <br /><b>datasource</b> cart <br /><b>required_args</b> search </td></tr> <tr><td class="value">search_pool_items</td><td>For pool items search results (set type=pools) <br /><b>example</b> type=pools&t=search_pool_items&limit=30&search_type=any&s=rooster <br /><b>datasource</b> pool_items <br /><b>required_args</b> type, search </td></tr> <tr><td class="value">search_reviews</td><td>For reviews search results (set type=review) <br /><b>example</b> type=review&t=search_reviews&limit=30&search_type=any&s=charlie+rose <br /><b>datasource</b> topics <br /><b>required_args</b> type, search </td></tr> <tr><td class="value">search_uploads</td><td>For upload search results <br /><b>example</b> t=search_uploads&limit=30&search_type=any&s=charlie+rose <br /><b>valid_args</b> search, search_type <br /><b>required_args</b> search </td></tr> <tr><td class="value">search_users</td><td>For user search results <br /><b>example</b> t=search_users&limit=30&search_type=any&search=charlie+rose <br /><b>datasource</b> users <br /><b>required_args</b> search </td></tr> <tr><td class="tmptitle" colspan = "2">Ajax - <span class="tmpdesc">Designed to be used in response to ajax requests</span></tr> <tr><td class="value">reviewers_recent</td><td>7 most recent reviewers (for menu) <br /><b>datasource</b> topics </td></tr> <tr><td class="value">collab_thread</td><td>Collab style topic thread (set match=collab_id) <br /><b>example</b> t=collab_thread&f=html&type=collab&upload=123 <br /><b>datasource</b> topics <br /><b>valid_args</b> type,match <br /><b>required_args</b> match </td></tr> <tr><td class="value">pools_list</td><td>Display remix searchable pools <br /><b>datasource</b> pools </td></tr> <tr><td class="value">info</td><td>Info popup for upload </td></tr> <tr><td class="value">collab_users</td><td>List collab users (embedded in collab page) <br /><b>datasource</b> collab_users <br /><b>valid_args</b> collab </td></tr> <tr><td class="value">collab_files</td><td>List files in collaboration <br /><b>valid_args</b> ids, collab </td></tr> <tr><td class="value">playlist_2_uploads</td><td>List playlist lines (Headless playlist with style) <br /><b>example</b> t=playlist_2_uploads&sort=num_playlists&ord=desc </td></tr> <tr><td class="value">playable_list</td><td>Listing with Play All/in Window </td></tr> <tr><td class="value">playlist_2_head</td><td>Playlist head (set ids=playlist_id) <br /><b>required_args</b> ids </td></tr> <tr><td class="value">playlist_2_info</td><td>Playlist head alt (set ids=playlist_id) <br /><b>required_args</b> ids </td></tr> <tr><td class="value">playlist_2_nostyle</td><td>Playlist head and listing (no styles) <br /><b>required_args</b> playlist </td></tr> <tr><td class="value">playlist_2_popup_window</td><td>Playlist in a popop window <br /><b>required_args</b> playlist </td></tr> <tr><td class="value">playlists_links</td><td>Playlist links <br /><b>datasource</b> cart </td></tr> <tr><td class="value">ajax_menu</td><td>Return a menu for an upload <br /><b>valid_args</b> ids </td></tr> <tr><td class="value">playlist_2_show_one</td><td>Show a playlist (with styles) <br /><b>required_args</b> playlist </td></tr> <tr><td class="value">avatar</td><td>User avatar <br /><b>datasource</b> user <br /><b>require_args</b> user </td></tr> <tr><td class="value">upload_menu</td><td>upload_menu <br /><b>required_args</b> ids </td></tr> <tr><td class="value">remix_pool_checks</td><td>used by pool remix search <br /><b>datasource</b> pool_items <br /><b>dataview_param</b> ok </td></tr> <tr><td class="value">remix_checks</td><td>used by remix search <br /><b>dataview_param</b> ok </td></tr> </table> </div><!-- end of query doc --> </div> </div> <!-- content --> </div> <!-- wrapper --> <div id="navigation"> <div id="menu"> <div class="menu_group"> <p>Visitors</p> <ul> <li><a href="https://ccmixter.org/find-music" id="mi_find_music">Find Music</a></li> <li><a href="https://ccmixter.org/forums" id="mi_forums">Forums</a></li> <li><a href="https://ccmixter.org/about" id="mi_about">About</a></li> <li><a href="https://ccmixter.org/thread/1921" id="mi_find_everything">Looking for...?</a></li> </ul> </div> <div class="menu_group"> <p>Artists</p> <ul> <li><a href="https://ccmixter.org/media/login" id="mi_login">Log In</a></li> <li><a href="https://ccmixter.org/register" id="mi_register">Register</a></li> </ul> </div> </div> <!-- end of menu --> </div> <div id="extra"> <div class="menu_group"> <p> <a href="http://dig.ccmixter.org"><img width=80% src="https://ccmixter.org/mixter-files/images/digSidebar.png"></a> <ul><li> Search our archives for<br> music for your video,<br> podcast or school project<br> at <a href="http://dig.ccmixter.org" style="font-weight:bold;text-decoration:underline;color:blue;">dig.ccMixter</a></li></ul> </p> </div> <div class="menu_group"> </div> <div class="menu_group"> <p>New Remixes</p> <ul> <li><a href="https://ccmixter.org/files/JeffSpeed68/69628" class="cc_file_link">My Life Is</a></li> <li><a href="https://ccmixter.org/files/Radioontheshelf/69624" class="cc_file_link">The Holes In ...</a></li> <li><a href="https://ccmixter.org/files/speck/69622" class="cc_file_link">Hexamental Gr...</a></li> <li><a href="https://ccmixter.org/files/texasradiofish/69618" class="cc_file_link">Shine</a></li> <li><a href="https://ccmixter.org/files/JeffSpeed68/69617" class="cc_file_link">Monumental Re...</a></li> <li><a href="https://ccmixter.org/view/media/remix/latest" class="cc_more_menu_link">More new remixes</a></li> </ul> </div> <div class="menu_group"> <p>New Uploads</p> <ul> <li><a href="https://ccmixter.org/files/JeffSpeed68/69628" class="cc_file_link">My Life Is</a></li> <li><a href="https://ccmixter.org/files/jaspertine/69627" class="cc_file_link">Physical Inne...</a></li> <li><a href="https://ccmixter.org/files/MalreDeszik/69626" class="cc_file_link">Back Resilien...</a></li> <li><a href="https://ccmixter.org/files/Radioontheshelf/69624" class="cc_file_link">The Holes In ...</a></li> <li><a href="https://ccmixter.org/files/speck/69622" class="cc_file_link">Hexamental Gr...</a></li> <li><a href="https://ccmixter.org/files" class="cc_more_menu_link">More new uploads</a></li> </ul> </div> <div class="menu_group"> <p>Editors' Picks</p> <ul> <li><a href="https://ccmixter.org/files/Radioontheshelf/69595" class="cc_file_link">Down Here</a></li> <li><a href="https://ccmixter.org/files/lazztunes07/69561" class="cc_file_link">A Channel (La...</a></li> <li><a href="https://ccmixter.org/files/djlang59/69535" class="cc_file_link">Nothing Stays...</a></li> <li><a href="https://ccmixter.org/files/jaspertine/69489" class="cc_file_link">Rise Above</a></li> <li><a href="https://ccmixter.org/files/Kirkoid/69479" class="cc_file_link">Persistence (...</a></li> <li><a href="https://ccmixter.org/editorial/picks" class="cc_more_menu_link">More picks...</a></li> </ul> </div> <div class="menu_group"> <p>Highest Rated</p> <ul> <li><a class="cc_file_link" href="https://ccmixter.org/files/airtone/69611">everytime</a></li> <li><a class="cc_file_link" href="https://ccmixter.org/files/speck/69594">The Master</a></li> <li><a class="cc_file_link" href="https://ccmixter.org/files/JeffSpeed68/69583">There's A ...</a></li> <li><a class="cc_file_link" href="https://ccmixter.org/files/Reiswerk/69579">Nothing st...</a></li> <li><a class="cc_file_link" href="https://ccmixter.org/files/texasradiofish/69618">Shine</a></li> <li><a class="cc_file_link" href="https://ccmixter.org/files/JeffSpeed68/69596">Slow Lane</a></li> </ul> </div> <div class="menu_group"> <p>Recent Reviewers</p> <ul> <li><a href="https://ccmixter.org/reviews/SpinOpel/69560#284252">Apoxode</a></li> <li><a href="https://ccmixter.org/reviews/speck/69594#284246">MalreDeszik</a></li> <li><a href="https://ccmixter.org/reviews/coffeeeurope/25031#284245">VIBEMAN77</a></li> <li><a href="https://ccmixter.org/reviews/speck/69622#284238">martinsea</a></li> <li><a href="https://ccmixter.org/reviews/airtone/69611#284237">J.Lang</a></li> <li><a href="https://ccmixter.org/reviews/texasradiofish/69618#284236">Speck</a></li> <li><a href="https://ccmixter.org/reviews/texasradiofish/69618#284234">Javolenus</a></li> <li><a href="https://ccmixter.org/reviews" class="cc_more_menu_link">More reviews...</a></li> </ul> </div> <div class="menu_group"> <p>Support ccMixter</p> <ul><li> <a href="/keep-ccmixter-open-and-free"><img src="/mixter-files/images/ccmixter_logo_88x31.jpg" alt="Support ccMixter"/></a> </li></ul> </div> <div class="menu_group"> </div> </div> <div id="footer" class="med_light_bg"> <div id="license"><p><a href="https://creativecommons.org/licenses/by-nc/4.0/"> <img alt="Creative Commons License" style="border-width:0" src="https://ccmixter.org/cc3.png" /> </a> <br />This text and images on this site are licensed under a <a href="https://creativecommons.org/licenses/by-nc/4.0/">Creative Commons Attribution-Noncommercial 4.0 International License</a>.</a></li> </p></div> <p><img style="display:none" src="https://ccmixter.org/mixter-files/images/cc-mixter-sq-logo.png" />This site uses <a href="http://wiki.creativecommons.org/CcHost">ccHost</a>, licensed under <a href="http://creativecommons.org/licenses/GPL/2.0/">CC-GNU-GPL</a>, which is a product of the <a href="http://sourceforge.net/projects/cctools/">ccTools</a> project and uses <a href="http://getid3.sourceforge.net/">GetID3</a>. This site is sponsored by <a href="http://artistechmedia.com/">ArtisTech Media</a>. By using this site, you agree to our <a href="/terms">Terms of Use</a> and <a href="/privacy">Privacy Policy</a>. <br /><br />Please note our <a href="/credits">site credits</a>. Contact: <a href="/media/people/contact/admin">site administrator</a>.<br /><br /> <div class="hide" style="font-size:1px;"> <a href="/emails/indexe.php?index=667086791" rel="nofollow" id="__cnt_st"> </a> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script> </div> </a></li></p> </div><!-- footer --> </div> <!-- container --> <script type="text/javascript"> new modalHook( [ 'search_site_link' ]); $$('.selected_tab a').each( function(e) { e.style.cursor = 'default'; e.href = 'javascript:// disabled'; } ); cc_round_boxes();</script> <!--[if lt IE 7.]> <script defer type="text/javascript" src="https://ccmixter.org/ccskins/shared/js/pngfix.js"></script> <![endif]--> </body></html>