GithubHelp home page GithubHelp logo

obskyr / khinsider Goto Github PK

View Code? Open in Web Editor NEW
587.0 24.0 63.0 44 KB

A script for khinsider mass downloads. Get video game soundtracks quickly and easily! Also a Python interface.

Python 100.00%
music download python video-games soundtracks bulk-download

khinsider's Introduction

khinsider.py

khinsider.py is a Python interface and script for getting khinsider soundtracks. It makes khinsider mass downloads a breeze. It's easy to use - check it!

From the command line (i.e. regular usage):

khinsider.py jumping-flash

As an import (for when you're programming):

import khinsider
khinsider.download('jumping-flash')
# And bam, you've got the Jumping Flash soundtrack!

For anime music, check out thehylia.py.

Carefully put together by @obskyr!

Usage

Just run khinsider.py from the command line with the sole parameter being the soundtrack you want to download. You can either use the soundtrack's ID, or simply copy its entire URL. Easy!

If you want, you can also add another parameter as the output folder, but that's optional.

You can also download other file formats (if available), like FLAC or OGG, as following:

khinsider.py --format flac mother-3

If you don't want to go to the actual site to look for soundtracks, you can also just type a search term as the first parameter(s), and provided it's not a valid soundtrack, khinsider.py will give you a list of soundtracks matching that term.

You're going to need Python (if you don't know which version to get, choose the latest version of Python 3 - khinsider.py works with both 2 and 3), so install that (and add it to your path) if you haven't already.

You will also need to have pip installed (if you have Python 3, it is most likely already installed - otherwise, download get-pip.py and run it) if you don't already have requests and Beautiful Soup 4. The first time khinsider.py runs, it will install these two for you.

For more detailed information, try running khinsider.py --help!

As a module

khinsider.py requires two non-standard modules: requests and beautifulsoup4. Just run a pip install on them (with pip), or just run khinsider.py on its own once and it'll install them for you.

Here are the main functions you will be using:

khinsider.download(soundtrackName[, path="", makeDirs=True, formatOrder=None, verbose=False])

Download the soundtrack soundtrackName. This should be the name the soundtrack uses at the end of its album URL.

If path is specified, the soundtrack files will be downloaded to the directory that path points to.

If makeDirs is True, the directory will be created if it doesn't exist.

You can specify formatOrder to download soundtracks in specific formats. formatOrder=['flac', 'mp3'], for example, will download FLACs if available, and MP3s if not.

If verbose is True, it will print progress as it is downloading.

khinsider.search(term)

Search khinsider for term. Return a list of Soundtracks matching the search term. You can then access soundtrack.id or soundtrack.url.

More

There's a lot more detail to the API - more than would be sensible to write here. If you want to use khinsider.py as a module in a more advanced capacity, have a look at the Soundtrack, Song, and File objects in the source code! They're documented properly there for your reading pleasure.

Talk to me!

You can easily get to me in these ways:

I'd love to hear it if you like khinsider.py! If there's a problem, or you'd like a new feature, submit an issue here on GitHub.

khinsider's People

Contributors

ali-shamakhi avatar manuel219 avatar obskyr 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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

khinsider's Issues

When downloading castlevania-symphony-of-the-night

Traceback (most recent call last):
File "C:\Users\David\Documents\KHInsider Downloader\khinsider.py", line 566, in
sys.exit(doIt())
File "C:\Users\David\Documents\KHInsider Downloader\khinsider.py", line 516, in doIt
success = download(soundtrack, outPath, formatOrder=formatOrder, verbose=True)
File "C:\Users\David\Documents\KHInsider Downloader\khinsider.py", line 401, in download
return Soundtrack(soundtrackId).download(path, makeDirs, formatOrder, verbose)
File "C:\Users\David\Documents\KHInsider Downloader\khinsider.py", line 316, in download
files.append(getAppropriateFile(song, formatOrder))
File "C:\Users\David\Documents\KHInsider Downloader\khinsider.py", line 164, in getAppropriateFile
return song.files[0]
IndexError: list index out of range

Tried downloading Star Fox SNES OST

Traceback (most recent call last):File "C:\Users\Robin\Desktop\khinsider\khinsider.py", line 589, in sys.exit(doIt())File "C:\Users\Robin\Desktop\khinsider\khinsider.py", line 533, in doItsuccess = download(soundtrack, outPath, formatOrder=formatOrder, verbose=True)File "C:\Users\Robin\Desktop\khinsider\khinsider.py", line 408, in downloadreturn Soundtrack(soundtrackId).download(path, makeDirs, formatOrder, verbose)File "C:\Users\Robin\Desktop\khinsider\khinsider.py", line 323, in downloadfiles.append(getAppropriateFile(song, formatOrder))File "C:\Users\Robin\Desktop\khinsider\khinsider.py", line 168, in getAppropriateFilereturn song.files[0]IndexError: list index out of range

Download folder

where i can change fix path of download files, right in the script?

UnicodeEncodeError

Getting the following when trying to download under-night-in-birth. Happens right before track 13, which contains the ♪ character (U+266A).

Traceback (most recent call last):
  File "G:\Downloads\khinsider-master\khinsider.py", line 481, in <module>
    doIt()
  File "G:\Downloads\khinsider-master\khinsider.py", line 457, in doIt
    download(soundtrack, outPath, formatOrder=formatOrder, verbose=True)
  File "G:\Downloads\khinsider-master\khinsider.py", line 349, in download
    Soundtrack(soundtrackId).download(path, makeDirs, formatOrder, verbose)
  File "G:\Downloads\khinsider-master\khinsider.py", line 287, in download
    friendlyDownloadFile(file, path, file.filename, fileNumber, totalFiles, verbose)
  File "G:\Downloads\khinsider-master\khinsider.py", line 168, in friendlyDownloadFile
    print("Downloading {}: {}...".format(numberStr, name))
  File "C:\Users\User\.windows-build-tools\python27\lib\encodings\cp437.py", line 12, in encode
    return codecs.charmap_encode(input,errors,encoding_map)
UnicodeEncodeError: 'charmap' codec can't encode character u'\u266a' in position 51: character maps to <undefined>

Can not download japanese language music file

Report the following error.

python khinsider.py blue-reflection-ost

An unexpected error occurred! If it isn't too much to ask, please report to https://github.com/obskyr/khinsider/issues.
Attach the following error message:

Traceback (most recent call last):
  File "khinsider.py", line 588, in <module>
    sys.exit(doIt())
  File "khinsider.py", line 532, in doIt
    success = download(soundtrack, outPath, formatOrder=formatOrder, verbose=True)
  File "khinsider.py", line 407, in download
    return Soundtrack(soundtrackId).download(path, makeDirs, formatOrder, verbose)
  File "khinsider.py", line 311, in download
    path = os.path.join(os.getcwd(), path)
  File "C:\Python27\lib\ntpath.py", line 85, in join
    result_path = result_path + p_path
UnicodeDecodeError: 'ascii' codec can't decode byte 0x83 in position 35: ordinal not in range(128)

OGG file suport ?

Is .ogg files can be supported ? It doesn't seems to work right now.

There some "raw" rip on khinsider that use this format. (for example mass effect (gamerip))

reported error

An unexpected error occurred! If it isn't too much to ask, please report to http
s://github.com/obskyr/khinsider/issues.
Attach the following error message:

Traceback (most recent call last):
File "C:\Users\User\Downloads\khinsider\khinsider-master\khinsider.py", li
ne 589, in
sys.exit(doIt())
File "C:\Users\User\Downloads\khinsider\khinsider-master\khinsider.py", li
ne 533, in doIt
success = download(soundtrack, outPath, formatOrder=formatOrder, verbose=Tru
e)
File "C:\Users\User\Downloads\khinsider\khinsider-master\khinsider.py", li
ne 408, in download
return Soundtrack(soundtrackId).download(path, makeDirs, formatOrder, verbos
e)
File "C:\Users\User\Downloads\khinsider\khinsider-master\khinsider.py", li
ne 323, in download
files.append(getAppropriateFile(song, formatOrder))
File "C:\Users\User\Downloads\khinsider\khinsider-master\khinsider.py", li
ne 168, in getAppropriateFile
return song.files[0]
IndexError: list index out of range

Generally not working

No matter what I do, when the script finds a valid soundtrack and tries to get the song list, the following error message prints:

Traceback (most recent call last):
  File "khinsider.py", line 501, in <module>
    sys.exit(doIt())
  File "khinsider.py", line 467, in doIt
    success = download(soundtrack, outPath, formatOrder=formatOrder, verbose=True)
  File "khinsider.py", line 359, in download
    return Soundtrack(soundtrackId).download(path, makeDirs, formatOrder, verbose)
  File "khinsider.py", line 287, in download
    for song in self.songs:
  File "khinsider.py", line 135, in lazyVersion
    setattr(self, attrName, func(self))
  File "khinsider.py", line 249, in songs
    table = self._contentSoup.find('table', id='songlist')
  File "khinsider.py", line 135, in lazyVersion
    setattr(self, attrName, func(self))
  File "khinsider.py", line 232, in _contentSoup
    if contentSoup.find('p').string == "No such album":
AttributeError: 'NoneType' object has no attribute 'string'

Support pip 10

~/M/a/khinsider$ python khinsider.py starcraft-game-rip
Installing beautifulsoup4...
Traceback (most recent call last):
  File "khinsider.py", line 55, in <module>
    installRequiredModules(needed)
  File "khinsider.py", line 45, in installRequiredModules
    installModules(neededInstalls(), verbose)
  File "khinsider.py", line 42, in installModules
    install(module[1])
  File "khinsider.py", line 37, in install
    pip.main(['install', '--quiet', package])
AttributeError: module 'pip' has no attribute 'main'
$ pip --version
pip 10.0.1 from /usr/lib/python3.6/site-packages/pip (python 3.6)

Might be useful: https://pip.pypa.io/en/latest/user_guide/#using-pip-from-your-program
Also might be useful as a hack :/ : https://stackoverflow.com/a/49853826/118153

This ain't it chief.

Traceback (most recent call last):
File "khinsider.py", line 589, in
sys.exit(doIt())
File "khinsider.py", line 533, in doIt
success = download(soundtrack, outPath, formatOrder=formatOrder, verbose=True)
File "khinsider.py", line 408, in download
return Soundtrack(soundtrackId).download(path, makeDirs, formatOrder, verbose)
File "khinsider.py", line 323, in download
files.append(getAppropriateFile(song, formatOrder))
File "khinsider.py", line 168, in getAppropriateFile
return song.files[0]
IndexError: list index out of range

[Feature Request] Download speed and progress indicator

Usually tools like this have a constantly visible download speed, as well as a progress indicator. Is that possible to include here?

Without it, it is quite difficult to tell if the download is progressing or has stalled for some reason.

Can’t get the download to start

When I try and run .\khinsider.py in Powershell from a folder, followed by an OST or a search term, a command window opens, and nothing happens.

The khinsider.py is also in the folder I’m trying to get soundtracks in.

Am I doing something wrong?

just some errors

I tried downloading something and I got a few errors. Thanks for your help.

C:\Users\emage\Music>py khinsider.py battle-royale-soundtrack
Getting song list...
Downloading 01/27: Battle Royale - Requiem.mp3...
Downloading 02/27: battle royale - millennium education reform act (br act).mp3...

An unexpected error occurred! If it isn't too much to ask, please report to https://github.com/obskyr/khinsider/issues.
Attach the following error message:

Traceback (most recent call last):
  File "C:\Users\emage\AppData\Local\Programs\Python\Python36\lib\site-packages\urllib3\connectionpool.py", line 387, in _make_request
    six.raise_from(e, None)
  File "<string>", line 2, in raise_from
  File "C:\Users\emage\AppData\Local\Programs\Python\Python36\lib\site-packages\urllib3\connectionpool.py", line 383, in _make_request
    httplib_response = conn.getresponse()
  File "C:\Users\emage\AppData\Local\Programs\Python\Python36\lib\http\client.py", line 1331, in getresponse
    response.begin()
  File "C:\Users\emage\AppData\Local\Programs\Python\Python36\lib\http\client.py", line 297, in begin
    version, status, reason = self._read_status()
  File "C:\Users\emage\AppData\Local\Programs\Python\Python36\lib\http\client.py", line 258, in _read_status
    line = str(self.fp.readline(_MAXLINE + 1), "iso-8859-1")
  File "C:\Users\emage\AppData\Local\Programs\Python\Python36\lib\socket.py", line 586, in readinto
    return self._sock.recv_into(b)
socket.timeout: timed out

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\Users\emage\AppData\Local\Programs\Python\Python36\lib\site-packages\requests\adapters.py", line 440, in send
    timeout=timeout
  File "C:\Users\emage\AppData\Local\Programs\Python\Python36\lib\site-packages\urllib3\connectionpool.py", line 639, in urlopen
    _stacktrace=sys.exc_info()[2])
  File "C:\Users\emage\AppData\Local\Programs\Python\Python36\lib\site-packages\urllib3\util\retry.py", line 357, in increment
    raise six.reraise(type(error), error, _stacktrace)
  File "C:\Users\emage\AppData\Local\Programs\Python\Python36\lib\site-packages\urllib3\packages\six.py", line 686, in reraise
    raise value
  File "C:\Users\emage\AppData\Local\Programs\Python\Python36\lib\site-packages\urllib3\connectionpool.py", line 601, in urlopen
    chunked=chunked)
  File "C:\Users\emage\AppData\Local\Programs\Python\Python36\lib\site-packages\urllib3\connectionpool.py", line 389, in _make_request
    self._raise_timeout(err=e, url=url, timeout_value=read_timeout)
  File "C:\Users\emage\AppData\Local\Programs\Python\Python36\lib\site-packages\urllib3\connectionpool.py", line 309, in _raise_timeout
    raise ReadTimeoutError(self, url, "Read timed out. (read timeout=%s)" % timeout_value)
urllib3.exceptions.ReadTimeoutError: HTTPConnectionPool(host='66.90.93.122', port=80): Read timed out. (read timeout=10)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "khinsider.py", line 489, in <module>
    doIt()
  File "khinsider.py", line 487, in doIt
    raise e
  File "khinsider.py", line 465, in doIt
    download(soundtrack, outPath, formatOrder=formatOrder, verbose=True)
  File "khinsider.py", line 357, in download
    Soundtrack(soundtrackId).download(path, makeDirs, formatOrder, verbose)
  File "khinsider.py", line 295, in download
    friendlyDownloadFile(file, path, file.filename, fileNumber, totalFiles, verbose)
  File "khinsider.py", line 180, in friendlyDownloadFile
    file.download(path)
  File "khinsider.py", line 348, in download
    response = requests.get(self.url, timeout=10)
  File "C:\Users\emage\AppData\Local\Programs\Python\Python36\lib\site-packages\requests\api.py", line 72, in get
    return request('get', url, params=params, **kwargs)
  File "C:\Users\emage\AppData\Local\Programs\Python\Python36\lib\site-packages\requests\api.py", line 58, in request
    return session.request(method=method, url=url, **kwargs)
  File "C:\Users\emage\AppData\Local\Programs\Python\Python36\lib\site-packages\requests\sessions.py", line 508, in request
    resp = self.send(prep, **send_kwargs)
  File "C:\Users\emage\AppData\Local\Programs\Python\Python36\lib\site-packages\requests\sessions.py", line 618, in send
    r = adapter.send(request, **kwargs)
  File "C:\Users\emage\AppData\Local\Programs\Python\Python36\lib\site-packages\requests\adapters.py", line 521, in send
    raise ReadTimeout(e, request=request)
requests.exceptions.ReadTimeout: HTTPConnectionPool(host='66.90.93.122', port=80): Read timed out. (read timeout=10)

problem in downloadingsoundtrack

`An unexpected error occurred! If it isn't too much to ask, please report to https://github.com/obskyr/khinsider/issues.
Attach the following error message:

Traceback (most recent call last):
File "khinsider.py", line 556, in
sys.exit(doIt())
File "khinsider.py", line 506, in doIt
success = download(soundtrack, outPath, formatOrder=formatOrder, verbose=True)
File "khinsider.py", line 391, in download
return Soundtrack(soundtrackId).download(path, makeDirs, formatOrder, verbose)
File "khinsider.py", line 315, in download
if not friendlyDownloadFile(file, path, fileNumber, totalFiles, verbose):
File "khinsider.py", line 189, in friendlyDownloadFile
file.download(path)
File "khinsider.py", line 383, in download
with open(path, 'wb') as outFile:
FileNotFoundError: [Errno 2] No such file or directory: "/home/adam/Music/Zelda/Majora's-Mask/141 Marshland.mp3"
`

Unexpected Error w/ Error Message Included

In an attempt to download the soundtrack for Phoenix Wright Ace Attorney, the following error was returned to me.

I'm using windows 10 home 64-bit, and am performing this scripting action in Windows Powershell. I've successfully downloaded several albums using this script before, so this is not a first-time error.

Here is the error that was returned to me in Powershell:

PS C:\Users\roblh\Music\Add to Phone> .\khinsider --format "flac,mp3" phoenix-wright-ace-attorney-ost
Getting song list...

An unexpected error occurred! If it isn't too much to ask, please report to https://github.com/obskyr/khinsider/issues.
Attach the following error message:

Traceback (most recent call last):
  File "C:\Users\roblh\Music\Add to Phone\khinsider.py", line 589, in <module>
    sys.exit(doIt())
  File "C:\Users\roblh\Music\Add to Phone\khinsider.py", line 533, in doIt
    success = download(soundtrack, outPath, formatOrder=formatOrder, verbose=True)
  File "C:\Users\roblh\Music\Add to Phone\khinsider.py", line 408, in download
    return Soundtrack(soundtrackId).download(path, makeDirs, formatOrder, verbose)
  File "C:\Users\roblh\Music\Add to Phone\khinsider.py", line 323, in download
    files.append(getAppropriateFile(song, formatOrder))
  File "C:\Users\roblh\Music\Add to Phone\khinsider.py", line 175, in getAppropriateFile
    return song.files[0]
IndexError: list index out of range

I can't get my Lone Ranger soundtrack. OH NO!

Traceback (most recent call last):
File "/Users/plgagne/Music/khinsider-master/khinsider.py", line 488, in
doIt()
File "/Users/plgagne/Music/khinsider-master/khinsider.py", line 464, in doIt
download(soundtrack, outPath, formatOrder=formatOrder, verbose=True)
File "/Users/plgagne/Music/khinsider-master/khinsider.py", line 356, in download
Soundtrack(soundtrackId).download(path, makeDirs, formatOrder, verbose)
File "/Users/plgagne/Music/khinsider-master/khinsider.py", line 285, in download
for song in self.songs:
File "/Users/plgagne/Music/khinsider-master/khinsider.py", line 130, in lazy_version
setattr(self, attr_name, func(self))
File "/Users/plgagne/Music/khinsider-master/khinsider.py", line 249, in songs
urls = [a['href'] for a in anchors]
TypeError: 'NoneType' object has no attribute 'getitem'

Error when running in Nitrous.IO

I get this error when running
myproject python khinsider.py
Installing beautifulsoup4...
Exception:
Traceback (most recent call last):
File "/usr/lib/python2.7/dist-packages/pip/basecommand.py", line 122, in main
status = self.run(options, args)
File "/usr/lib/python2.7/dist-packages/pip/commands/install.py", line 283, in run
requirement_set.install(install_options, global_options, root=options.root_path)
File "/usr/lib/python2.7/dist-packages/pip/req.py", line 1436, in install
requirement.install(install_options, global_options, _args, *_kwargs)
File "/usr/lib/python2.7/dist-packages/pip/req.py", line 672, in install
self.move_wheel_files(self.source_dir, root=root)
File "/usr/lib/python2.7/dist-packages/pip/req.py", line 902, in move_wheel_files
pycompile=self.pycompile,
File "/usr/lib/python2.7/dist-packages/pip/wheel.py", line 206, in move_wheel_files
clobber(source, lib_dir, True)
File "/usr/lib/python2.7/dist-packages/pip/wheel.py", line 193, in clobber
os.makedirs(destsubdir)
File "/usr/lib/python2.7/os.py", line 157, in makedirs
mkdir(name, mode)
OSError: [Errno 13] Permission denied: '/usr/local/lib/python2.7/dist-packages/beautifulsoup4-4.4.1.dist-info'
Storing debug log for failure in /home/nitrous/.pip/pip.log
Traceback (most recent call last):
File "khinsider.py", line 60, in
from bs4 import BeautifulSoup
ImportError: No module named bs4

Script can't download or search.

Hey, I've been using your script for a while (it's really great btw, thanks!), but as I tried to use it today after a long time, I can't get it to work at all.

I downloaded the latest version from the GitHub's repo as of today (11/16/2016) and I always get the same error message, it doesn't matter if I:

  1. Try to use it with just the URL name
  2. Try to use it with URL + Folder
  3. Try to use it to search

Here's a screenshot of my last attempt at trying to get it to work.
I'm using Python v3.5.2 x86 and pip did download the necessary dependencies required by the script.

I'm attempting to get it from this URL. I also tried a few others just in case and I get the same behavior not matter what I do.

IndexError: list index out of range

I get this error message when trying to download from this url: https://downloads.khinsider.com/game-soundtracks/album/legend-of-zelda-takt-of-wind-original-sound-tracks (so i put in legend-of-zelda-takt-of-wind-original-sound-tracks):

Traceback (most recent call last):
File "khinsider.py", line 589, in
sys.exit(doIt())
File "khinsider.py", line 533, in doIt
success = download(soundtrack, outPath, formatOrder=formatOrder, verbose=True)
File "khinsider.py", line 408, in download
return Soundtrack(soundtrackId).download(path, makeDirs, formatOrder, verbose)
File "khinsider.py", line 323, in download
files.append(getAppropriateFile(song, formatOrder))
File "khinsider.py", line 168, in getAppropriateFile
return song.files[0]
IndexError: list index out of range

EDIT: This error occurs regardless of which url I am using. It always appears

Escape 'release on' URLs

The URLs in the webpage section Released on: Android iOS Windows should not be matched, or some html files would be downloaded.

Error when downloading Deltarune/Undertale OST

An unexpected error occurred! If it isn't too much to ask, please report to https://github.com/obskyr/khinsider/issues.
Attach the following error message:

Traceback (most recent call last):
File "C:\Users\ren\Desktop\khinsider-master\khinsider.py", line 599, in
sys.exit(doIt())
File "C:\Users\ren\Desktop\khinsider-master\khinsider.py", line 543, in doIt
success = download(soundtrack, outPath, formatOrder=formatOrder, verbose=True)
File "C:\Users\ren\Desktop\khinsider-master\khinsider.py", line 413, in download
return Soundtrack(soundtrackId).download(path, makeDirs, formatOrder, verbose)
File "C:\Users\ren\Desktop\khinsider-master\khinsider.py", line 325, in download
for song in self.songs:
File "C:\Users\ren\Desktop\khinsider-master\khinsider.py", line 149, in lazyVersion
setattr(self, attrName, func(self))
File "C:\Users\ren\Desktop\khinsider-master\khinsider.py", line 289, in songs
anchors = [tr.find('a') for tr in table('tr') if not tr.find('th')]
TypeError: 'NoneType' object is not callable

C:\Users\ren\Desktop\khinsider-master>

false title name

hey,

i get this issue when downloading anything. with numbers in track title

python khinsider.py onigiri
Getting song list...
Downloading 01/14: .mp3...
Skipping over 02/14: .mp3. Already exists.
Skipping over 03/14: .mp3. Already exists.
Skipping over 04/14: .mp3. Already exists.
Skipping over 05/14: .mp3. Already exists.
Skipping over 06/14: .mp3. Already exists.
Skipping over 07/14: .mp3. Already exists.
Skipping over 08/14: .mp3. Already exists.
Skipping over 09/14: .mp3. Already exists.
Skipping over 10/14: .mp3. Already exists.
Skipping over 11/14: .mp3. Already exists.
Skipping over 12/14: .mp3. Already exists.
Skipping over 13/14: .mp3. Already exists.
Skipping over 14/14: .mp3. Already exists.

Where do downloaded files go if you don't specify a path?

Hello, so I was trying to download a soundtrack, but when it finished I can't find the songs anywhere. I didn't specify a path to put them. I put the khinsider-master folder on my desktop with the .py file in it. Does it not work if it is on the desktop?

Issue with reading certain characters? (Download messed up when encountering track with question mark)

Here's the album in question:
https://downloads.khinsider.com/game-soundtracks/album/osu-tatakae-ouendan-2

When it got to track 8, it gave me this error, and abruptly stopped the download.
Here's the whole log, from start to fin:

Getting song list...
Skipping over 01/20: 01.AI - Believe.mp3. Already exists.
Skipping over 02/20: 02.ZZ - Samurai Blue.mp3. Already exists.
Skipping over 03/20: 03.Hirai Ken - POP.STAR.mp3. Already exists.
Skipping over 04/20: 04.Hitomi Yaida - Go my way.mp3. Already exists.
Skipping over 05/20: 05.FLOW - Okuru Kotoba.mp3. Already exists.
Skipping over 06/20: 06.HOTEI TOMOYAS - Bambina.mp3. Already exists.
Skipping over 07/20: 07.HYDE - COUNTDOWN.mp3. Already exists.
Downloading 08/20: 08.mihimaru GT -  Kibun Joujou??.mp3...

An unexpected error occurred! If it isn't too much to ask, please report to https://github.com/obskyr/khinsider/issues.
Attach the following error message:

Traceback (most recent call last):
  File "C:\Users\john\Desktop\utilities\khinsider-master\khinsider.py", line 473, in <module>
    doIt()
  File "C:\Users\john\Desktop\utilities\khinsider-master\khinsider.py", line 449, in doIt
    download(soundtrack, outPath, formatOrder=formatOrder, verbose=True)
  File "C:\Users\john\Desktop\utilities\khinsider-master\khinsider.py", line 341, in download
    Soundtrack(soundtrackId).download(path, makeDirs, formatOrder, verbose)
  File "C:\Users\john\Desktop\utilities\khinsider-master\khinsider.py", line 282, in download
    friendlyDownloadFile(file, path, file.filename, fileNumber, totalFiles, verbose)
  File "C:\Users\john\Desktop\utilities\khinsider-master\khinsider.py", line 168, in friendlyDownloadFile
    file.download(path)
  File "C:\Users\john\Desktop\utilities\khinsider-master\khinsider.py", line 333, in download
    with open(path, 'wb') as outFile:
OSError: [Errno 22] Invalid argument: 'C:\\Users\\john\\Desktop\\utilities\\khinsider-master\\osu-tatakae-ouendan-2\\08.mihimaru GT -  Kibun Joujou??.mp3'

Failing to download album

Im getting this when I try to download this album.

https://downloads.khinsider.com/game-soundtracks/album/sonic-the-hedgehog-boom-the-music-from-sonic-cd-and-sonic-

PS F:\Downloads\khinsider-master> .\khinsider.py --format flac sonic-the-hedgehog-boom-the-music-from-sonic-cd-and-sonic-                                       Getting song list...

An unexpected error occurred! If it isn't too much to ask, please report to https://github.com/obskyr/khinsider/issues.
Attach the following error message:

Traceback (most recent call last):
  File "F:\Downloads\khinsider-master\khinsider.py", line 589, in <module>
    sys.exit(doIt())
  File "F:\Downloads\khinsider-master\khinsider.py", line 533, in doIt
    success = download(soundtrack, outPath, formatOrder=formatOrder, verbose=True)
  File "F:\Downloads\khinsider-master\khinsider.py", line 408, in download
    return Soundtrack(soundtrackId).download(path, makeDirs, formatOrder, verbose)
  File "F:\Downloads\khinsider-master\khinsider.py", line 323, in download
    files.append(getAppropriateFile(song, formatOrder))
  File "F:\Downloads\khinsider-master\khinsider.py", line 175, in getAppropriateFile
    return song.files[0]
IndexError: list index out of range
PS F:\Downloads\khinsider-master>        

Happens with this as well.

https://downloads.khinsider.com/game-soundtracks/album/sonic-the-hedgehog-caf-selection

An unexpected error occurred! If it isn't too much to ask, please report to https://github.com/obskyr/khinsider/issues.
Attach the following error message:

Traceback (most recent call last):
  File "F:\Downloads\khinsider-master\khinsider.py", line 589, in <module>
    sys.exit(doIt())
  File "F:\Downloads\khinsider-master\khinsider.py", line 533, in doIt
    success = download(soundtrack, outPath, formatOrder=formatOrder, verbose=True)
  File "F:\Downloads\khinsider-master\khinsider.py", line 408, in download
    return Soundtrack(soundtrackId).download(path, makeDirs, formatOrder, verbose)
  File "F:\Downloads\khinsider-master\khinsider.py", line 323, in download
    files.append(getAppropriateFile(song, formatOrder))
  File "F:\Downloads\khinsider-master\khinsider.py", line 168, in getAppropriateFile
    return song.files[0]
IndexError: list index out of range
PS F:\Downloads\khinsider-master>                                                                                                                                                                          ```

Can't download if name contains unicode

Was downloading: https://downloads.khinsider.com/game-soundtracks/album/the-world-ends-with-you-twewy-soundtrack-full-collection

Failed at track 1-36: "De╠üja╠Ć Vu"

Traceback

Traceback (most recent call last):
  File "khinsider.py", line 503, in <module>
    sys.exit(doIt())
  File "khinsider.py", line 469, in doIt
    success = download(soundtrack, outPath, formatOrder=formatOrder, verbose=True)
  File "khinsider.py", line 361, in download
    return Soundtrack(soundtrackId).download(path, makeDirs, formatOrder, verbose)
  File "khinsider.py", line 299, in download
    if not friendlyDownloadFile(file, path, fileNumber, totalFiles, verbose):
  File "khinsider.py", line 172, in friendlyDownloadFile
    if not os.path.exists(path):
  File "/home/fzy/workspace/pyplayground/.venv/lib/python3.6/genericpath.py", line 19, in exists
    os.stat(path)
UnicodeEncodeError: 'ascii' codec can't encode characters in position 97-98: ordinal not in range(128)

Where do I specify the soundtrack name?

I feel like such an idiot for asking this as I'm pretty sure the answer is obvious, but I cannot for the life of me find where to put it and I've been trying everything for the past hour, I just can't manage to find how to do it.

bs4 not work, why?

python khinsider.py jumping-flash
/usr/local/lib/python2.7/dist-packages/bs4/element.py:16: UserWarning: The soupsieve package is not installed. CSS selectors cannot be used.
  'The soupsieve package is not installed. CSS selectors cannot be used.'

An unexpected error occurred! If it isn't too much to ask, please report to https://github.com/obskyr/khinsider/issues.
Attach the following error message:

Traceback (most recent call last):
  File "khinsider.py", line 556, in <module>
    sys.exit(doIt())
  File "khinsider.py", line 506, in doIt
    success = download(soundtrack, outPath, formatOrder=formatOrder, verbose=True)
  File "khinsider.py", line 391, in download
    return Soundtrack(soundtrackId).download(path, makeDirs, formatOrder, verbose)
  File "khinsider.py", line 295, in download
    path = os.path.join(os.getcwd(), path)
  File "/usr/lib/python2.7/posixpath.py", line 73, in join
    path += '/' + b
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 12: ordinal not in range(128)

Can't download certains OSTs

I've been trying to download the OSTs from this 3 links:
https://downloads.khinsider.com/game-soundtracks/album/pokemon-emerald-gameboy-advance-gamerip
https://downloads.khinsider.com/game-soundtracks/album/klonoa-of-the-wind-door-to-phantomile
https://downloads.khinsider.com/game-soundtracks/album/klonoa-2-lunatea-s-veil-music-collection
using standard command python khinsider.py name-of-the-link, but all of the three returned the following error:

Traceback (most recent call last):
File "khinsider.py", line 489, in
dolt()
File "khinsider.py", line 487, in dolt
raise e
TypeError: 'NoneType' object has no attribute 'getitem'

I'm using python 2.7.13 and the lastest commit of khinsider.py, also, being using this script for months and I think it's great, I really enjoyed it

Error while downloading Album

EDIT:
Replacing lines 268 - 275
def _contentSoup(self):
soup = getSoup(self.url)
contentSoup = soup.find(id='EchoTopic')
if contentSoup.find('p').string == "No such album":
# The EchoTopic and p exist even if the soundtrack doesn't, so no
# need for error handling here.
raise NonexistentSoundtrackError(self)
return contentSoup

With
def _contentSoup(self):
soup = getSoup(self.url)
contentSoup = soup.find(id='pageContent')
return contentSoup

worked and I've been able to use it properly.
Thank you to kamilkrzyskow for the help!

FIXED
An unexpected error occurred! If it isn't too much to ask, please report to https://github.com/obskyr/khinsider/issues.
Attach the following error message:

Traceback (most recent call last):
File "C:\Users\brett\OneDrive\Desktop\khinsider-master\khinsider.py", line 599, in
sys.exit(doIt())
File "C:\Users\brett\OneDrive\Desktop\khinsider-master\khinsider.py", line 543, in doIt
success = download(soundtrack, outPath, formatOrder=formatOrder, verbose=True)
File "C:\Users\brett\OneDrive\Desktop\khinsider-master\khinsider.py", line 413, in download
return Soundtrack(soundtrackId).download(path, makeDirs, formatOrder, verbose)
File "C:\Users\brett\OneDrive\Desktop\khinsider-master\khinsider.py", line 325, in download
for song in self.songs:
File "C:\Users\brett\OneDrive\Desktop\khinsider-master\khinsider.py", line 149, in lazyVersion
setattr(self, attrName, func(self))
File "C:\Users\brett\OneDrive\Desktop\khinsider-master\khinsider.py", line 288, in songs
table = self._contentSoup.find('table', id='songlist')
File "C:\Users\brett\OneDrive\Desktop\khinsider-master\khinsider.py", line 149, in lazyVersion
setattr(self, attrName, func(self))
File "C:\Users\brett\OneDrive\Desktop\khinsider-master\khinsider.py", line 271, in _contentSoup
if contentSoup.find('p').string == "No such album":
AttributeError: 'NoneType' object has no attribute 'find'

Some albums cannot be downloaded

Hello.
Some albums fail to download.
These are:
-t-w-y-a-o-gyakuten-meets-jazz-soul
robot-wants-puppy-gamerip
shattered-horizon-2009-gamerip

Here's output when attempting to download them:

Microsoft Windows [Version 10.0.17763.2029]
(c) 2018 Microsoft Corporation. All rights reserved.

F:\Temporary>khinsider.py -t-w-y-a-o-gyakuten-meets-jazz-soul
No soundtrack specified! As the first parameter, use the name the soundtrack uses in its URL.
If you want to, you can also specify an output directory as the second parameter.
You can also search for soundtracks by using your search term as parameter - as long as it's not an existing soundtrack.

For detailed help and more options, run "khinsider.py --help".

F:\Temporary>khinsider.py robot-wants-puppy-gamerip
Getting song list...

An unexpected error occurred! If it isn't too much to ask, please report to https://github.com/obskyr/khinsider/issues.
Attach the following error message:

Traceback (most recent call last):
  File "F:\Temporary\khinsider.py", line 599, in <module>
    sys.exit(doIt())
  File "F:\Temporary\khinsider.py", line 543, in doIt
    success = download(soundtrack, outPath, formatOrder=formatOrder, verbose=True)
  File "F:\Temporary\khinsider.py", line 413, in download
    return Soundtrack(soundtrackId).download(path, makeDirs, formatOrder, verbose)
  File "F:\Temporary\khinsider.py", line 326, in download
    files.append(getAppropriateFile(song, formatOrder))
  File "F:\Temporary\khinsider.py", line 171, in getAppropriateFile
    return song.files[0]
IndexError: list index out of range

F:\Temporary>khinsider.py shattered-horizon-2009-gamerip
Getting song list...

An unexpected error occurred! If it isn't too much to ask, please report to https://github.com/obskyr/khinsider/issues.
Attach the following error message:

Traceback (most recent call last):
  File "F:\Temporary\khinsider.py", line 599, in <module>
    sys.exit(doIt())
  File "F:\Temporary\khinsider.py", line 543, in doIt
    success = download(soundtrack, outPath, formatOrder=formatOrder, verbose=True)
  File "F:\Temporary\khinsider.py", line 413, in download
    return Soundtrack(soundtrackId).download(path, makeDirs, formatOrder, verbose)
  File "F:\Temporary\khinsider.py", line 326, in download
    files.append(getAppropriateFile(song, formatOrder))
  File "F:\Temporary\khinsider.py", line 171, in getAppropriateFile
    return song.files[0]
IndexError: list index out of range

cannot download a soundtrack for no reason

`SyntaxError: unexpected character after line continuation character

C:\Users\Administrator\Desktop\khinsider.py starbound-ost-orchestral-ost-solatrus
File "", line 1
C:\Users\Administrator\Desktop\khinsider.py starbound-ost-orchestral-ost-solatrus
^
SyntaxError: unexpected character after line continuation character
`

not just that error nothing works at all

New OSTs cannot be downloaded

KHInsider has changed the way they parse URLs for new OSTs. Instead of the old format (e.g. 1-track1.mp3), it now uses percent-encoding (e.g. 101%2520-%2520Wake%2520Up%252C%2520Get%2520Up%252C%2520Get%2520Out%2520There.mp3).

Trying to download an OST that uses this format throws up an error which I've attached as a screenshot.

image

Error Occured when downloading the Phoenix Wright soundtrack.

Query: python khinsider.py --format FLAC phoenix-wright-ace-attorney-trilogy-gyakuten-saiban-123-naruhodo-selection-2019-switch 'E:\Music\Phoenix Wright'

Error:
An unexpected error occurred! If it isn't too much to ask, please report to https://github.com/obskyr/khinsider/issues.
Attach the following error message:

Traceback (most recent call last):
File "E:\Music\khinsider.py", line 599, in
sys.exit(doIt())
File "E:\Music\khinsider.py", line 543, in doIt
success = download(soundtrack, outPath, formatOrder=formatOrder, verbose=True)
File "E:\Music\khinsider.py", line 413, in download
return Soundtrack(soundtrackId).download(path, makeDirs, formatOrder, verbose)
File "E:\Music\khinsider.py", line 331, in download
os.makedirs(os.path.abspath(os.path.realpath(path)))
File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.9_3.9.1264.0_x64__qbz5n2kfra8p0\lib\os.py", line 215, in makedirs
makedirs(head, exist_ok=exist_ok)
File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.9_3.9.1264.0_x64__qbz5n2kfra8p0\lib\os.py", line 215, in makedirs
makedirs(head, exist_ok=exist_ok)
File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.9_3.9.1264.0_x64__qbz5n2kfra8p0\lib\os.py", line 225, in makedirs
mkdir(name, mode)
OSError: [WinError 123] The filename, directory name, or volume label syntax is incorrect: "E:\Music\'E:"

Khinsider down? Or just me?

Khinsider no longer loads any song on the website. I tried on my browser first, everything works fine until I clicked on any album.

The mini player that controls the audio, try to load, but it's just do that indefinitely. I tried everything to make the audio play: Clicked on the song title; clicked on the "Click here to download as MP3"...

Nothing, It just trying to load a song infinity.

I tried on another browser, and... same results.

Now, I tried using the script. It works until the process of download:

Downloading Banjo-Tooie CD Soundtrack:

Downloading 01/15: 01 - Jinjo Village.mp3...
Couldn't download 01 - Jinjo Village.mp3. Trying again...
Couldn't download 01 - Jinjo Village.mp3. Trying again...
Couldn't download 01 - Jinjo Village.mp3. Skipping over.
Downloading 02/15: 02 - Isle of Hags.mp3...
Couldn't download 02 - Isle of Hags.mp3. Trying again...
Couldn't download 02 - Isle of Hags.mp3. Trying again...
Couldn't download 02 - Isle of Hags.mp3. Skipping over.

This is on Termux (Android).

Anyone has the same problem as me?

khinsider.py not responding to requests for help or downloading

Having a little trouble with khinsder.py. The following are my attempts to download something or ask for help from the CMD menu:

C:\Users\l\Downloads\khinsider-master>khinsider.py mega-man-legends-2
No soundtrack specified! As the first parameter, use the name the soundtrack uses in its URL.
If you want to, you can also specify an output directory as the second parameter.
You can also search for soundtracks by using your search term as parameter - as long as it's not an existing soundtrack.

For detailed help and more options, run "khinsider.py --help".

C:\Users\l\Downloads\khinsider-master>khinsider.py --help
No soundtrack specified! As the first parameter, use the name the soundtrack uses in its URL.
If you want to, you can also specify an output directory as the second parameter.
You can also search for soundtracks by using your search term as parameter - as long as it's not an existing soundtrack.

For detailed help and more options, run "khinsider.py --help".

C:\Users\l\Downloads\khinsider-master>khinsider.py https://downloads.khinsider.com/game-soundtracks/album/mega-man-legends-2
No soundtrack specified! As the first parameter, use the name the soundtrack uses in its URL.
If you want to, you can also specify an output directory as the second parameter.
You can also search for soundtracks by using your search term as parameter - as long as it's not an existing soundtrack.

For detailed help and more options, run "khinsider.py --help".

I currently have Python 3.8, BeautifulSoup4, requests and get-pip.py installed as per the instructions. I am also- as can be seen- using the name of the soundtrack/URL as my first parameter. Is there something else I should install? Or am I doing something wrong?

No longer working?

When I press enter. the python window closes after half a second. I've been using it on the command line in powershell rather than an import.

If there is error logs to help I dont know how to find them.

Unexpected Error!

Has been working great for a long time, suddenly getting this error:

C:\Users\Gary>khinsider.py blood-2-the-chosen-soundtrack-pc "E:\Downloads\khinsider.py\Blood 2 - The Chosen Soundtrack (PC)"
C:\Users\Gary\AppData\Local\Programs\Python\Python37\Scripts\khinsider.py:39: DeprecationWarning: the imp module is deprecated in favour of importlib; see the module's documentation for alternative uses
import imp # To check modules without importing them.
Getting song list...

An unexpected error occurred! If it isn't too much to ask, please report to https://github.com/obskyr/khinsider/issues.
Attach the following error message:

Traceback (most recent call last):
File "C:\Users\Gary\AppData\Local\Programs\Python\Python37\Scripts\khinsider.py", line 556, in
sys.exit(doIt())
File "C:\Users\Gary\AppData\Local\Programs\Python\Python37\Scripts\khinsider.py", line 506, in doIt
success = download(soundtrack, outPath, formatOrder=formatOrder, verbose=True)
File "C:\Users\Gary\AppData\Local\Programs\Python\Python37\Scripts\khinsider.py", line 391, in download
return Soundtrack(soundtrackId).download(path, makeDirs, formatOrder, verbose)
File "C:\Users\Gary\AppData\Local\Programs\Python\Python37\Scripts\khinsider.py", line 306, in download
files.append(getAppropriateFile(song, formatOrder))
File "C:\Users\Gary\AppData\Local\Programs\Python\Python37\Scripts\khinsider.py", line 154, in getAppropriateFile
return song.files[0]
IndexError: list index out of range

Unicode error

Was trying to download Rhythm Thief's OST, and got a unicode error.

Traceback (most recent call last):
  File "C:\khinsider-master\khinsider.py", line 548, in <module>
    sys.exit(doIt())
  File "C:\khinsider-master\khinsider.py", line 498, in doIt
    success = download(soundtrack, outPath, formatOrder=formatOrder, verbose=Tru
e)
  File "C:\khinsider-master\khinsider.py", line 383, in download
    return Soundtrack(soundtrackId).download(path, makeDirs, formatOrder, verbos
e)
  File "C:\khinsider-master\khinsider.py", line 307, in download
    files.extend(self.images)
  File "C:\khinsider-master\khinsider.py", line 135, in lazyVersion
    setattr(self, attrName, func(self))
  File "C:\khinsider-master\khinsider.py", line 278, in images
    images = [File(urljoin(self.url, url)) for url in urls]
  File "C:\khinsider-master\khinsider.py", line 361, in __init__
    self.filename = unquote(str(url.rsplit('/', 1)[-1]))
UnicodeEncodeError: 'ascii' codec can't encode character u'\uff5e' in position 1
0: ordinal not in range(128)

I looked around the issues section and it may be an error on my part, I'm not sure. Just posting it here in case it isn't since it seems like you've fixed a lot of unicode errors. A quick google said that "u'\uff5e'" was the character "~" if that helps.

Can't download any OST's

I am using windows 10 with python 3.8.2

No matter which method I use, no ost's will download. I tried using the CMD, I also tried using the module method, but I get constant syntax errors about the equal signs for 'format-order and make-dirs'. If I try to specify downloading the FLAC version of an OST, another window pops up for half a second and closes.

Some commands I've tried running, and the results
"khinsider.py --format flac persona-5" -- windows pops up and closes
"khinsider.download(persona-5[, path="", makeDirs=True, formatOrder=['flac'], verbose=True])" -- Invalid syntax for every equal sign.

Thanks in advance for any help you can provide

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.