#51 Le 30/10/2006, à 20:00
- Guillaume86
Re : [Programme] Télécharger la musique de RadioBlogClub
Fabuleux, ton programme, que du bonheur! ^^
Du coup, y a-t-il d'autres sites dans la veine de radioblogclub? qu'on puisse bidouiller le programme...:D
Si quelqu'un y arrive avec mybloop.com ca sera parfait les bitrates sont pas réduits sur ce site... J'ai un peu cherché mais j'ai pas trouvé, avis aux intérressés...
edit: aprés m'etre inscrit et testé 2 mins j'ai trouvé... Si quelqu'un se sent chaud pour faire un script python je veux bien donner les infos pour trouver l'url des mp3...
Dernière modification par Guillaume86 (Le 30/10/2006, à 20:11)
Hors ligne
#52 Le 30/10/2006, à 21:43
- Julius
Re : [Programme] Télécharger la musique de RadioBlogClub
Ca pourrait déchirer
Hors ligne
#53 Le 30/10/2006, à 22:02
- foch
Re : [Programme] Télécharger la musique de RadioBlogClub
J'ai regardé 2 minutes aussi, mais je dois être fatigué, j'ai pas trouvé comment récupérer l'url du fichier
par contre si tu es sur que c'est possible, la modification de mon script peut se faire en 15 minutes ! tu veux pas donner la méthode ? ou on va se faire tirer les oreilles par un admin ?
De retour sous Ubuntu après quelques années sous ArchLinux.
Programme de téléchargement de musique qui ne marche plus vraiment.
Hors ligne
#54 Le 30/10/2006, à 22:04
- tshirtman
Re : [Programme] Télécharger la musique de RadioBlogClub
ça pourrais devenir très interressant tout ça ^^, si vous hesitez a poster ici, y'as irc ou les mails ^^...
il suffirait de choisir sur quel réseau des deux faire la recherche et surcharger la methode de recherche/download en fonction... "et hop" ^^
Dernière modification par tshirtman (Le 30/10/2006, à 22:06)
Hors ligne
#55 Le 30/10/2006, à 22:25
- Guillaume86
Re : [Programme] Télécharger la musique de RadioBlogClub
ça pourrais devenir très interressant tout ça ^^, si vous hesitez a poster ici, y'as irc ou les mails ^^...
il suffirait de choisir sur quel réseau des deux faire la recherche et surcharger la methode de recherche/download en fonction... "et hop" ^^
Beh je sais pas je risque qqch a dire comment contourner les bazard? Pour etre honette j'ai essayé de modifier ton script mais étant une grosse m**** en python (et en programmation en général lol) j'arrive juste a ressortir les résultats d'une recherche et encore j'ai des problemes de parsing enfin voila je vais pas m'en sortir lol... Donc voila je t'explique tu pourra surement en faire qqch toi:
Tu fais ta recherche sur cette url:
"http://www.mybloop.com/search.o?q=" + termerecherche + "&e=files&tmus=1&p=" + numeropage
en sachant que tu as 25 résultats par pages et que
reg1 = re.compile('^.*of <b>(.*)</b> results.*$')
va te donner le nombre de résultats (normalement...)
Maintenant la partie intérressante pour les URLs:
dans ta page de recherche tu as par exemple:
<tr bgColor="#FAFAFA">
<td class="smallerTextLighter">11.</td>
<td><img src="/images/icons/16x16/mp3.gif"></td>
<td>
<a href="http://www.mybloop.com/Padav1/Musique/Tryo_-_Mamagubida/Tryo_-_Mamagubida_-_07_-_La_Misere_Den_Face.mp3"><span class="highlight">Tryo</span> - Mamagubida - 07 - La Misere Den Face.mp3</a>
<a href="javascript:showPlayer('40366')"><img src="/images/playlist/play_xsm.gif" border="0" title="Play this song" style="position:relative; top:2px"></a>
</td>
<td align="center">2</td>
<td align="center"><img src="/images/star_off.gif" style="position:relative; top:0px"><img src="/images/star_off.gif" style="position:relative; top:0px"><img src="/images/star_off.gif" style="position:relative; top:0px"><img src="/images/star_off.gif" style="position:relative; top:0px"><img src="/images/star_off.gif" style="position:relative; top:0px"></td>
<td align="center"><a href="/Padav1">Padav1</a></td>
<td align="center">0</td>
</tr>
Et bien l'url de telechargement sera: http://www.mybloop.com/get/40366/Tryo_-_Mamagubida_-_07_-_La_Misere_Den_Face.mp3 tu déduira facilement comment trouver le numero et le nom de fichier je te fais confiance
Voila je suis sur que tu saura faire un beau script avec ca,
Caio bon boulot a bientot j'espere...
edit: le numero de page commence a 1 pas a 0 comme sur radioblog
Dernière modification par Guillaume86 (Le 30/10/2006, à 22:30)
Hors ligne
#56 Le 30/10/2006, à 22:59
- foch
Re : [Programme] Télécharger la musique de RadioBlogClub
Effectivement avec toutes ces infos ca m'a l'air bien simple ! Ce soir je suis naze j'ai pas les yeux en face des trous (probablement l'effet changement d'heure), mais dès que je trouve un peu de courage, je verrai si j'y arrive !
De retour sous Ubuntu après quelques années sous ArchLinux.
Programme de téléchargement de musique qui ne marche plus vraiment.
Hors ligne
#57 Le 05/11/2006, à 12:44
- guigni
Re : [Programme] Télécharger la musique de RadioBlogClub
UPUPUP!
Tu as réussi le script?
#58 Le 05/11/2006, à 16:32
- yasmina
Re : [Programme] Télécharger la musique de RadioBlogClub
bonjour jemerais bien s'avoire commant faire pour telecharger de la musique sur overnet
#59 Le 06/11/2006, à 17:23
- foch
Re : [Programme] Télécharger la musique de RadioBlogClub
UPUPUP!
Tu as réussi le script?
Pour l'instant je n'ai plus internet chez moi... je viens de demenager
va falloir attendre encore ! desole
De retour sous Ubuntu après quelques années sous ArchLinux.
Programme de téléchargement de musique qui ne marche plus vraiment.
Hors ligne
#60 Le 06/11/2006, à 20:02
- guigni
Re : [Programme] Télécharger la musique de RadioBlogClub
Ok merci j'attend impatiement
#61 Le 07/11/2006, à 00:46
- zorglb
Re : [Programme] Télécharger la musique de RadioBlogClub
Hors ligne
#62 Le 07/11/2006, à 01:25
- Miles Prower
Re : [Programme] Télécharger la musique de RadioBlogClub
Script en python ?
Ça te tenterait de te lancer dans cette aventure ?
http://gueux-forum.net/index.php?s=&showtopic=130005&view=findpost&p=893592
I wanna fly high
So I can reach the highest of all the heavens
Somebody will be
Waiting for me, so I have gotta fly higher.
Hors ligne
#63 Le 07/11/2006, à 08:49
- Guillaume86
Re : [Programme] Télécharger la musique de RadioBlogClub
Script en python ?
Ça te tenterait de te lancer dans cette aventure ?
http://gueux-forum.net/index.php?s=&showtopic=130005&view=findpost&p=893592
C'est lui qui a fait le script dont vous parlez, je pensais pas retrouver qq1 de gueux.be ici , il a un moment j'ai pas mal participé (j'ai meme fait le script France2 France3 en modifiant un autre scipt...).
Hors ligne
#64 Le 07/11/2006, à 11:47
- foch
Re : [Programme] Télécharger la musique de RadioBlogClub
Et puis l'interface graphique dont vous parlez sur le forum a deja ete faite... en PyGTK mais bon !
De retour sous Ubuntu après quelques années sous ArchLinux.
Programme de téléchargement de musique qui ne marche plus vraiment.
Hors ligne
#65 Le 07/11/2006, à 20:16
- Guillaume86
Re : [Programme] Télécharger la musique de RadioBlogClub
Bon j'ai modifié le scipt, tout fonctionne exepté le téléchargement à propremement parler,pourtant l'url est correcte j'ai vérifié mais j'obtiens un fichier qui me dit que le serveur n'a pas compris la demande ou qqch dans le genre, si tu peux m'aider... Voila le script modifié:
#!/usr/bin/env python # -*- coding: cp1252 -*- ### # # RBCD - RadioBlogClub Downloader - Download songs from RadioBlogClub. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License version 2 as # published by the Free Software Foundation # # This program is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 # USA # ### __version__ = "0.4" __date__ = "29/08/2006" import urllib, re, sys def searchURL(i, params): """ Return the URL to search the MP3 """ url = "http://www.mybloop.com/search.o?q=" + params + "&e=files&tmus=1&p=" + str(i) try: return urllib.urlopen(url).read() except IOError: print "Error : could not connect" sys.exit(1) def main(argv): """ Main function, one to rule them all """ #get the webpage data data = searchURL(1, "_".join(argv)) lines = data.split('\n') #regular expression to find the number of songs reg1 = re.compile('^.*of <b>(.*)</b> results on.*$') n_songs = 0 #get the number of songs for line in lines: if reg1.match(line): n_songs = int(reg1.search(line).groups()[0]) break #if no song is found, exit if n_songs == 0: print "No song found" sys.exit(0) #get the number of pages to browse n_pages = n_songs / 25 + 1 #download the pages pages = [] pages.append(lines) numbers = [i for i in range(2, n_pages + 1)] for i in numbers: pages.append(searchURL(i, "_".join(argv)).split('\n')) #regular expression to find the song URLs reg2 = re.compile('^.*<a href=\"http://www.mybloop.com/.*\">(.*)</a>.*$') reg2b = re.compile('^.*<a href="javascript:showPlayer\(\'(.*)\'\)"><img.*$') songs = [] num = [] i = 0 #parse the HTML data to find the songs and save in a list for page in pages: for line in page: if reg2.match(line): result = reg2.search(line).groups() url = result[0] name = result[0].replace('</span>', '') songs.append((url, name)) i += 1 print "%4d : %s" % (i, name) if reg2b.match(line): resultb = reg2b.search(line).groups() numero = resultb num.append(numero) while 1: #get the user choice while 1: user = raw_input("Choice (q to exit): ") if user == 'q': sys.exit(0) try: choice = int(user) except ValueError: continue if choice > 0 and choice <= len(songs): break name = songs[choice - 1][1] name_search = name.replace('(', '\(').replace(')', '\)')\ .replace('[', '\[').replace(']', '\]')\ .replace('\'', '\\\\\'') url = "http://www.mybloop.com/get/" + str(num[choice - 1][0]) + "/" + songs[choice - 1][1]\ .replace(' ', '%20') print url #the RBS file was not found if url == "": print "Song not found. Maybe the song was a SWF. Try another one." sys.exit(1) #download the file print "downloading %s..." % (name, ) urllib.urlretrieve(url, name) #program entry point if __name__ == "__main__": if len(sys.argv) == 1: print "RadioBlogClub Downloader v. " + __version__ #enter interactive mode if no keywords are given user = raw_input("Enter keywords (q to exit): ") #problem with the ' user = user.replace('\'', ' ') if user == 'q': sys.exit(0) else: main(user.split(" ")) else: main(sys.argv[1:])
C'est certainement pas la maniere la plus clean de faire mais vu mes connaissances je ne peux faire que copier . @+
ps: voila ce que j'obtiens:
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<HTML><HEAD>
<TITLE>400 Bad Request</TITLE>
</HEAD><BODY>
<H1>Bad Request</H1>
Your browser sent a request that this server could not understand.<P>
The request line contained invalid characters following the protocol string.<P>
<P>
</BODY></HTML>
Dernière modification par Guillaume86 (Le 07/11/2006, à 20:20)
Hors ligne
#66 Le 07/11/2006, à 20:27
- Guillaume86
Re : [Programme] Télécharger la musique de RadioBlogClub
Et je viens de me rendre compte que mon script est foireux pour les longs noms de fichiers, j'aurais du récuperer le nom de fichier dans le lien et pas dans le texte affiché parce qu'a partir d'un moment il fait une troncature(...) mais bon il faut qd mm un nom assez long et j'en ai marre de faire des recherches sur les expressions régulieres ^^ je regarderai une autre fois si foch le fait pas.
Hors ligne
#67 Le 10/11/2006, à 09:45
- foch
Re : [Programme] Télécharger la musique de RadioBlogClub
Je regarderai ca... pour l'instant j'ai internet qu'au boulot... et je suis sense faire du Java !
mais a priori ton code a l'air bon, je ne devrais pas y passer trop de temps, et des que ca fonctionne je fais tout ca en mode graphique, ca devrait etre rapide aussi !
De retour sous Ubuntu après quelques années sous ArchLinux.
Programme de téléchargement de musique qui ne marche plus vraiment.
Hors ligne
#68 Le 12/11/2006, à 22:01
- Guillaume86
Re : [Programme] Télécharger la musique de RadioBlogClub
Bon j'ai esquivé le probleme de redirection d'url, il suffit de remplacer dans le script la ligne
urllib.urlretrieve(url, name)
par
webbrowser.open(url)
et en bonus vous aurez droit a la vitesse de téléchargement et la barre d'avancement vu que c'est votre browser qui téléchargera , reste plus qu'a mettre ca en mode graphique.
PS: Pour les parresseux, voila le script ICI (clic droit puis enregistrer sous), il reste le probleme des longs noms de fichiers (si vous voyez 3 ptits points a la fin du nom laissez tomber) et un probleme bizarre de
%20
a remplacer par des espaces pour que ca fonctionne dans certains cas...
Dernière modification par Guillaume86 (Le 12/11/2006, à 22:34)
Hors ligne
#69 Le 16/11/2006, à 19:25
- moutonnoir
Re : [Programme] Télécharger la musique de RadioBlogClub
je suis nul en informatique es ce que qelqu'un pourait m'expliquer simplement comment faire?
merci d'avance
Hors ligne
#70 Le 03/12/2006, à 13:16
- foch
Re : [Programme] Télécharger la musique de RadioBlogClub
et bien essaye, et tu verras que ca demande beaucoup plus de manips que l'utilisation du script ! (affichage du code source de la page entre autres)
mais c'est vrai que c'est possible... apres c'est comme tu sens !
De retour sous Ubuntu après quelques années sous ArchLinux.
Programme de téléchargement de musique qui ne marche plus vraiment.
Hors ligne
#71 Le 03/12/2006, à 14:01
- foch
Re : [Programme] Télécharger la musique de RadioBlogClub
Bon j'ai eu un peu le temps de me pencher sur le probleme, et j'avoue que j'ai eu quelques soucis avec la commande qui permet normalement de telecharger des fichiers en python (urllib.urlretrieve). pour des raisons obscures elle refuse de fonctionner, alors j'ai remplace la commande par un appel a wget (ce qui me semble plus pro que d'appeller un navigateur web).
Par contre j'ai pas vraiment teste le programme de maniere fonctionnelle, et j'ai pas encore vu de cas avec les ...
#!/usr/bin/env python
# -*- coding: cp1252 -*-
###
#
# MBD - MyBloop Downloader - Download songs from MyBloop.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
# USA
#
###
__version__ = "0.1"
__date__ = "03/12/2006"
import urllib, re, sys, os
def searchURL(i, params):
""" Return the URL to search the MP3 """
url = "http://www.mybloop.com/search.o?q=" + params + "&e=files&tmus=1&p=" + str(i)
try:
return urllib.urlopen(url).read()
except IOError:
print "Error : could not connect"
sys.exit(1)
def main(argv):
""" Main function, one to rule them all """
#get the webpage data
data = searchURL(1, "_".join(argv))
lines = data.split('\n')
#regular expression to find the number of songs
reg1 = re.compile('^.*of <b>(.*)</b> results on.*$')
n_songs = 0
#get the number of songs
for line in lines:
if reg1.match(line):
n_songs = int(reg1.search(line).groups()[0])
break
#if no song is found, exit
if n_songs == 0:
print "No song found"
sys.exit(0)
#get the number of pages to browse
n_pages = n_songs / 25 + 1
#download the pages
pages = []
pages.append(lines)
numbers = [i for i in range(2, n_pages + 1)]
for i in numbers:
pages.append(searchURL(i, "_".join(argv)).split('\n'))
#regular expression to find the song URLs
reg2 = re.compile('^.*<a href=\"http://www.mybloop.com/.*\">(.*)</a>.*$')
reg2b = re.compile('^.*<a href="javascript:showPlayer\(\'(.*)\'\)"><img.*$')
songs = []
num = []
i = 0
#parse the HTML data to find the songs and save in a list
for page in pages:
for line in page:
if reg2.match(line):
result = reg2.search(line).groups()
url = result[0]
name = result[0].replace('</span>', '')
songs.append((url, name))
i += 1
print "%4d : %s" % (i, name)
if reg2b.match(line):
resultb = reg2b.search(line).groups()
numero = resultb
num.append(numero)
while 1:
#get the user choice
while 1:
user = raw_input("Choice (q to exit): ")
if user == 'q':
sys.exit(0)
try:
choice = int(user)
except ValueError:
continue
if choice > 0 and choice <= len(songs):
break
name = songs[choice - 1][1]
name_search = name.replace('(', '\(').replace(')', '\)')\
.replace('[', '\[').replace(']', '\]')\
.replace('\'', '\\\\\'')
url = "http://www.mybloop.com/get/" + str(num[choice - 1][0]) + "/" + songs[choice - 1][1]\
.replace(' ', '%20')
print url
#the file was not found
if url == "":
print "Song not found. Maybe the song was a SWF. Try another one."
sys.exit(1)
#download the file
print "downloading %s..." % (name, )
#it's strangely not working with urllib.urlretrieve (error 400) so we use wget
os.system("wget %s" % (url, ))
#program entry point
if __name__ == "__main__":
if len(sys.argv) == 1:
print "MyBloop Downloader v. " + __version__
#enter interactive mode if no keywords are given
user = raw_input("Enter keywords (q to exit): ")
#problem with the '
user = user.replace('\'', ' ')
if user == 'q':
sys.exit(0)
else:
main(user.split(" "))
else:
main(sys.argv[1:])
Dernière modification par foch (Le 03/12/2006, à 14:02)
De retour sous Ubuntu après quelques années sous ArchLinux.
Programme de téléchargement de musique qui ne marche plus vraiment.
Hors ligne
#72 Le 06/12/2006, à 00:01
- Mathieu11
Re : [Programme] Télécharger la musique de RadioBlogClub
Vraiment bien mais le seul probleme avec le script pour my bloop :
Ou va la musique telechargee ? Je ne la retrouve nulle part...
Vostro 1400
Hors ligne
#73 Le 06/12/2006, à 18:44
- foch
Re : [Programme] Télécharger la musique de RadioBlogClub
Ben normalement dans le dossier en cours ! celui ou tu lances le script quoi
De retour sous Ubuntu après quelques années sous ArchLinux.
Programme de téléchargement de musique qui ne marche plus vraiment.
Hors ligne
#74 Le 09/12/2006, à 17:20
- Skyper
Re : [Programme] Télécharger la musique de RadioBlogClub
J'ai essayé ton script mais il n'y a pas de téléchargement qui se produit.
Au niveau de le ligne wget, il y'a peut être un souci non?
A quoi correspond os.system?
Merci pour les précisions
#75 Le 09/12/2006, à 17:32
- Skyper
Re : [Programme] Télécharger la musique de RadioBlogClub
J'ai essayé ton script mais il n'y a pas de téléchargement qui se produit.
Au niveau de le ligne wget, il y'a peut être un souci non?
A quoi correspond os.system?Merci pour les précisions
J'ai mis juste pour tester à la ligne en question
os.system("wget %s" % url)
et ça a l'air de marcher ^^