So Leute, hab mir gedacht, dass es ganz praktisch wäre die Lieder die so auf Technobase.fm etc gespielt werden downloaden zu können..
Auf die Idee wie man das realisieren könnte hat mich L3viathan2142 mit seinem Youtube downloadskript gebracht
Funktionsweise:
Skript liest über den Quellcode das zuletzt gespielte Lied aus (Zeile 193 im Quellcode - ich weiß ist fehleranfällig, vielleicht bau ichs mal um ^^)
So, dann wird das ganze auf Youtube eingegeben und mittels der Skriptzeile von L3viathan2142 die eindeutige Kennung herausgefiltert (https://autoit.de/www.youtube.com/watch?v=EindeutigeKennung)
Diese Kennung wird dann auf https://autoit.de/www.video2mp3.de eingeben und downgeloadet
Skript ist gerade erst fertig geworden und somit seeeehr fehlanfällig *gg*
Die häufigste Fehlerquelle für falsche Lieder liegt aber darin, dass auf Youtube einfach der erste Treffer genommen wird..
So hier das Skript..
[spoiler]
[autoit]
#include
#include
HotKeySet("!+^d","_GetVideo")
[/autoit][autoit][/autoit][autoit]Global $aSource
[/autoit][autoit][/autoit][autoit]While 1
Sleep(100)
WEnd
Func _GetVideo()
TrayTip("","Vorbereitung...",1)
$oIE = _IECreate("http://www.video2mp3.de",0,0,0,0)
$aSource = StringSplit(_INetGetSource("http://www.technobase.fm/tracklist.php"),@LF,3)
$sName = StringStripWS(StringTrimRight($aSource[192],6),3) & ".mp3"; Folgende Zeile stammt von L3viathan2142 (http://www.autoit.de) (Leicht verändert)
$array=StringRegExp(_INetGetSource("http://www.youtube.com/results?search_query=" & StringReplace($sName," ","+") & "&page=&utm_source=opensearch"),"/watch\?v=([a-zA-Z0-9]+)" & '"',1)
_IENavigate($oIE,"http://www.video2mp3.de/index.php?step=2&url=http://www.youtube.com/watch?v=" & $array[0] & "&feature=youtube_gdata")
$oAusgabe = _IEGetObjById($oIE,"ausgabe")
Do
$perc = _IEPropertyGet($oAusgabe,"innerText")
TrayTip($sName,"Onlinekonvertierung: " & $perc,1)
Until $perc = "100%"
_IELoadWait($oIE)
$oSubmit = _IEGetObjByName($oIE,"submit")
_IEAction($oSubmit,"click")
_IELoadWait($oIE)
$oLinks = _IELinkGetCollection($oIE)
For $oLink in $oLinks
If _IEPropertyGet($oLink,"innerText") = "Hier downloaden" Then _Download($sName,$oLink.href,1)
Next
EndFunc
[/autoit][autoit][/autoit][autoit]func _Download($sFilename, $sUrl, $iFlag)
[/autoit][autoit][/autoit][autoit]If FileExists($sFilename) Then
If FileGetSize($sFilename) = InetGetSize($sUrl) Then Return
EndIf
$hDownload = InetGet($sUrl, $sFilename, 1, 1)
$tTimer1 = TimerInit()
If $iFlag = 0 Then ProgressOn("Herunterladen", $sFilename, Default, Default, Default, 18)
$sKB = Round(InetGetSize($sUrl) / 1000,3)
Do
Sleep(100)
$sSpeed = Round(InetGetInfo($hDownload, 0) / TimerDiff($tTimer1), 2)
$sSize = Round(InetGetInfo($hDownload, 0) / 1000,3)
If $iFlag = 0 Then
ProgressSet($sSize / $sKB * 100, Round($sSize / 1000,3) & " MB / " & Round($sKB / 1000,3) & " MB" & @LF & $sSpeed & " KB/S" & @LF & "Restdauer: " & (Round(($sKB - $sSize) / $sSpeed,1) & " Sek"))
Else
TrayTip($sFilename,Round($sSize / 1000,3) & " MB / " & Round($sKB / 1000,3) & " MB" & @LF & $sSpeed & " KB/S" & @LF & "Restdauer: " & (Round(($sKB - $sSize) / $sSpeed,1) & " Sek"),1000)
Sleep(100)
EndIf
Until InetGetInfo($hDownload, 2) = True
If $iFlag = 0 Then ProgressOff()
[/autoit][autoit][/autoit][autoit]EndFunc
[/autoit][autoit][/autoit][autoit][/autoit][/spoiler ]
Für Verbesserungsvorschläge und Kritik bin ich gerne offen