Youtube Videonamen auslesen

  • Hi, für die Beta meines Musikplayers möchte ich gerne eine Funktion einbauen, um den Titel des Videos anzuzeigen (bisher wird einfach nur Youtube angezeigt). Leider hab ich 0 Ahnung von der Inet bzw. IE UDF. Ich hoffe ihr wisst was ich mein und könnt mir helfen, bzw. geht das überhaupt?
    PS: Beispiel: http://www.youtube.com/watch?v=YastlxhifIc VideoName: Green Day - Know Your Enemy Diesen Namen möchte ich gerne aus dem Quellcode rausfiltern.

    Einmal editiert, zuletzt von Leon (6. Februar 2010 um 20:55)

  • Per Opera hab ich das schnell gefunden. Dann musst du mit StringBetween einfach mal rumexperementieren.

    Spoiler anzeigen
    Code
    <link rel="shortcut icon" href="http://s.ytimg.com/yt/favicon-vfl122048.ico" type="image/x-icon">
     	<link rel="canonical" href="/watch?v=YastlxhifIc">
     	<link rel="alternate" media="handheld" href="http://m.youtube.com/watch?desktop_uri=%2Fwatch%3Fv%3DYastlxhifIc&amp;v=YastlxhifIc&amp;gl=US">
     	<meta name="title" content="Green Day - Know Your Enemy">
    
    
     	<meta name="description" content="I hope you like it!Freue mich über Kommentare und Bewertungen.">
  • naja also wenn du ein video abspielst steht des ja oben als Titel..also ist im html code das ganze auch unter title...dort lässt du einfach das youtube davor rausschneiden und schon hast du ihn ;)

    /Edit..also ich hab dir mal sowas gebastelt :

    Spoiler anzeigen
    [autoit]

    #include <inet.au3>
    #include <string.au3>

    [/autoit] [autoit][/autoit] [autoit]

    $link = 'http://www.youtube.com/watch?v=dl-KPFKVPD0&feature=rec-r2-2r-1-HM'

    [/autoit] [autoit][/autoit] [autoit]

    $source = _INetGetSource($Link)
    $array = _StringBetween($source, '<title>', '</title>')
    MsgBox(0, "", StringTrimLeft($array[0], 17))

    [/autoit]

    aber mir macht das Stringtrimleft ein wenig sorgen..bin nicht sicher ob das bei jedem video funktioniert...musst du mal ausprobieren

    Einmal editiert, zuletzt von Reaker (2. Februar 2010 um 17:00)

  • Vielleicht ist es nicht perfekt, aber es funktioniert^^

    [autoit]

    #include<string.au3>
    #include<array.au3>
    #include<Inet.au3>
    $sLink="http://www.youtube.com/watch?v=YastlxhifIc"
    $p=StringRegExp(_INetGetSource($sLink),'title="(.*)"',1)
    MsgBox(0,"Youtube Title",$sLink&" = "&$p[0])

    [/autoit]

    Wer immer nur das tut, was er bereits kann - wird auch immer nur das bleiben, was er bereits ist!

  • Habe dir mal schnell eine Funktion geschrieben mit der es funktioniert

    Spoiler anzeigen
    [autoit]

    #include <String.au3>
    #include <INet.au3>

    [/autoit] [autoit][/autoit] [autoit]

    $Title = _GetYouTubeTitle("http://www.youtube.com/watch?v=1c2xNJ9HDIg")
    MsgBox(0,"Test",$Title)

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    Func _GetYouTubeTitle($s_URL)
    $Link = _INetGetSource($s_URL)
    $1 = _StringBetween($Link,"'VIDEO_TITLE':",",")
    $2 = StringTrimLeft($1[0],2)
    $3 = StringTrimRight($2,1)
    Return $3
    EndFunc

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit]


    Funktioniert nur wenn "http://www." vor dem "youtube.com/watch?v=XXXXXXXX" steht.

  • Vielen Dank @all hat alles perfekt geklappt, hab mal Xovo´s version genommen, da ich finde, das sie am einfachsten ist. Wenn du willst schreib ich dich mit in dir Credits vom PLayer :D

  • das wäre sehr nett von dir :D
    PS: Wenn du Hilfe brauchst, würde ich gerne weitere Unterstützung anbieten. PN me einfach

    Wer immer nur das tut, was er bereits kann - wird auch immer nur das bleiben, was er bereits ist!

    2 Mal editiert, zuletzt von XovoxKingdom (2. Februar 2010 um 19:06)