[Ex] Youtube downloader sans internet explorer

Partagez vos scripts, et vos applications AutoIt.
Règles du forum
.
Répondre
sheeva700
Niveau 1
Niveau 1
Messages : 3
Enregistré le : mar. 26 août 2008 20:33
Status : Hors ligne

[Ex] Youtube downloader sans internet explorer

#1

Message par sheeva700 »

Bonsoir a tous,

Mon Premier post sur ce forum bien sympa.

Ma version d'un "Youtube Downloader" est un tantinet differente.
Effectivement en fouillant un peu youtube j'ai trouver qu'on pouvais réaliser une recherche très simplement.
pour faire ça rien de plus simple :wink:

http://www.youtube.com/rss/tag/autoit.rss

ceci vous retourne les video concernant autoit au format xml mais pas de panique je n'utilse pas, dans ce script en tous
cas, l'xml. la méthode est somme toutes plus brutale mais très efficace.

La ou ça devient amusant c'est avec la syntaxe suivante

http://www.youtube.com/rss/tag/autoit+tutorial.rss

Dans la recherche vous pouvez mettre des [espaces] qui serons directement convertis en [+]

Code : Tout sélectionner

#include <Array.au3>
#include <Inet.au3>
#include <String.au3>

_QuakeTubes(InputBox("Quake The Tubes","Tapez Votre recherche"))

Func _QuakeTubes($XQuery)
    $XQuery = StringReplace($XQuery," ","+")
    $Yquery = _INetGetSource("http://www.youtube.com/rss/tag/" & $XQuery & ".rss")
    if @error <> 1 then
        $result = _StringBetween($Yquery, '<item>', '</item>')
        local $Yarray[UBound($result)][3]
        for $yt = 0 to UBound($result)-1
            $Titles = _StringBetween($result[$yt],'<media:title>','</media:title>')
            $Link = _StringBetween($result[$yt],'<media:player url="','" />')
            $Thumb = _StringBetween($result[$yt],'<media:thumbnail url="','" width=')

            $Yarray[$yt][0] = _ArrayToString($Titles)
            $Yarray[$yt][1] = _Convert($Link[0])
            $Yarray[$yt][2] = _ArrayToString($Thumb)
            ConsoleWrite($Yarray[$yt][1] & @crlf)
        Next
            _ArrayDisplay($Yarray)
    Else
        MsgBox("error","Aucun résultat pour votre recherche",0)
    EndIf
Endfunc

Func _Convert($BaseLink)
    Local $r_Url = $Baselink, $Init = 1001
    Local $r_ID = StringTrimLeft($r_Url, StringInStr($r_Url, '='))
    Local $_kb = 0, $_kbl = 0

    $oRet = _INetGetSource('http://www.youtube.com/get_video_info?&video_id=' & $r_ID)
    $s_token = _StringBetween($oRet, '&token=', '&thumbnail_url=')
    If Not IsArray($s_token) Then
        If StringLeft(StringTrimLeft($oRet, 22), 3) = '150' Then
;~          ConsoleWrite("Error" & @crlf)
            Return -1
        Else
;~          GUICtrlSetData($l_pr, $a_lng[23])
        EndIf
;~      Return _ResetCtrl( )
    EndIf

    $v_title = _StringBetween($oRet, '&title=', '&')
    If Not IsArray($v_title) Then
        $v_title = StringTrimLeft($oRet, StringInStr($oRet, '&title=') + StringLen('&title=') -1)
        If $v_title = "" Then
;~          GUICtrlSetData($l_pr, $a_lng[24])
;~          Return _ResetCtrl( )
        Else
            $s_title = $v_title
        EndIf
    Else
        $s_title = $v_title[0]
    EndIf
    
    $Link = "http://www.youtube.com/get_video?video_id=" & $r_ID & "&t=" & $s_token[0] & "&fmt=5"
    return $link
EndFunc   ;==>_download
Ceci ne telecharge pas a proprement parler les video mais, vous donne tous ce qu'il faut pour le faire.
Effectivement dans l'array '$Yarray' se trouve tous ce dont vous avez besoin pour telecharger ou même jouer directement.
je fait d'ailleur un affichage de cette array en fin de programme.

Donc,
$Yarray[x][0] = Titres de la video
$Yarray[x][1] = Lien (pret a telecharger) de la video (un simple inetget vous telechargeras ça sans problème)
$Yarray[x][2] = Thumbnail soit l'image representant la vidéo (telechargeable aussi via inetget)

* [x] = Nombre de Video trouvée.

Bon le gros reste encore a faire mais j'ai écrit ce 'bout' de code en vue de l'intégrer dans d'autres de mes programmes sans
trop de soucis.

La Fonction _QuakeTube() est une création. la fonction _convert() émane du forum anglais d'autoIT (toujours en rade a l'heure ou je vous écrit :( )

Voila j'espère que ça vous plairas.
Modifié en dernier par sheeva700 le mer. 25 nov. 2009 08:19, modifié 1 fois.
Avatar du membre
jbnh
Niveau 11
Niveau 11
Messages : 1932
Enregistré le : ven. 02 mai 2008 14:54
Localisation : Bruxelles
Status : Hors ligne

Re: Youtube downloader sans internet explorer

#2

Message par jbnh »

Bonsoir et bienvenu sur le forum.

Merci de votre contribution, tout marche bien chez moi ;) Seulement, pourriez vous prendre quelques secondes pour lire les règles de présentation d'un message et d'éditer votre titre ?

Merci
Balise [..] devant votre requête en cours, [R] quand résolu | Pas de message concernant les bots !

Merci
sheeva700
Niveau 1
Niveau 1
Messages : 3
Enregistré le : mar. 26 août 2008 20:33
Status : Hors ligne

Re: [Ex] Youtube downloader sans internet explorer

#3

Message par sheeva700 »

Bonjour,

Voila qui est fait.
Alexward
Niveau 4
Niveau 4
Messages : 76
Enregistré le : jeu. 27 mai 2010 01:24
Status : Hors ligne

Re: [Ex] Youtube downloader sans internet explorer

#4

Message par Alexward »

Salut, Je ne comprend pas quoi faire avec le URL qui nous donne :( Je suis suposer faire quoi pour télécharger la vidéo?

Merci
Répondre