Linux get songs directly? /Lutris Installer broken

Started by Adrixan, November 01, 2018, 01:09:40 PM

Previous topic - Next topic

0 Members and 4 Guests are viewing this topic.

Adrixan

Hi everyone,

I already have an ultrastar setup running on Linux and would just like to download the songs directly.

Unfortunately I can't find a link to the library anywhere. Can someone please provide it to me?

I have also tried using the Lutris installer script but it seems to be broken, reporting that it doesn't get an 'lzma' in the response.

yayponies-eu

https://www.mylittlekaraoke.com/store/webinst/AC3-base1.tar.mlk
473128448
https://www.mylittlekaraoke.com/store/webinst/AC3-base2.tar.mlk
457838592
https://www.mylittlekaraoke.com/store/webinst/AC3-base3.tar.mlk
485589504
https://www.mylittlekaraoke.com/store/webinst/AC3-base4.tar.mlk
477571072
https://www.mylittlekaraoke.com/store/webinst/AC3-base5.tar.mlk
497623040
https://www.mylittlekaraoke.com/store/webinst/AC3-base6.tar.mlk
490698240
https://www.mylittlekaraoke.com/store/webinst/AC3-base7.tar.mlk
451117056
https://www.mylittlekaraoke.com/store/webinst/AC3-base8.tar.mlk
499034624
https://www.mylittlekaraoke.com/store/webinst/AC3-base9.tar.mlk
497562112
https://www.mylittlekaraoke.com/store/webinst/AC3-base10.tar.mlk
493263872
https://www.mylittlekaraoke.com/store/webinst/AC3-base11.tar.mlk
492700160
https://www.mylittlekaraoke.com/store/webinst/AC3-base12.tar.mlk
493468160
https://www.mylittlekaraoke.com/store/webinst/AC3-base13.tar.mlk
498331648
https://www.mylittlekaraoke.com/store/webinst/AC3-base14.tar.mlk
459000320
https://www.mylittlekaraoke.com/store/webinst/AC3-base15.tar.mlk
495222784
https://www.mylittlekaraoke.com/store/webinst/AC3-base16.tar.mlk
469262336
https://www.mylittlekaraoke.com/store/webinst/AC3-base17.tar.mlk
489236992
https://www.mylittlekaraoke.com/store/webinst/AC3-base18.tar.mlk
495268352
https://www.mylittlekaraoke.com/store/webinst/AC3-base19.tar.mlk
493790720
https://www.mylittlekaraoke.com/store/webinst/AC3-base20.tar.mlk
118261760
https://www.mylittlekaraoke.com/store/webinst/SIM4-base21.tar.mlk
317368320
https://www.mylittlekaraoke.com/store/webinst/SIM4-base22.tar.mlk
471132160
https://www.mylittlekaraoke.com/store/webinst/SIM4-base23.tar.mlk
466145280
https://www.mylittlekaraoke.com/store/webinst/SIM4-base24.tar.mlk
470589440
https://www.mylittlekaraoke.com/store/webinst/SIM4-base25.tar.mlk
443289600
https://www.mylittlekaraoke.com/store/webinst/SIM4-base26.tar.mlk
483491840
https://www.mylittlekaraoke.com/store/webinst/SIM4-base27.tar.mlk
484628480
https://www.mylittlekaraoke.com/store/webinst/SIM4-base28.tar.mlk
460503040
https://www.mylittlekaraoke.com/store/webinst/SIM4-base29.tar.mlk
89825280
https://www.mylittlekaraoke.com/store/webinst/SIM4-base30.tar.mlk
10240
https://www.mylittlekaraoke.com/store/webinst/SIM4-base31.tar.mlk
10240
https://www.mylittlekaraoke.com/store/webinst/SIM4-base32.tar.mlk
13312
https://www.mylittlekaraoke.com/store/webinst/SIM4-base33.tar.mlk
102737920
https://www.mylittlekaraoke.com/store/webinst/SIM4-base34_1.tar.mlk
34252800
https://www.mylittlekaraoke.com/store/webinst/SIM5-base35.tar.mlk
482707968
https://www.mylittlekaraoke.com/store/webinst/SIM5-base36.tar.mlk
479458304
https://www.mylittlekaraoke.com/store/webinst/SIM5-base37.tar.mlk
496461312
https://www.mylittlekaraoke.com/store/webinst/SIM5-base38.tar.mlk
475163136
https://www.mylittlekaraoke.com/store/webinst/SIM5-base39.tar.mlk
497339904
https://www.mylittlekaraoke.com/store/webinst/SIM5-base40.tar.mlk
496125952
https://www.mylittlekaraoke.com/store/webinst/SIM5-base41.tar.mlk
454102528
https://www.mylittlekaraoke.com/store/webinst/SIM5-base42.tar.mlk
469319680
https://www.mylittlekaraoke.com/store/webinst/SIM5-base43.tar.mlk
486031360
https://www.mylittlekaraoke.com/store/webinst/SIM5-base44.tar.mlk
37345280
https://www.mylittlekaraoke.com/store/webinst/theme2.mlt
62464000
https://www.mylittlekaraoke.com/store/webinst/avatars1.mlu
2037760

Renard

Hi! The script is supposed to fetch all the songs automatically and install them, except for the latest releases. Each pack is extracted (tarballs with no frills) in order in the songs folder, overwriting existing files if needed, as the incremental updates also provide corrections from time to time. The segments were posted right above my post by Yayponies, you can use the links above as a manual fallback if the script fails.

LZMA isn't needed to extract the tarballs, so I'm not sure what's happening here with the install script (due to having sub-1mbps internet now, I can't just fire up a new virtual machine and test, nor do I want to jeopardise my current Linux setup). I'll try to investigate when I get the chance :)

barbeque

Personally I just use a regular installation of Ultrastar and some scripts to get the stuff.

To get the base song packs easy, see the "Autoscript" under "What are the minimal system requirements?" on https://www.mylittlekaraoke.com/index.php?pages/Game-download

Just put the script in .ultrastardx and it _should_ work. Or just use Renard's links, it's a one-time operation anyway.

For the newer updates I've written a small Python script, again put it in .ultrastardx, change the WORK_DIR variable and run it, it will take care of the rest. I run it regularly (it wil not redownload what has already been downloaded, just don't ever remove the mlkbeta.cache file).
#!/usr/bin/env python

from lxml import html
import requests
import sys
import os
import urllib # only for pretty printing the download
import tarfile

# change if needed
WORK_DIR = '/home/bbq/.ultrastardx'
URL_PREFIX = 'https://www.mylittlekaraoke.com/store/beta'

# check if correct working dir
if os.getcwd() != WORK_DIR:
  print("Script should be run from " + WORK_DIR)
  sys.exit()

# open cache file for appending new items
cachefile = open('mlkbeta.cache', 'a')
# already downloaded items
cachefiler = open('mlkbeta.cache', 'r')
cache = cachefiler.read().splitlines()
cachefiler.close()

# grab webpage
r = requests.get(URL_PREFIX + '/releases.html')
tree = html.fromstring(r.content)
elems = tree.xpath('//div[@id="container"]/a')
elems.reverse()
for elem in elems:
  href = elem.get('href')
  # skip already downloaded files
  if href in cache:
    continue
  # download new files
  print('Downloading ' + os.path.basename(urllib.parse.unquote(href)))
  # do we even recognize this type?
  extractpath = None
  if href.endswith('.mlk'):
    extractpath = 'songs'
  elif href.endswith('.mlt'):
    extractpath = 'themes'
  if extractpath is None:
    raise 'Extension of "' + href + '" not recognized'
  # actual downloading
  tempfilename = 'temp.tar.gz'
  r = requests.get(URL_PREFIX + '/' + href, stream=True)
  with open(tempfilename, 'wb') as f:
    for chunk in r.iter_content(chunk_size=1024):
      if chunk: # filter out keep-alive new chunks
        f.write(chunk)
  # extract, delete, and log in cachefile
  tar = tarfile.open(tempfilename, 'r')
  tar.extractall(path=extractpath)
  tar.close()
  os.remove(tempfilename)
  cachefile.write(href + "\n")
  cachefile.flush()
cachefile.close()
i am best barbeque. put your hamburgers on me.

Adrixan

Thank you all for the replies and for the script!
Just finishing my downloads now! :)