Songs.PK API
A few months back, I was thinking about making an application which could be a simpler, ad-free version of the original SongsPK website. But, like for any application, I needed data. Since there was no API available for the purpose, I started working on my own.
I used PHP for scripting and hosted the code on Heroku. I have an instance of the code running at https://songspk-suyash.herokuapp.com/
. But please keep in mind that since I’m using the free version of Heroku, it might take some time to respond at first.
How it works?
- Fetches the website content via
curl
- Uses
preg_match_all
function to extract the necessary details from the content - Return the data as JSON encoded data
<?php
$curl = curl_init();
curl_setopt ($curl, CURLOPT_URL, "http://songspk.io/");
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$html = curl_exec ($curl);
curl_close ($curl);
$slider = array();
preg_match_all("/leftrightslide\[(\d)\]='(.*?)'/", $html, $matches, PREG_SET_ORDER);
foreach ($matches as $key) {
preg_match_all("/href=\"(.*)\".*src=\"(.*)\".*alt=\"(.*)\"/", $key[2], $matches2, PREG_SET_ORDER);
unset($matches2[0][0]);
$slider[$key[1]] = array('link' => $matches2[0][1], 'image' => $matches2[0][2], 'name' => substr($matches2[0][3], 0, -10));
}
echo json_encode($slider);
?>
How to use?
Let’s take an example to know how we can use the API.
Suppose you want to access the latest releases from the home page, just access: https://songspk-suyash.herokuapp.com/api
Now lets say you have the link to a album page and want all the details of that album with song names and download links. You just have to send the page link via GET method:
https://songspk-suyash.herokuapp.com/api/page.php?page=http://www.songspk.io/mp3/indian_songs/baar_baar_dekho_mp3_songs_download
This will give you somethink like:
{
"details": {
"1": "Baar Baar Dekho",
"2": "2016",
"3": "Sidharth Malhotra, Katrina Kaif, Sarika, Ram Kapoor, Taaha Shah, Sayani Gupta, Rohan Joshi",
"4": "Amaal Malik, Badshah, Bilal Saeed and various"
},
"songs": [{
"songname": "Kho Gaye Hum Kahan",
"artist": "Jasleen Kaur Royal, Prateek Kuhad",
"link": "http:\/\/sound30.mp3slash.net\/indian\/baarbaardekho\/01 - Kho Gaye Hum Kahan [Songs.PK].mp3"
}, {
"songname": "Sau Aasmaan",
"artist": "Armaan Malik, Neeti Mohan",
"link": "http:\/\/sound30.mp3slash.net\/indian\/baarbaardekho\/02 - Sau Aasmaan [Songs.PK].mp3"
}, ...
Now you can use this data anywhere you want.
You can find the source code for the SongsPK API at: suyashbansal / SongsPK-API
I know that this is not perfect. So if you do some improvements, please send me a pull request!