Giter Club home page Giter Club logo

groove-dl's People

Contributors

boyander avatar delusionallogic avatar gsteph avatar kevinkub avatar moriartyb avatar yasoob 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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

groove-dl's Issues

A new release ?

The last release was 2 years ago. Since then a lot has changed. Why not do a new release ?

patch: fix for missing streamKey

diff --git a/python/groove.py b/python/groove.py
index 039bb1e..ae3c5e0 100755
--- a/python/groove.py
+++ b/python/groove.py
@@ -135,6 +135,7 @@ if name == "main":
if songid == "" or songid == "q": exit()
songid = eval(songid)
stream = getStreamKeyFromSongIDEx(s[songid]["SongID"])

  • stream["result"] = stream["result"][str(s[songid]["SongID"])]
    s = 'wget --user-agent="%s" --referer=%s --post-data=streamKey=%s -O "%s - %s.mp3" "htt
    p = subprocess.Popen(s, shell=True)
    p.wait()

Empty stream key

Sometimes, when I try to listen I get this error:
Retrieving stream key..
Failed

After some hours, it works. I use it a couple of times and then I get the same error.

KeyError: 'result'

Traceback (most recent call last):
File "", line 1, in
File "", line 3, in get_me
File "groove.py", line 64, in getToken
_token = json.JSONDecoder().decode(gzip.GzipFile(fileobj=(StringIO.StringIO(conn.getresponse().read()))).read())["result"]

KeyError: 'result'

I got this error today while using groove-dl. I hope that you can fix this error.

No source code license

Currently, Groove-DL has no license, which means it's fully copyrighted. Have you considered adding a license (like the GPL or the BSD-type)?

A custom downloader in place of wget

On windows we do not have wget. It would be more useful to have a custom downloader so that the script can be run without OLV on windows. I know you have precompiled it but if someone wants to learn he will run the python script directly and will surely encounter an error. What do you say ? @jacktheripper51

Rewrite protocol

Type: Improvement

I might have found a site where the protocol is easier to understand.

Tinysong.com

It's run by grooveshark, and it runs the request right over the client, so we can see what is necessary to not get banned, right now it seems like the missing piece to not get banned is "markSongQueueSongPlayed", i am currently rewriting the whole groove.py to be more like a library, and will add this.

ValueError: No JSON object could be decoded

Executing grrove-dl I get this error:

Initializing...
Traceback (most recent call last):
File "/usr/share/groove-dl/groove.py", line 195, in
getToken() #Get a static token
File "/usr/share/groove-dl/groove.py", line 64, in getToken
_token = json.JSONDecoder().decode(gzip.GzipFile(fileobj=(StringIO.StringIO(conn.getresponse().read()))).read())["result"]
File "/usr/lib/python2.7/json/decoder.py", line 366, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File "/usr/lib/python2.7/json/decoder.py", line 384, in raw_decode
raise ValueError("No JSON object could be decoded")
ValueError: No JSON object could be decoded

Index for choosing music between search results shifted

WHen you enter a music title to search, the music id's (1 in this case) are shifted, ie I had to enter '0' to get the 1st result

1: "Syndicate - Nero Remix" by "Skrillex & Nero" (Syndicate)
Enter the Song ID you wish to download or (q) to exit: 1
Traceback (most recent call last):
File "./python/groove.py", line 136, in
stream = getStreamKeyFromSongIDEx(s[songid]["SongID"])
IndexError: list index out of range

Outdated client

The grooveshark servers return with an outdated client message, and doesn't return the result. updating the client value breaks the token.

Limit maxium simultaneous active downloads

I have i problem if i active more then one downloads at once that some downloads doesn't finish, they hang. It would be useful if one could limit (in the code) a download to only one active per download.

IOError: Not a gzipped file

When i try query a song with python groove.py 'music name'. I receive a error in line 79 of groove.py:

image

Any help?

Best Regards

whitespaces in sys.argv

if you pass more than one word via command line without quotes just the first param is used ("python groove.py foo bar" will only search for foo
may change a few lines like this:

    print entrystring
    init()
    getToken()
    m = 0
    input = " ".join(sys.argv[1:])
    s = getResultsFromSearch(input)

cheers

Multiple songs same name

I've installed this (v0.97.8 as the title says) via arch linux AUR (Version 57.b712ee9-1) and use the GUI.
Whenever I start to download multiple files with the same name + artist at the same time (select all of them, right click, download) they somehow get mixed up into the same file instead of suffixed with (#).

Otherwise nice project ๐Ÿ‘

PS: I'm your 100th:star2: :smile:

I get this error whenever I am about to download song.

Distro: Arch Linux
Python version: python2.7

I do:

python2 groove.py "a"

error:
A Grooveshark song downloader in python
by George Stephanos [email protected]

Initializing...
Searching for 'a'...
Traceback (most recent call last):
File "groove.py", line 206, in
print '\n'.join(l) #Print the results
UnicodeEncodeError: 'ascii' codec can't encode character u'\xe8' in position 264: ordinal not in range(128)

How install on Arch Linux/Manjaro?

Hello!

I use Manjaro, which is based on Arch Linux, and I do not know how to install, since there are only instructions for Debian, Red Hat and derivatives on the site. I have already installed the the latest version of "wxgtk", "setuptools" and the python of course (came already installed), but still got no success when running "sudo python setup.py install" command inside the folder "ObjectListView". Could anyone help me?

Hugs!

bloatware in the windows executable

I was definitely not expecting to see 4+ attempts to install bloatware/malware/spyware in the installer. That's a huge turnoff on an open source project like this.

Pip Installability

Doesn't seem like the version installed via pip works, but the version at HEAD works great. Any chance we can get that updated?

Newest commit broke everything

The script is never able to get a stream key after the switch to getStreamKey...

It always return empty, and the program therefore exits. I can access grooveshark in browser, just not in script. (search and everything works fine, just not StreakKey

Cannot download a song with an artist with a / in it

There is an issue on line 223, specifically https://github.com/jacktheripper51/groove-dl/blob/master/python/groove.py#L223

if s[songid]["ArtistName"] contains a "/", (such as the band AC/DC), then the file cannot be saved since wget will report an error "No such file or directory"

I worked around this issue by first importing re, then changing cmd to
cmd = 'wget --post-data=streamKey=%s -O "%s - %s.mp3" "http://%s/stream.php"' % (stream["streamKey"], re.sub(r'+|/+', '', s[songid]["ArtistName"]), re.sub(r'+|/+', '', s[songid]["SongName"]), stream["ip"]) #Run wget to download the song

get cookie via proxy

the script doesn't work in germany since the gema (representative of music publishers) forced to shut down grooveshark here
good news: everythink works fine if you catch the cookie via proxy (like firefox plugin "grooveshark unlocker")
simply change a few lines:

# SETTINGS
PROXY = False
HOST = example.com
PORT = 1234
# ...
def init():
    if PROXY:
        conn = httplib.HTTPConnection(HOST, PORT)
        conn.set_tunnel("grooveshark.com")
        conn.connect()
    else:
        conn = httplib.HTTPConnection("grooveshark.com")
# ...

cheers

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.