Algumas trilhas já caíram até em domínio público e mesmo assim é difícil encontrá-las, nem em torrent. Diga-se de passagem que alguns games foram produzidos 20 atrás. Um dos melhores repositórios que encontrei é o Kingdom Hearts Insider


Apesar das atenções ao produto específico da SQUARE ENIX, eles têm o direito de se gabar com os indicadores abaixo considerando que são trilhas apenas de jogos.

Total albums:   7106
Total songs:  193532
Total size:   598.64 GB

# 14 de Setembro / 2014

O portal está bem paginado para evitar carregamentos desnecessários dado o dicionário de [0-9] e [A-Z] e as playlists por jogo bem estruturadas. O pesadelo é que o link de download leva para outra página e nesta outra existe mais um link que deve ser utilizado com um Save As.


Se a quantidade de arquivos for pequena talvez o processo seja banal, mas deparei-me com trilhas de aproximadamente 40 faixas e se levarmos em consideração a limitação de sockets por host dos navegadores o processo será bem árduo. Pra isso existe o Download all (que exige cadastro no fórum).


E depois de cadastrado e logado…


São nestas ocasiões que o pensamento do canivete suíço surge.

Se eles não podem resolver por mim, farei-o eu mesmo.

Resolvendo com Shell

#!/bin/bash

REGEX='http:[^"]+\.mp3'

PLAYLIST=$(curl -s $1 | grep -oE $REGEX | sort -u)
DOWNLIST=$(for link in $PLAYLIST; do curl -s $link | grep -oE $REGEX | sort -u; done)

for mp3 in $DOWNLIST
do
  title=$(echo $mp3 | grep -oE '[^\/]+$')
  echo "Downloading ${title}"
  curl -O --progress-bar $mp3 && echo
done

Basta salvar o conteúdo do script em um arquivo e aplicar permissão de execução no mesmo.

chmod a+x khinsider

A primeira versão com Shell Script foi apenas um rascunho para executar rapidamente a lógica dos downloads. Já na segunda versão com Ruby implementei um pouco mais do que poderia chamar de verbosidade e detalhes como já criar o diretório com o nome do álbum capitalizado em cada palavra. A segunda versão poderia ser feita em menos linhas à primeira, porém para efeitos didáticos deixei bem fragmentado.

./khinsider http://downloads.khinsider.com/game-soundtracks/album/killer-instinct-killer-cuts

# Creating the Album Folder...
# Getting the Game Playlist...
# Gathering the download links... 16/16
# Initializing downloads...

Downloading: 01-k.-i.-feeling.mp3
######################################################################## 100.0%

Downloading: 02-the-way-u-move.mp3
######################                                                    31.8%

...

E voilà, com pouco ou quase nenhum esforço você tem o álbum completo.

Killer Instinct Killer Cuts
├── 01-k.-i.-feeling.mp3
├── 02-the-way-u-move.mp3
├── 03-controlling-transmission.mp3
├── 04-oh-yeah.mp3
├── 05-it-s-a-jungle.mp3
├── 06-do-it-now-.mp3
├── 07-full-bore.mp3
├── 08-the-instinct.mp3
├── 09-yo-check-this-out-.mp3
├── 10-freeze.mp3
├── 11-trailblazer.mp3
├── 12-tooth-claw.mp3
├── 13-ya-ha-haa.mp3
├── 14-rumble.mp3
├── 15-the-extreme.mp3
└── 16-bonus-humiliation-.mp3