Soundcloud Downloader

Bien le bonsoir !

Ça commençait à faire un bout de temps que je n’avais pas poster sur ce site un petit script alakon permettant de jouer les vilains pirates voleurs de musique ! Je vais donc rectifier la chose ce soir en vous proposant un script python permettant de télécharger les sons d’une page soundcloud, c’est bien entendu largement améliorable, mais pour une chose pondue vite fait mal fait c’est déjà pas mal ;)

Le script récupère tout les titres disponibles sur une page soundcloud, les enregistre sur l’ordinateur au format auteur-titre.mp3 et la banane sur le kiwi, tag le mp3 pour qu’on puisse le retrouver facilement dans son lecteur multimédia préféré !

A noter que la librairie mutagen permettant le tag des mp3 à la volée n’est pas fournie avec python, donc pour que le script fonctionne sans soucis il suffit de commenter la partie tagging ;)

Voici donc le bousin :

  # Name:    Soundcloud Download
  # Version: 0.1
  # Author:  y0no (Based on n0wz soundcloud Downloader)

  import os
  import sys
  import urllib2
  import re
  import json

  from mutagen.mp3 import EasyMP3
  from urllib import urlretrieve

  def affichemenu():
      print ("-----------------------(DOWNLOAD)-----------------------")
      print ("USAGE: %s [url]" % (sys.argv[0]))
      print ("EXEMPLE: %s http://soundcloud.com/dexisfeelingbad\n" % (sys.argv[0]))

  def main(argv):

      if len(sys.argv) >= 2:
              sURL = sys.argv[1]
              oURL = urllib2.urlopen(sURL)
              sPage = oURL.read()
              sTracksList = re.findall("window.SC.bufferTracks.push\((.*?)\)", sPage)
              if sTracksList:
                  for sTrack in sTracksList:
                      sTrack = json.loads(sTrack)
                      sName = sTrack['title']
                      sAuthor = sTrack['user']['username']
                      sLink = sTrack['streamUrl']
                      sFile = os.getcwd() + "/" + sAuthor + " - " + sName + ".mp3"

                      print("\nAuthor: %s"   % (sAuthor))
                      print("Name:   %s" % (sName))
                      print("Link:   %s"   % (sLink))
                      print("Download... :"),
                      urlretrieve(sLink, sFile)
                      print("Done")

                      ####### id3tag (optional) #######
                      song = EasyMP3(sFile)
                      song['title'] = sName
                      song['artist'] = sAuthor
                      song['album'] = "SoundCloud"
                      song.save()
                      ##################################
              else:
                  print("\nNo track found...")
      else:
          affichemenu()


  if __name__ == "__main__":
      main(sys.argv[1:])

Bandcamp Downloader GUI

Bien le bonjour !

En cette semaine pluvieuse au fin fond de ma Normandie, j’ai décidé d’améliorer un peu le script que j’avais présenté précédemment ici. Vu qu’un screenshot vaut toujours mieux qu’un long monologue :

Bandcamp Downloader

Concernant l’utilisation, c’est simple, il suffit de mettre le lien de la page BandCamp où les morceaux convoités sont situés, ensuite on cliques sur “Check” histoire de voir les titres que le soft a été capable de récupérer On sélectionnes ceux que l’on veut et l’endroit vers lequel on veut télécharger. Enfin on peut cliquer sur “Download”, partir boire un café banane/menthe et revenir kiffer la vibe avec votre musique fraîchement téléchargée !

Bien sûr je rappelle que l’on doit supporter les artistes, c’est toujours cool de pouvoir récupérer de la musique comme on veut, mais il est important de récompenser l’artiste pour son travail, que ce soit en live ou achetant ses albums. Ca vous fera un peu bouger de votre PC (bande de nerdzzz!) et ça fera des heureux :D

Sinon pour les curieux l’interface est codée avec PySide, c’est-à-dire du Qt pour python. La librairie Mutagen permet de marquer les tags MP3 à la volée et la lib httplib2 permet de récupérer les morceaux toussa toussa.

Téléchargements:

  • Code Source : ici
  • Installeur Windows : ici (Alpha version)
  • Executable linux : ici (Alpha version)