Extract songs from Saavn app
Bad engineering
that leads to loss for saavn, the famous music streaming application on android
smartphones.
I write this by assuming that saavn only allows you to
download in offline mode within application and you lose the songs if you
happen to lose the pro membership. Without pro membership, you can only stream
the songs but not save them in offline mode, means every time you must use your
valuable data. Whereas, by storing on sd card the songs will be permanently
available to you even if you uninstall app or you happen to lose the pro
membership which allows you to save songs in offline mode within saavn’s
android application.
Now I exploit this bad engineering from saavn’s engineers
and tell you how can you extract songs from saavn’s offline mode to your sd
card.
Note that this will violate the usage policy(I assume) and
you should not do this on android smartphones. I only provide this to show you,
how not to make apps that are vulnerable and to avoid bad engineering.
Pre-requisite: Some android smartphone file explorer
application(I would prefer using ES File explorer) , Saavn’s android
application(For the first time usage, you will get a month of pro membership
for free)
Step1:
Go to saavn android application and search for the song.
Note that: Using saavn pro android app you can search songs easily
and save them for offline mode too(if available)
See the search option on the action bar(green color bar at
the top), use it to search for songs.
Step2:
Download the song.
The song will be available in the list. The download arrow
indicates song is available for offline mode. So you can save in offline mode. Once
you download it in offline mode, the song will turn into a green tick. See
above screenshot for having a clear understanding.
Step3:
Once downloaded in offline mode, you can return to home
screen of saavn android application and from the menu select offline mode (see
screenshot below).
Step4 : Play the song from the downloaded songs menu. Note
that if you change songs, you will experience a LAG. (Here’s the bad experience
involved and that bad experience is in fact a poor piece of engineering)
After song is played, press home button and go to the application
drawer and open ES File explorer application.
Step5: Use search facility in the ES File explorer
application and search for “saavn”.
Step6 : open folder named as com.saavn.android
Step8: Copy this curr.mp3
and paste it somewhere in the sd card, say paste it in the folder where you
store all your rest of the songs. After
pasting it rename the pasted file as copied_curr.mp3 (You might wanna rename it to the song you copied)
Step9 : Transfer the song(if you want) to your PC and enjoy
it as you have successfully extracted the song that is playing in the saavn
right now.
Now where comes the
bad engineering in it ???
1. After giving some
thoughts and my experience in building android applications, I understood what
saavn does for offline mode of songs.Downloaded songs undergo some encryption so that
you can’t exploit them but we just did this in above steps.
2.Once you play a song in offline mode, the encrypted
file is decrypted and is made as curr.mp3
and is saved temporarily for playing in saavn android application.
3. Now if we change song, again the curr.mp3 gets
replaced by new song by the process of decryption and encryption. Due to this the user gets a lag. This lag is
sufficiently large to be noticed.
Bad engineering : user feels lag while playing songs + they can exploit the
offline songs easily.
Update: As of 16th April, 2015 the bug still exists. We reported it too saavn, as soon as we found it but no bug fixes yet.
Why not build an app to automate the process and extract all the songs to a specified directory! Would be way more helpful!
ReplyDeleteThanks for the suggestion. We will surely try to build such application.
DeleteAwesome!, works great man!
ReplyDeleteThanks for the post....I wonder why they haven't fixed the bug.
ReplyDeleteHi sir. I did exactly like you said and its successfully saved in my pc. But the songs dont start from beginning. They start playing after say 30 seconds.
ReplyDelete