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.
Youtube Videonamen auslesen
-
- [ gelöst ]
-
Leon -
2. Februar 2010 um 16:19 -
Geschlossen -
Erledigt
-
-
Per Opera hab ich das schnell gefunden. Dann musst du mit StringBetween einfach mal rumexperementieren.
Spoiler anzeigen
Code
Alles anzeigenyt.setConfig('LOGGED_IN', true); yt.setMsg({ 'LOADING': 'Wird geladen...', 'FLAG_DEFAULT': "Grund auswählen" }); yt.setConfig({ 'VIDEO_ID': 'YastlxhifIc', 'VIDEO_TITLE': 'Green Day - Know Your Enemy', 'SWF_URL': (yt.flash.canPlayV9Swf() ? "http://s.ytimg.com/yt/swf/watch-vfl143348.swf" : "http://s.ytimg.com/yt/swf/watch_v8-vfl143348.swf"),
Code
Alles anzeigenyt.timing.pt = window.gtbExternal && window.gtbExternal.pageT() || window.external && window.external.pageT; } catch(e) {} </script> <title> YouTube - Green Day - Know Your Enemy </title> <link id="www-core-css" rel="stylesheet" href="http://s.ytimg.com/yt/cssbin/www-core-vfl143242.css">
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&v=YastlxhifIc&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>
[/autoit] [autoit][/autoit] [autoit]
#include <string.au3>$link = 'http://www.youtube.com/watch?v=dl-KPFKVPD0&feature=rec-r2-2r-1-HM'
[/autoit] [autoit][/autoit] [autoit]$source = _INetGetSource($Link)
[/autoit]
$array = _StringBetween($source, '<title>', '</title>')
MsgBox(0, "", StringTrimLeft($array[0], 17))aber mir macht das Stringtrimleft ein wenig sorgen..bin nicht sicher ob das bei jedem video funktioniert...musst du mal ausprobieren
-
Vielleicht ist es nicht perfekt, aber es funktioniert^^
[autoit]#include<string.au3>
[/autoit]
#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]) -
Habe dir mal schnell eine Funktion geschrieben mit der es funktioniert
Spoiler anzeigen
[autoit]#include <String.au3>
[/autoit] [autoit][/autoit] [autoit]
#include <INet.au3>$Title = _GetYouTubeTitle("http://www.youtube.com/watch?v=1c2xNJ9HDIg")
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
MsgBox(0,"Test",$Title)Func _GetYouTubeTitle($s_URL)
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit]
$Link = _INetGetSource($s_URL)
$1 = _StringBetween($Link,"'VIDEO_TITLE':",",")
$2 = StringTrimLeft($1[0],2)
$3 = StringTrimRight($2,1)
Return $3
EndFunc
Funktioniert nur wenn "http://www." vor dem "youtube.com/watch?v=XXXXXXXX" steht. -
Ich habe es bei meinem Programm so gescriptet:
[autoit]$oIE = _IECreate ($URL, 1, 0, 1, 0)
[/autoit]
$HTML = _IEDocReadHTML($oIE)
$Text = _StringBetween($HTML, "<TITLE>YouTube -", "</TITLE>")Habs aber noch nicht getestet!
MfG
EDIT: Ich merk grad, die MsgBox zeigt 0 an, ich weiß aber nicht wo der Fehler ist
-
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
-
das wäre sehr nett von dir
PS: Wenn du Hilfe brauchst, würde ich gerne weitere Unterstützung anbieten. PN me einfach