Giter Site home page Giter Site logo

saavn-downloader's Introduction

Saavn Downloader

PoC for vulnerability in Saavn App researched by Arun. The fullset of funcitonality offered by this is:

  • High Qualtiy - M4A
  • Songs Detail
  • Download PlayList
  • Download Album
  • Download Entire PlayList from user profile
  • Download Entire Albums from user profile
  • Download Entire JioSaavn Originals and Podcasts in the user profile without any subscription.

Installation

$ pip3 install -r requirements.txt

Usage

Download Playlist or Album from Web URL
$ python3 Download.py
$ Paste the URL: https://www.jiosaavn.com/album/tum-hi-aana-from-marjaavaan/j9bfphC2728_

alt text FOSSA Status

NOTE: If at any point there is an Error or the Download fails you can Retry the same command

Download All Albums of an Artist

$ python Download.py -artist --album
$ Paste the URL of Artist Profile: https://www.jiosaavn.com/artist/babbal-rai-albums/pRd5ZTGrLv8_

Download All Songs of an Artist

$ python Download.py -artist --song
$ Paste the URL of Artist Profile: https://www.jiosaavn.com/artist/babbal-rai-albums/pRd5ZTGrLv8_

Download All Playlist from your profile

$ python3 Download.py -p
$ Enter your Email: your_saavn_email
$ Enter your Password: your_saavn_password

Download All Albums from your profile

$ python3 Download.py -a
$ Enter your Email: your_saavn_email
$ Enter your Password: your_saavn_password

Download All JioSaavn Originals or Podcast Shows from your profile

$ python3 Download.py -s
$ Enter your Email: your_saavn_email
$ Enter your Password: your_saavn_password

Known Issues

  • No Meta Data in JioSaavn Originals and Podcasts

Development

Want to contribute? Great!

Docker

Not yet

License

FOSSA Status

saavn-downloader's People

Contributors

ar7x9 avatar asifma avatar dineshkoravi avatar fossabot avatar hutihobake2510 avatar imashwani avatar inovachrono avatar neeraj-ghodla avatar prabaprakash avatar praveencs210 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

saavn-downloader's Issues

Unable to install wsgiref

C:\Users\Isuru\Documents\GitHub\gaana-dl>pip install wsgiref
Collecting wsgiref
Using cached https://files.pythonhosted.org/packages/41/9e/309259ce8dff8c596e8c26df86dbc4e848b9249fd36797fd60be456f03fc/wsgiref-0.1.2.zip
Complete output from command python setup.py egg_info:
Traceback (most recent call last):
File "", line 1, in
File "C:\Users\Isuru\AppData\Local\Temp\pip-install-5yu14l4j\wsgiref\setup.py", line 5, in
import ez_setup
File "C:\Users\Isuru\AppData\Local\Temp\pip-install-5yu14l4j\wsgiref\ez_setup_init_.py", line 170
print "Setuptools version",version,"or greater has been installed."
^
SyntaxError: Missing parentheses in call to 'print'. Did you mean print("Setuptools version",version,"or greater has been installed.")?

Amazon

could someone please point to a similar project for Amazon

Saavn API to get a list of all my music

Does anyone here knows if any Saavn API exists to pull all the albums in my music? Unfortunately it does not even exist in web player so hard to find the links of all albums in my music.

Set download location

Hey bud,
Can you please setup the download script to accept an argument for download location. Ping me once its done and I will make a docker image for this.
Cheers

Storage issue

Sir, where the downloaded songs will be stored? I couldn't find those. I downloaded using termux.

Getting Error

Hi while running the program am getting the below error... Pls help.

C:\Users*\AppData\Local\Programs\Python\Python37\Scripts\Saavn-Downloader>Download.py
Enter the url:https://www.saavn.com/s/featured/tamil/Vijay_Antony_Hits/,FiHYsZ8kVE_
Traceback (most recent call last):
File "C:\Users*
\AppData\Local\Programs\Python\Python37\Scripts\Saavn-Downloader\Download.py", line 157, in
soup = BeautifulSoup(res.text, "lxml")
File "C:\Users****\AppData\Local\Programs\Python\Python37\lib\site-packages\beautifulsoup4-4.6.0-py3.7.egg\bs4_init_.py", line 165, in init
bs4.FeatureNotFound: Couldn't find a tree builder with the features you requested: lxml. Do you need to install a parser library?

Stops download of album midway.

After pasting the album link it download a few songs and then stops midway. Prints: Please paste link of album or playlist

I modified the following lines from __main__ :

except Exception as e:
        print('...')

as

except Exception as e:
        print('...', e)

then it prints: ... error() missing 1 required positional argument: 'msg'

MP3 Format

Good if it has option to change m4a to mp3

Song title with " aborts the download

A minor issue as very few songs have this tile. If you have a song title with "" in it, for example Mein Agar from "Tubelight", this aborts the script.

All Pip Requirements are install sucessfully but don't Downloading

D:\Python tools\Saavn-Downloader-master>pip install -r requirements.txt
Collecting BeautifulSoup4 (from -r requirements.txt (line 1))
Downloading https://files.pythonhosted.org/packages/66/25/ff030e2437265616a1e9b25ccc864e0371a0bc3adb7c5a404fd661c6f4f6/beautifulsoup4-4.9.1-py3-none-any.whl (115kB)
|████████████████████████████████| 122kB 363kB/s
Collecting eyed3 (from -r requirements.txt (line 2))
Downloading https://files.pythonhosted.org/packages/bd/67/202bcc28b01684f8fe18921f4b1dbe44b471b2c407f5d784849d513e417f/eyeD3-0.9.5-py2.py3-none-any.whl (145kB)
|████████████████████████████████| 153kB 437kB/s
Collecting urllib3 (from -r requirements.txt (line 3))
Downloading https://files.pythonhosted.org/packages/e1/e5/df302e8017440f111c11cc41a6b432838672f5a70aa29227bf58149dc72f/urllib3-1.25.9-py2.py3-none-any.whl (126kB)
|████████████████████████████████| 133kB 409kB/s
Collecting request (from -r requirements.txt (line 4))
Downloading https://files.pythonhosted.org/packages/f1/27/7cbde262d854aedf217061a97020d66a63163c5c04e0ec02ff98c5d8f44e/request-2019.4.13.tar.gz
Collecting pathlib (from -r requirements.txt (line 5))
Downloading https://files.pythonhosted.org/packages/ac/aa/9b065a76b9af472437a0059f77e8f962fe350438b927cb80184c32f075eb/pathlib-1.0.1.tar.gz (49kB)
|████████████████████████████████| 51kB 469kB/s
Collecting requests (from -r requirements.txt (line 6))
Downloading https://files.pythonhosted.org/packages/45/1e/0c169c6a5381e241ba7404532c16a21d86ab872c9bed8bdcd4c423954103/requests-2.24.0-py2.py3-none-any.whl (61kB)
|████████████████████████████████| 71kB 573kB/s
Collecting mutagen (from -r requirements.txt (line 7))
Downloading https://files.pythonhosted.org/packages/49/d7/245d48972216d000238d6ccc09142bc1be88e707b38e8fb19a0155292cb6/mutagen-1.44.0-py3-none-any.whl (212kB)
|████████████████████████████████| 215kB 544kB/s
Collecting pySmartDL (from -r requirements.txt (line 8))
Downloading https://files.pythonhosted.org/packages/5c/be/ea485e61e1e5c552fd1fdf90dc818e30661797085ca7df6483ca62923f3c/pySmartDL-1.3.3-py3-none-any.whl
Collecting logger (from -r requirements.txt (line 9))
Downloading https://files.pythonhosted.org/packages/73/2f/b0d28eaa1e2c1cf64129f8da3fe701888d152677fec708cd0f13e8309e1e/logger-1.4.tar.gz
Collecting lxml (from -r requirements.txt (line 10))
Downloading https://files.pythonhosted.org/packages/02/33/a63a824f2b40fd8f25471dc7f67dc6da406c2b042dc87fc68870621bb339/lxml-4.5.1-cp38-cp38-win_amd64.whl (3.5MB)
|████████████████████████████████| 3.6MB 656kB/s
Collecting aiohttp (from -r requirements.txt (line 11))
Downloading https://files.pythonhosted.org/packages/c2/f7/f0ad3dbace4762fef5d80aa4124b41bf218e4c4dd6d387a86cede707d9a4/aiohttp-3.6.2-py3-none-any.whl (441kB)
|████████████████████████████████| 450kB 726kB/s
Collecting soupsieve>1.2 (from BeautifulSoup4->-r requirements.txt (line 1))
Downloading https://files.pythonhosted.org/packages/6f/8f/457f4a5390eeae1cc3aeab89deb7724c965be841ffca6cfca9197482e470/soupsieve-2.0.1-py3-none-any.whl
Collecting filetype (from eyed3->-r requirements.txt (line 2))
Downloading https://files.pythonhosted.org/packages/b4/6b/7bc015da1a576ac037582ae0c5acb675371de9e017e860931e97a428ee31/filetype-1.0.7-py2.py3-none-any.whl
Collecting deprecation (from eyed3->-r requirements.txt (line 2))
Downloading https://files.pythonhosted.org/packages/02/c3/253a89ee03fc9b9682f1541728eb66db7db22148cd94f89ab22528cd1e1b/deprecation-2.1.0-py2.py3-none-any.whl
Collecting get (from request->-r requirements.txt (line 4))
Downloading https://files.pythonhosted.org/packages/3f/ef/bb46f77f7220ac1b7edba0c76d810c89fddb24ddd8c08f337b9b4a618db7/get-2019.4.13.tar.gz
Collecting post (from request->-r requirements.txt (line 4))
Downloading https://files.pythonhosted.org/packages/0f/05/bd79da5849ea6a92485ed7029ef97b1b75e55c26bc0ed3a7ec769af666f3/post-2019.4.13.tar.gz
Requirement already satisfied: setuptools in c:\python38\lib\site-packages (from request->-r requirements.txt (line 4)) (41.2.0)
Collecting idna<3,>=2.5 (from requests->-r requirements.txt (line 6))
Downloading https://files.pythonhosted.org/packages/89/e3/afebe61c546d18fb1709a61bee788254b40e736cff7271c7de5de2dc4128/idna-2.9-py2.py3-none-any.whl (58kB)
|████████████████████████████████| 61kB 653kB/s
Collecting chardet<4,>=3.0.2 (from requests->-r requirements.txt (line 6))
Downloading https://files.pythonhosted.org/packages/bc/a9/01ffebfb562e4274b6487b4bb1ddec7ca55ec7510b22e4c51f14098443b8/chardet-3.0.4-py2.py3-none-any.whl (133kB)
|████████████████████████████████| 143kB 467kB/s
Collecting certifi>=2017.4.17 (from requests->-r requirements.txt (line 6))
Downloading https://files.pythonhosted.org/packages/5e/c4/6c4fe722df5343c33226f0b4e0bb042e4dc13483228b4718baf286f86d87/certifi-2020.6.20-py2.py3-none-any.whl (156kB)
|████████████████████████████████| 163kB 656kB/s
Collecting attrs>=17.3.0 (from aiohttp->-r requirements.txt (line 11))
Downloading https://files.pythonhosted.org/packages/a2/db/4313ab3be961f7a763066401fb77f7748373b6094076ae2bda2806988af6/attrs-19.3.0-py2.py3-none-any.whl
Collecting yarl<2.0,>=1.0 (from aiohttp->-r requirements.txt (line 11))
Downloading https://files.pythonhosted.org/packages/38/7b/8ee60bf7dd3266508dadacf0463669594db48832265cee7d6fddd22489c9/yarl-1.4.2-cp38-cp38-win_amd64.whl (126kB)
|████████████████████████████████| 133kB 656kB/s
Collecting async-timeout<4.0,>=3.0 (from aiohttp->-r requirements.txt (line 11))
Downloading https://files.pythonhosted.org/packages/e1/1e/5a4441be21b0726c4464f3f23c8b19628372f606755a9d2e46c187e65ec4/async_timeout-3.0.1-py3-none-any.whl
Collecting multidict<5.0,>=4.5 (from aiohttp->-r requirements.txt (line 11))
Downloading https://files.pythonhosted.org/packages/b0/be/cbc31f347fb5a092b3889e2d192f5c9dbb79fbe46ebc7309447b2b9b445b/multidict-4.7.6-cp38-cp38-win_amd64.whl (48kB)
|████████████████████████████████| 51kB 544kB/s
Collecting packaging (from deprecation->eyed3->-r requirements.txt (line 2))
Downloading https://files.pythonhosted.org/packages/46/19/c5ab91b1b05cfe63cccd5cfc971db9214c6dd6ced54e33c30d5af1d2bc43/packaging-20.4-py2.py3-none-any.whl
Collecting query_string (from get->request->-r requirements.txt (line 4))
Downloading https://files.pythonhosted.org/packages/12/3c/412a45daf5bea9b1d06d7de41787ec4168001dfa418db7ec8723356b119f/query-string-2019.4.13.tar.gz
Collecting pyparsing>=2.0.2 (from packaging->deprecation->eyed3->-r requirements.txt (line 2))
Downloading https://files.pythonhosted.org/packages/8a/bb/488841f56197b13700afd5658fc279a2025a39e22449b7cf29864669b15d/pyparsing-2.4.7-py2.py3-none-any.whl (67kB)
|████████████████████████████████| 71kB 419kB/s
Collecting six (from packaging->deprecation->eyed3->-r requirements.txt (line 2))
Downloading https://files.pythonhosted.org/packages/ee/ff/48bde5c0f013094d729fe4b0316ba2a24774b3ff1c52d924a8a4cb04078a/six-1.15.0-py2.py3-none-any.whl
Collecting public (from query_string->get->request->-r requirements.txt (line 4))
Downloading https://files.pythonhosted.org/packages/54/4d/b40004cc6c07665e48af22cfe1e631f219bf4282e15fa76a5b6364f6885c/public-2019.4.13.tar.gz
Installing collected packages: soupsieve, BeautifulSoup4, filetype, pyparsing, six, packaging, deprecation, eyed3, urllib3, public, query-string, get, post, request, pathlib, idna, chardet, certifi, requests, mutagen, pySmartDL, logger, lxml, attrs, multidict, yarl, async-timeout, aiohttp
Running setup.py install for public ... done
Running setup.py install for query-string ... done
Running setup.py install for get ... done
Running setup.py install for post ... done
Running setup.py install for request ... done
Running setup.py install for pathlib ... done
Running setup.py install for logger ... done
Successfully installed BeautifulSoup4-4.9.1 aiohttp-3.6.2 async-timeout-3.0.1 attrs-19.3.0 certifi-2020.6.20 chardet-3.0.4 deprecation-2.1.0 eyed3-0.9.5 filetype-1.0.7 get-2019.4.13 idna-2.9 logger-1.4 lxml-4.5.1 multidict-4.7.6 mutagen-1.44.0 packaging-20.4 pathlib-1.0.1 post-2019.4.13 public-2019.4.13 pySmartDL-1.3.3 pyparsing-2.4.7 query-string-2019.4.13 request-2019.4.13 requests-2.24.0 six-1.15.0 soupsieve-2.0.1 urllib3-1.25.9 yarl-1.4.2
WARNING: You are using pip version 19.2.3, however version 20.1.1 is available.
You should consider upgrading via the 'python -m pip install --upgrade pip' command.

D:\Python tools\Saavn-Downloader-master>python Download.py
Enter the url: https://www.jiosaavn.com/album/shayad-from-love-aaj-kal/g16Vpmg6lzk_
...
...
Please paste link of album or playlist

DONE

D:\Python tools\Saavn-Downloader-master>
Screenshot_1

Anyway to skip downloading existing files

I have a long playlist of over 100 files which I keep updating. Is there a way to skip downloading files the file already exists in the folder? Best to have this as optional as it might not always be desired.

Thanks

Caching issue

When i download a playlist, thereafter make changes to the playlist and try to re-download, the old playlist files are downloaded. It appears the playlist is cached somewhere and the script uses that to download each time.

If i save it as a new playlist, then it downloads the new songs that i want.

not downloading artist all songs

getting error while downloading artist all songs,

'NoneType' object has no attribute 'find' Please check that the entered URL links to an Artist Downloading all artist songs Traceback (most recent call last): File "Download.py", line 423, in <module> downloadArtistAllSongs(artistId, artist_json) NameError: name 'artistId' is not defined

lxml lib does not work with latest python on win10

I am new in python and tried to get it work but latest python does not able to install lxml library automatically and manual installation required python 3.4. Python 3.4 pip3 installer ask microsoft c++ 10 runtime, when downloaded and install it says newer version is installed.

songid

I am not use able to
getSong(songId)

I have a song id "qLZhFr8y"

https://www.saavn.com/api.php?songid=qLZhFr8y&_format=json&__call=song.getDetails

the above get is giving error
{"error":{"code":"INPUT_MISSING","msg":"One or more required field missing:pids"}}

I am not if I am extracting the song id or if the syntax is wrong.

Also, I am trying extract lyricist. This information is only available in the song url. Although the album is json dump has the lyricist, it is dumped inside artists along with singers. So, we need to query the song url to extract the lyricist.

Download Doesn't Happen

I always getting Please Paste Album/Playlist URL...

Downloaded the latest fixed Download.Py file and all packages are installed.

image

Saavn api

Hey, I have been looking for saavn's api. I wanted to ask you where did you find the api? Is there any documentation?

Could not find a version that satisfies the requirement request.

C:\Users\Desktop\github\saavn>pip install -r requirements.txt
Requirement already satisfied: BeautifulSoup4 in c:\users\appdata\local\programs\python\python38\lib\site-packages (from -r requirements.txt (line 1)) (4.9.1)
Requirement already satisfied: eyed3 in c:\users\appdata\local\programs\python\python38\lib\site-packages (from -r requirements.txt (line 2)) (0.9.5)
Requirement already satisfied: urllib3 in c:\users\appdata\local\programs\python\python38\lib\site-packages (from -r requirements.txt (line 3)) (1.25.10)
ERROR: Could not find a version that satisfies the requirement request (from -r requirements.txt (line 4)) (from versions: none)
ERROR: No matching distribution found for request (from -r requirements.txt (line 4))

Download songs in album named folder insted of songs

As of now the songs are downloaded in folder names as "songs", just want to add feature of downloading the songs in the folder named as whatever if the name of the album.

For example:
https://www.jiosaavn.com/album/kalank/Jv-F,nN0JoY_
the above album name is "Kalank", so just change the name of folder from "songs" to "Kalank"

SSL Certificate verfiy failure

Hi,
I am getting below error while running this in my mac and this exception was caused by SmartDL.
<urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1056)>

To overcome the issue, I have added the below line and worked for me.

Pre Configurations

ssl._create_default_https_context = ssl._create_unverified_context

Hope this can help someone else too.
Thanks again for creating downloader and very helpful to me

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.