Prev.
TBGNavigation for mobiles - pull down menu

Navigating the Website

Developer Platform

Connecting Apps to Diskery

Blue Question Mark

Diskery's operating platform is open to developers. Now you are free to integrate Diskery's database into anything you choose to innovate. This file is a general Q&A session for such developers and, along with the database help system here at the Diskery website, is the only user manual available. It is not an extensive technical manual and is intended for individuals who already have at least a basic background in app development involving APIs. Be advised, this service is very much under development and this text and service may change at any time without notice.

Let it be known that the term "App Environment" is to mean the diskery_App.php software application and this service.

Let it be known that the term "App Developer" is to mean the user/subscriber to this service.


Menu:
Is There Help Agents Available if I Get Stuck?
No. This file is a general Q&A session for App Developers and, along with the database help system here at the Diskery website, is the only user assistance available. Sorry to sound blunt but, as a developer, you are expected to know what you are doing.


Is There A Cost?
Yes. There is an annual fee planned for the use of the service simply because App Developers are considered 'corporate users' and therefore are expected to be accessing the system more often than a causal person using their web browser. Such access invokes more cost to us, so we pass this back to you. Also, it is a matter of fairness in that you are using our system and presumably making money by selling your App or service to end customers. This fee is a sliding scale depending on your average usage of our systems. The starting (lowest) fee is $20 (US)/mo. and increases in $5/mo. increments there-after. Minimum is 6 months. This fee is subject to change and has not yet been finalized. Payment is always up-front. There is no discount for charity, government or business size since the cost is so low to start.

This fee is NON-REFUNDABLE. Therefore if you cancel, you do not get the money back; there is no pro-rating.

Be Advised: Because we are in the Beta testing version of the App Environment all fees are temporarily suspended. However, you will be expected to begin payments in the future but may cancel if you choose; you will be given notice and ample time to prepare.

Note also: because this service is also in the Beta Test stages, there is no guarantee of service.


Are There Limits on Who Can Access the Service?
Yes. Any organization who promotes hate, racism, political parties, organized crime, any direct competitor to Diskery, hackers, you are located in any nation which does not recognize and enforce international copyright treaties, or those who have previously been banned from Diskery where the ban persists. We may exclude any one, or any organization for any reason, even beyond this list with or without cause.

You may not make any attempts to hack, reverse engineer, modify or redistribute the Diskery database or its source code, including this App Environment.


Can I Get Access to the App Source Code?
No. It is a proprietary system.


Is There A Cost While I am Developing My App?
There is no fee charged to you during your development stage. Indeed, anyone accessing record ID=0 (NAME=EXAMPLE BAND) or record ID=* (NAME=RANDOM BAND) pays no fee as these are considered the test, or 'example', records and you can access it all you like to test your application. These will allow your App to have access to all possible types of responses for testing purposes. For more information on URL's and response output, see Connecting to Diskery? later in this document.


What Access to Copyright Material Do I Have?
Diskery, its contents and the App Environment are under copyright.

With payment of your membership fee you have re-broadcast rights on the material your App accesses. This right does not extend to modification of the data beyond the technological restrictions imposed by your device or where content is simply not needed (removing a picture because you don't have room, prefer another in your own archive, or lowering its resolution are all permitted, likewise is truncating the length of an article, or using selected sections of it. Modifying the image or text outright are not allowed unless mandated by law).

You may not claim, nor lead anyone to believe you are staking claim, control or ownership over any of the material you obtain from Diskery, unless you honestly have certification to such claim (you are the copyright owner, for example).

Be advised: Diskery often uses content provided by others and these rights may be limited to you on some articles. USE COMMON SENSE when selecting what material to use. Although the text is owned by Diskery, images and video content may not be. Items under CC (Creative Commons), Public Domain, or on direct ownership or license to Diskery are safe, other content licensed only to Diskery for use, or Diskery uses under 'fair use' exemption, may or may not apply to you and may not be safe for you to use. When in doubt ask us, ask the owner, or don't use it! Diskery simply provides access to the content, YOU ARE RESPONSIBLE FOR ANY VIOLATIONS OF COPYRIGHT THAT HAPPEN BECAUSE OF THE USE OF MATERIAL ON YOUR APP. This means, if someone tries to sue us because their material is on your App, you have to pay the settlement and legal costs!

You must declare/credit, in a reasonable manner, the name/source of the material you use. Under normal circumstances this is provided in your data stream from Diskery.

While you may charge fees for the purchase or use of your App, you not permitted to charge any fee (beyond what we may charge you) for access to the Diskery material itself, or to have any method or text that indicates directly or indirectly that a user is paying anything extra for access to Diskery data. That is: the Diskery data is an at-cost or free service. This does not restrict your ability to charge for your device itself, charge for other features/services, include advertising, etc.

As a part of your license, you must use the Diskery logo on your device or its software. Where you are using Diskery as one of multiple input sources for your App, you must explicitly state Diskery as the source for data received from Diskery. Your license allows you use of the Diskery logo. Use the official logo, do not create any variation of your own.

You do not have rights to archive, store, and redistribute (beyond the confines of your device) any material you find at Diskery. This is a ONE TIME LICENSE that permits its use for the device you have stated you are requiring it for. You are free to make as many duplications/subscriptions to your device or service as you like, and are free to update your device to new versions as much as you like as long as those modifications are a clear straight line back to the original device/software/invention. For example: a fictional device called DISK-PAD, a mobile wireless 'jukebox' spawns a new version next year: DISK-PAD2. This is allowed as one device is the child/next generation of the previous. Your license would not extend to a wholly unrelated device called DISK-4-CAR, a device that links the radio to Diskery content, however. It's not the name of the device, it's the intended function: One is carried by hand, the other is installed in a car and has a different use of the data.


Connecting to Diskery?
Connecting to Diskery using your App involves using an 'HTTPS' (web style) connection via a GET API request. Although you can do this using a URL POST method, standards in API development call for GET. POST, however, is more secure, and many developers prefer that so all POST requests are translated to be GET ones within Diskery itself. For added security, it is highly recommended you use the secure (HTTPS) protocol as opposed to HTTP. Diskery converts all HTTP requests to HTTPS. DISKERY IS NOT RESPONSIBLE FOR YOUR USER SECURITY!

If successful, Diskery will respond with a flat UTF-8 text stream formatted in JSON (JavaScript Object Notation). Most web development languages (JavaScript, PHP, Python, etc...) all have built in access and parsing functions for this very purpose.

The App connection URL is: https://www.diskery.com/diskery_App.php?[PARAMETERS]

[PARAMETERS] must one or a combination of the following:

NAME
ID
COUNTRY
CITY
GENRENAME
OPDATES
RRCAID
USERPASS
USERNAME
COMPRESS
  • These parameters may appear in any order.
  • All parameters are alpha-numeric.
  • Parameters can be either UPPER CASE or lower case.
  • Parameters must be followed by an equals sign (=) then followed by their setting.
  • If you use NAME, you cannot use ID or vice versa (only one of each can appear).
  • USERPASS & USERNAME must conform to the name and password for the application device maker as defined in your application for membership. This is for the DEVICE manufacturer. Individual user access will be controlled by you and your device.
  • All other parameters are optional. The minimal required is USERNAME, USERPASS, NAME (or ID).
  • As of App version build number 2.0.0:2, released quietly on the last day of 2023, the COMPRESS parameter is now available.
Example URL: https://www.diskery.com/diskery_app.php?NAME=Example Band&COUNTRY=USA&USERPASS=Example1&USERNAME=AppDeveloperName

ParameterMeaning
NAMEName or artist as they appear in the Diskery database.
IDDatabase Record ID of Artist as it appears in the Diskery database.
COUNTRYCountry of origin as it appears in the Diskery database.
CITYCity and governmental territory as they appear in the Diskery database, comma separated (as in: "Toronto, Ontario" or "San Francisco, California").
GENRENAMEGenre as it appears in the Diskery database (example: "Death Metal").
OPDATESArtists active (or "operational") dates (example: 1981-1985, 2002, 2005-). OPDATES is forgiving, as long as you list one date in the stream it will pass the test ("1981").
COMPRESSCOMPRESS is optional. It receives only a single instruction. If set to 'TRUE', as in COMPRESS=TRUE, it attempts to remove empty/unused elements in the resulting JSON transmission to reduce transmission time and space, the amount of reduction varies depending on the data payload and is still considered experimental. If it contains any other value (or is not present) compression is auto-set to 'FALSE'.
RRCAIDDatabase RRCAID as it appears in the Diskery database. Not all records have this as it is a depreciated item no longer added to new articles. Not recommended for new developments.

During the development stage of your App, Diskery has a few pre-programmed URLs useful for testing purposes. You may use these as often and when ever you like and they do not count toward your monthly usage.

The test URLS possible are:

https://www.diskery.com/diskery_app.php?NAME=EXAMPLE BAND
https://www.diskery.com/diskery_app.php?NAME=RANDOM BAND
https://www.diskery.com/diskery_app.php?ID=0
https://www.diskery.com/diskery_app.php?ID=*

For testing you may also include the COMPRESS parameter: https://www.diskery.com/diskery_app.php?ID=*&COMPRESS=TRUE

The difference between NAME=RANDOM BAND and NAME=EXAMPLE BAND are RANDOM BAND generates a real database entry from Diskery at random (you have no control over what appears), where-as EXAMPLE BAND generates a pre-chosen entry hard-coded into Diskery that represents a typical database entry (the EXAMPLE BAND is actually database record 13, "Seasons of the Wolf" as seen in the database). 0 is the numerical equivalent of EXAMPLE BAND and * is the symbolic equivalent of RANDOM BAND. Entry of either of these ignores any other parameters (including password). Mixing them up will result in an error "Invalid Input Characters". No password or membership is needed for EXAMPLE BAND.


Connecting to Diskery > Searching the Database?
Unlike users on the website who have the advantage of the AISE AI interpreter, your App has to provide this functionality itself so Diskery does not interfere with your own programming efforts. Without the AI you will have to conduct direct searches on record ID numbers or names using correct spelling. All punctuation marks are removed (apostrophe, dash, dots, quotes, asterisk, slash, etc...); only alpha-numeric and spaces are allowed (A-Z,0-9). The search engine will also remain case insensitive but will not conduct spell correction or 'closest match guess' as its website counterpart does. Furthermore, SQL commands are 'sanitized' (removed) to prevent 'injection' attempts.


What Does Diskery Output?
Assuming your request was successful, the engine will respond with:

"version": {
   "diskery": "2.2.5:2020021",
   "app": "2.0.0:2",
   "database": "2.0.0:2",
   "compress": "True"
},
"status": {
   "level": "OK",
   "response": "",
   "sysmessage": "",
   "max": "2420"
},
...

Content will follow after the 'status' section.

Diskery's response is fairly standardized. All values are returned as strings, it is up to your application to re-cast as needed. Although be aware, this is an early version of the development environment and NULLs may appear. For values Diskery has no entry for it leaves you with an empty string, an empty array or a NULL. The only variable types you will deal with is string, array of strings, and null. 'max:' is the total number of records available to your App and it changes regularly as data is modified in the source database. Artist names, album titles and related links will be dynamic, however, and can become large in number. If there are no entries at all (a band did not list their membership, for example) Diskery leaves you with an empty array []. Diskery is consistent and the arrays match the same number that are in related array. For example: there will be same number of track arrays as there are album titles (5 albums will yield 5 track listings in the order of the albums; note the blank ones here. Dates, Types, all other sub-sections related to the description of the albums will likewise match element position-to-element position:

...
"discography": {
   "album_title": [
     "Seasons of the Wolf",
     "Lost In Hell",
     "Nocturnal Revelations",
     "Once In A Blue Moon",
     "Last Act of Defiance",
     "Anthology"
   ],
   "album_date": [
     "1996",
     "1999",
     "2002",
     "2007",
     "2017",
     "2014"
   ],
   "album_type": [
     "Studio Album",
     "Studio Album",
     "Studio Album",
     "Studio Album",
     "Studio Album",
     "Compilation"
],
   "tracks": [
     "Victim Of Darkness&^
     October Moon&^
     Misty Shades Of Green&^
     Electric Dimension&^
     Long Cold Winter&^
     10&^000 10&^000&^
     Quiet Earth&^
     Nature's Revenge (The Black Wolf)&^
     Destiny",

     "Lost In Hell&^
     Abandoned City&^
     S.O.S.&^
     Communion&^
     Interstellar&^
     Witchfinder&^
     Voodoo Master&^
     A Face In The Mist&^
     Initiation&^
     Vengeance&^
     One Land One King",

     "New Age Revolution&^
     Dead Zone&^
     Quilex&^
     Nocturnal Revelation&^
     Dance Of A Thousand Veils&^
     Liar&^
     Magnetic Star&^
     Skulls&^
     Dark And Lonely Depths&^
     Storm Of The Century&^
     Starstruck&^
     NR 3&^
     Transmission",

     "Wings of Doom&^      Snaggletooth&^
     Nikhedonia&^
     Ghost Woman&^
     In the Shadows&^
     Behind the Eyes of Evil&^
     The Reaper&^
     Battle Scars&^
     Alien Landscapes&^
     The Edge of Time&^
     Peace on Earth&^
     Name Your Poison",

     "",

     ""
   ],
...

as opposed to this example where there were no track entries:

     tracks [],

Note also the use of &^. This combination of symbols replaces the comma (,) this is used for older programming languages and applications using our system to denote that these strings are not elements of an array but are one string using commas. Be advised that this is a depreciated procedure and is expected to be replaced to a simple comma in the near future so prepare your app for either situation.

A word about the "version" tags:

{
"version": {
   "diskery": "2.2.5:2020021",
   "app": "2.0.0:2",
   "database": "2.0.0:2",
   "compress": "False"
},
...

The numbers contained here rarely change, but they are variable and will change as we update the system. All are in the format: "Version.Revision.Patch:Build".

diskery: Refers to the Website version ID itself.
app: Refers to the App Environment program version.
database: Refers to the version of the database (Lexicon) Diskery is using.
compress: Indicates if the App removed blank/null elements from the resulting JSON output.

All are important for all will remain compatible within one full version. So when 2.2.5:20200219 switches to 3.0.0:0 (or bigger) you might discover your App will no longer work. Likewise for 2.0.0:1 to 3.0.0:0, etc. In the event you do not receive notification of changes, it is important your App check this each time it accesses the database and have contingency (back up) programming in the event it is caught with a new number. Word to the wise: make your App use only the features it needs to ensure the most basic compatibility, "Less is More!". For example, if you keep your App (at time of this writing) compatible to the features of Diskery version 2.0.0:0 you are ensured it will work until 3.0.0:0 arrives (and will most probably be compatible there too).

The last component of the version identifiers, the 'Build' (20200219), is unimportant for your App for compatibility and can be ignored. The others are used to identify new or depreciated features, bug fixes, etc.


List of Error Codes
Diskery responds with the following codes. Unlike in version 1, it no longer issues the numerical codes. Except for "OK" these errors are normally are fatal and cause your search to fail. They appear in the "response" tag. The "sysmessage" tag is designed for your internal processing. It is used to send notices such as "XYZ feature will be depreciated in future version"...:

...
"status": {
   "level": "ERROR",
   "response": "Error Message",
   "sysmessage": "",
   "max": "2420"
},
...

Unable to access database Not found with parameters specified Database malfunction Closed for maintenance Invalid Name or Password Temporarily removed Permanently removed Invalid Input Characters Not for App Transmission OK

Diskery can also generate non-fatal notices in the same format as errors. These occur when the Diskery search engine modified your search input, but ultimately found it:

Search was modified
Search based on Album Name
Search was Redirected

What Does the Total Output Look Like?
This link will allow you to view/download a copy of the JSON output for the band SEASONS OF THE WOLF (ID=13). This band is also ID=0 (a.k.a. NAME=EXAMPLE BAND):

VIEW EXAMPLE


How are the tags formatted?

The JSON tags are all in string format and in lowercase. Where the tags are dynamic they are appended with a 0 based number. For example

"tracks"
is the tag for track listings.


How To Use The ALL Instruction?
Your device can receive a list of all entries (or a select search list) in the database with the use of the 'ALL' instruction. To use this, you must have a registered membership as it is accessed with your user name and password.

The URL for use of the ALL instruction:
https://www.diskery.com/diskery_App.php?NAME=ALL&USERNAME=username&USERPASS=password

There is no numerical 'ID=' equivalent. Here is an example for the first 3 entries in the database as they will appear when this option is used.

When successful, Diskery will respond with:

{
"version": {
   "diskery": "2.2.5:2020021",
   "app": "2.0.0:2",
   "database": "2.0.0:2",
   "compress": "False"
},
"status": {
   "level": "OK",
   "response": "",
   "sysmessage": "",
   "max": "2420"
},
"list": {
     "id": [
       "1",
       "2",
       "3"
     ],
     "name": [
       "Penetrator",
       "Psyco Drama",
       "Porno Coma"
     ],
     "nation": [
       "Canada",
       "USA",
       "Canada"
     ],
     "city": [
       "Toronto&^ Ontario",
       "Colorado Springs&^ Colorado",
       "Montreal&^ Quebec"
     ]
     "date": [
       "2003-2007",
       "1990-1999",
       "1998-"
     ]
   }
}


Does Diskery Help To Promote My App?
Diskery does not endorse any specific developer's work nor do we directly sell them. However, we do maintain a contact database where visitors to the site can find your product and contact/purchase information.


How Do I Sign Up or Update My Information?
Send the following information to: inquire@diskery.com. Be sure to set that address as a safe one for your e-mail application (whitelist) as it will create an auto-reply to ensure that you are not a marketer's robot. Simply reply to the resulting message with any subject and it will pass your message to us.

Send the following:

  • Desired User Name
  • Real Name (Personal & Corporate)
  • E-mail
  • Product Website
  • Link to Product Logo
  • Link to Product Image
  • Mailing/Billing Address
  • Cell & Business phone numbers
  • Name of your App
  • Description of App (how it will be using our database specifically)
  • Websites where someone can purchase your App
  • Desired Password
Someone here will then contact you. If you do not leave a password, a random one will be assigned to you. To change any of this information, all you need to do is send another e-mail with the updated information.

You may also contact us at our Facebook or LinkedIn page as well.

Do not worry if you do not have all the information on your initial application, you can update it later. To apply we MUST HAVE: Billing Address, Real & Corporate Names, At least 1 contact phone number, E-Mail, and Name and Description of the App.


What is 'Hash'?
"hash": "A3576821EBF52EC00437C24C6338A3FD3D57B521B25DEE03AC403C05EF62A742"

Hash is a SHA256 encoding of the description text. It is used by Diskery to identify when the article has been edited. If the Hash stored in the database is different than the fresh one calculated when the article is loaded then the article was edited. A sort of short cut that your app can use to identify that it has the current version of the article.

The Hash also serves another very important security purpose. Diskery sends your device the hash so your device can verify against its own calculation if the article has been tampered with in transit. Either way, if your device's computed hash does not match the one sent from Diskery then it should update its own copy of the SHA on file and demand the article again.


Can I Post Ads on My App?
The short answer is YES.

The long answer is YES, but said advertisements cannot in anyway make any reference that they are provided or endorsed by Diskery. You will be required to say as such in your app documentation.


Odds & Ends
  • Links to images, videos, or other Diskery elements may be missing the 'http://www.diskery.com' prefix. Your application should scan for this to ensure it is present else access may fail
  • The last two elements of the JSON "disccount" & "seecount" refer to the number of albums and 'See Also' (embedded artist) links contained in the output stream
  • The development of Diskery v3 will have this application contained within its programming (as opposed to being a separate application), its functionality is not expected to change but the URL will

Legal Lingo
This is a summary of the legal matters presented in this document:

Let:
The Service = "Diskery App Platform" (access to Diskery database).
You/Your = The App Developer (user of The Service).
Diskery = Diskery Project Consortium (provider of The Service).
Device(s) = Machine/contrivance, software, or service constructed by You.
Agreement = The terms of this document.
Application = Application on file by You for use of The Service.

You and Diskery here-by agree as part of the use of The Service on the Device(s) the following:

I. FIT FOR USE WARRANTY
1) Diskery is not responsible for Your ability or inability to use The Service. There is no expressed warranty accompanying The Service's ability to function according to Your needs and You will indemnify and hold harmless Diskery, its Agents, Affiliates, Developers and Owners from any and all harm incurred by the use of The Service, including but not limited to: financial, reputational, and technological. You use The Service AS-IS.
2) Diskery is not responsible for the security of the customers using Your Device(s), nor does Diskery make any warranty that data transfers to and from The Service will be secure.

II. MEMBERSHIP ALLOWANCE & PAYMENTS
1) You understand that membership to The Service can be revoked at any time with or without cause upon 30 days notice.
2) You agree to pay the prescribed membership fees within 30 days of notification and understood these fees are NON-REFUNDABLE. Failure to pay will mean termination from the Service and a revocation of all rights here listed.
3) You understand there is no expectation of help, sales, or customer service while using The Service.

III. LICENSING
1a) With payment of membership fee(s), You have re-broadcast rights on the material You rightfully access under the terms of this Agreement for the Device(s) listed on Your Membership Application that are governed by this Agreement. This right does not extend to modification of the data beyond the technological restrictions imposed by Your Device(s) or where editorial content or legal requirements restrict.
1b) You understand that Diskery often uses content provided by others and these rights stipulated under section III-1a may be limited in these situations.
2) This Agreement allows You use of the Diskery logo. You must use the official logo as provided by Diskery.
3) For Your Device(s) to remain under this Agreement, You are free to make as many duplications/subscriptions to Your Device(s) as You like, and are free to update Your Device(s) to new versions as long as those modifications are a clear straight line back to the original Device(s) as listed in Your Application.
4) While You may charge fees for the purchase or use of Your Device(s), You are not permitted to charge any extra fee for access to the Diskery material itself, or to have any method, symbol or text that indicates directly or indirectly that a user is required to pay extra for access to Diskery data.
5) Diskery is not responsible for the promotion, distribution, service or sales of Your Device(s).
6) This is a ONE TIME LICENSE that permits Diskery's data for use on the Device(s) stated on Your Application.

IV. CREDIT, COPYRIGHT AND OWNERSHIP
1) Diskery and all of its content remain under copyright of Diskery or the original owner(s), unless otherwise stated. There is no transfer of ownership for said copyrights under this Agreement.
2) You may not claim, nor lead anyone to believe You are staking claim, control or ownership over any of the material you obtain from Diskery unless You honestly have certification to such claim.
3) You must declare/credit, in any reasonable manner, the name/source of the material you use, both the material source as well as Diskery as the provider of the material or partial material.
4) As a part of this Agreement, You must use the Diskery logo on your Device(s). Where you are using Diskery as one of multiple input sources You must explicitly state Diskery as the source for data components actually received from Diskery.
5) It is understood that Diskery provides The Service as an access platform to information over the Internet. Diskery charges for access to the database, but does not charge for said delivered information contained within. Diskery is not responsible for Your use of this information. You indemnify and hold harmless Diskery, its Agents, Affiliates, Developers and Owners against Your use of this data, including management of copyright material You may not own You obtained from the The Service. This is interpreted to include the legal consequences for use there-of.

V. USE OF PERSONAL DATA
1) Diskery collects Your usage data for purposes of billing, auditing, and general statists. Diskery will not distribute collected data outside of itself and direct affiliates unless otherwise given expressed permission by You.

VI. JURISDICTION
1) The contents of this Agreement may change at any time.
2) The Term of this Agreement begins on the date You file an Application for use of The Service and subsequent acceptance, and terminates after 30 days notice by either party.
3) Any grievances over this Agreement will be heard by a court of competent jurisdiction in the Province of Ontario, country of Canada.

File record #: 58


Related Subjects:

Button: Help Directory
Button: Back to Article


Diskery Logo with random City buildings in shadow



LOADING...