written by kwoxer
Hier erfährst du wie du ganz einfach deinen eigenen YouTube Downloader programmieren kannst.Dieser wurde hier in Visual Basic geschrieben, jedoch ist dies natürlich auch in jeder anderen Hochsprache möglich.
Danke an Bady an dieser Stelle, da er mir wirklich sehr bei diesem Projekt geholfen hat.
Zur Information!
Support gibt es ab sofort nur noch auf die im Video gezeigten Features. Features betreffend dem Video Downloader Professional Paket gibt es nun nicht mehr.

Falls ihr Fehler wie...:
"Das Argument Length muss größer als oder gleich 0 (null) sein."
...nutzt bitte den unten stehenden neuen Code.
ALTER CODE! (aus der eigentliche Form)
'#######################################
Dim anfang_stelle_des_video_downloads_1 As Integer
anfang_stelle_des_video_downloads_1 = InStr(start_DL_url, "var embedUrl = 'http://www.youtube.com/v/") + 41
Dim ende_stelle_des_video_downloads_1 As Integer
ende_stelle_des_video_downloads_1 = InStr(anfang_stelle_des_video_downloads_1, start_DL_url, "&hl=de&fs=1';")
Dim Laenge_des_downloads_1 As Integer
Laenge_des_downloads_1 = ende_stelle_des_video_downloads_1 - anfang_stelle_des_video_downloads_1
Name_des_downloads_1 = Mid(start_DL_url, anfang_stelle_des_video_downloads_1, Laenge_des_downloads_1)
'#######################################
Dim anfang_stelle_des_video_downloads_2 As Integer
anfang_stelle_des_video_downloads_2 = InStr(ende_stelle_des_video_downloads_1, start_DL_url, "t=") + 2
Dim ende_stelle_des_video_downloads_2 As Integer
ende_stelle_des_video_downloads_2 = InStr(anfang_stelle_des_video_downloads_2, start_DL_url, "%3D")
Dim Laenge_des_downloads_2 As Integer
Laenge_des_downloads_2 = ende_stelle_des_video_downloads_2 - anfang_stelle_des_video_downloads_2
Name_des_downloads_2 = Mid(start_DL_url, anfang_stelle_des_video_downloads_2, Laenge_des_downloads_2)
end_DL_url = "http://www.youtube.com/get_video?video_id=" & Name_des_downloads_1 & Chr(38) & "t=" & Name_des_downloads_2 & qualy
NEUER CODE (in die eigentliche Form)
Dieser Code ist die neuste Erkennung für YouTube Videos. Ändert diesen also bitte selbstständig im Code. Der Alte Code muss einfach nur durch den neuen ersetzt werden, einfacher gehts nicht.
' Get the Name of the Video
Dim anfang_stelle_des_video_namens As Integer
anfang_stelle_des_video_namens = InStr(start_DL_url, "<meta name=""title"" content=""") + 28
Dim ende_stelle_des_video_namens As Integer
ende_stelle_des_video_namens = InStr(start_DL_url, "<meta name=""description"" content=""") - 6
Dim Laenge_des_namens As Integer
Laenge_des_namens = ende_stelle_des_video_namens - anfang_stelle_des_video_namens
Name_des_videos = Mid(start_DL_url, anfang_stelle_des_video_namens, Laenge_des_namens)
' Get the Name of the Autor
Dim anfang_stelle_des_video_herstellers As Integer = InStr(start_DL_url, "'VIDEO_USERNAME': '") + 19
Dim ende_stelle_des_video_herstellers As Integer = InStr(anfang_stelle_des_video_herstellers, start_DL_url, "'")
Dim Laenge_des_herstellers As Integer = ende_stelle_des_video_herstellers - anfang_stelle_des_video_herstellers
Name_des_herstellers = Mid(start_DL_url, anfang_stelle_des_video_herstellers, Laenge_des_herstellers)
' Get the first String of the Download-String
Dim anfang_stelle_des_video_downloads_1 As Integer = InStr(start_DL_url, "<!-- end contenttop section -->") + 30
Dim anfang_stelle_des_video_downloads_2 As Integer = InStr(anfang_stelle_des_video_downloads_1, start_DL_url, "url_map") +
13
Dim ende_stelle_des_video_downloads_1 As Integer = InStr(anfang_stelle_des_video_downloads_2 + 5, start_DL_url, "%2C")
Dim Laenge_des_downloads_1 As Integer = ende_stelle_des_video_downloads_1 - anfang_stelle_des_video_downloads_2
Dim Name_des_downloads_1 As String
Name_des_downloads_1 = Mid(start_DL_url, anfang_stelle_des_video_downloads_2, Laenge_des_downloads_1)
end_DL_url = Name_des_downloads_1.Replace("%3F", "?").Replace("%3D", "=").Replace("%26", "&").Replace("%25",
"%").Replace("%2C", ",").Replace("%25", "%").Replace("%3A", ":").Replace("%2F", "/")
Schreibt mir was ihr von diesem Tutorial haltet.
Tolles Tutorial! Echt super. Nur leider kapier ich es nicht ganz wenn ich NUR die FLV Datei herrausfinden möchte.. Kannst du mir vllt. helfen? Ich hab den Code schon ausgeschlachtet aber leider zeigt
er mir sowas an:
http://www.youtube.com/get_video?video_id=S14ggM0Ihfw&t=\"return false;\" method=\"post\" action=\"/comment_servlet?add_comment=1&comment_type=V\"><input type=\"hidden\"
name=\"video_id\" value=\"S14ggM0Ihfw\"><input type=\"hidden\" name=\"form_id\" value=\"comment_form${form_id}\"><input type=\"hidden\" name=\"reply_parent_id\"
value=\"${reply_parent_id}\"><textarea name=\"comment\" class=\"comments-textarea\" cols=\"46\" rows=\"5\" maxchars=\"500\" onkeyup=\"updateCharCount(\'charCount${form_id}\',
\'maxCharLabel${form_id}\', this); top.goog.i18n.bidi.setDirAttribute(event,this)\" onpaste=\"updateCharCount(\'charCount${form_id}\', \'maxCharLabel${form_id}\', this);\"
oninput=\"updateCharCount(\'charCount${form_id}\', \'maxCharLabel${form_id}\', this);\"></textarea><br><div class=\"watch-comment-reply-form-actions\"><input type=\"button\"
name=\"add_comment_button\" value=\"Kommentar posten\" onclick=\"postThreadedComment(\'comment_form${form_id}\');\"><input type=\"button\" name=\"discard_comment_button\" value=\"Löschen\"
${discard_visible} onclick=\"hideCommentReplyForm(\'${form_id}\', false);\"><span id=\"maxCharLabel${form_id}\">Verbleibende Zeichen:</span><input readonly=\"true\"
class=\"watch-comment-char-count inner-box-colors\" type=\"text\" id=\"charCount${form_id}\" value=\"500\"></div></form><br class=\"clear\">');
function watchToggleCommentPanel(expander) {
if (hasClass(expander, 'yt-uix-expander-collapsed')) {
watchCommentsPanelStateChange();
} else {
watchExpandComments('recent_comments', '/watch_ajax?v=S14ggM0Ihfw&action_get_comments=1&p=1&commentthreshold=-5&commentfilter=0&page_size=10&last_comment_id=', 0);
}
};
onLoadFunctionList.push(function() { if (_gel('watch-customize-embed-div')) { generateEmbed(); } });
onLoadFunctionList.push(function() { enableVideoQualityDisplay() });
onLoadFunctionList.push(handleHashArgumentsOnWatchLoad);
var shouldShowAutosharePromo = false;
function triggerAutosharePromo(feature) {
if (shouldShowAutosharePromo) {
showDiv('autoshare-promo-' + feature);
shouldShowAutosharePromo = false;
}
}
function dismissAutosharePromo(feature) {
yt.UserPrefs.setFlag(yt.UserPrefs.Flags.FLAG_HIDE_WATCH_AUTOSHARE_PROMOTION, true);
yt.UserPrefs.save();
shouldShowAutosharePromo = false;
hideDiv('autoshare-promo-' + feature);
}
</script>
<style type="text/css">
#flash10-promo-div {
display: none;
background-color: #ffffcc;
font-size: 12px;
padding: 5px;
text-align: left;
border:1px solid #FFCC33;
border-top: 0px;
}
</style>
<link rel="alternate" type="application/json+oembed" href="http://www.youtube.com/oembed?url=http%3A//www.youtube.com/watch?v%3D&fmt=35
Hallo Jay
wäre vllt eine bessere Frage für das SemperVideo Forum.
Hey kwoxer,
kann es sein, dass dein downloader nicht mit VB 2008 Express geht?
Ich bin mit der Programmierung am Ende des 2. Viedeos und wenn ich versuche den ">" Button zu testen kommen die Fehler:" Der Name "TextBox_pfad" ist nicht deklariet" und ""Pfad" ist kein Member
von "Windows.Forms.TextBox"."
Liegts an mir oder daran, dass es die Express-Version von VB ist???
Hallo.
Nein ich selber arbeite nur mit der Express Edition. Daher muss der Fehler bei dir liegen.
Nutze bitte den Open Source Quellcode.
In Kürze werde ich auch den Source vom Video Downloader Professional veröffentlichen, vllt einfach so lange warten oder ein wenig rumtesten.
Liebe Grüße
Es sind bei mir Fehler beim code aufgetreten
If Download_einzeln.download_1_fertig = True Then
aktuelle_dl_nummer_einzeln = ListView.CheckedIndices.Item(i)
Download_einzeln.download_berechnen()
ElseIf Download_einzeln.download_2_fertig = True Then
aktuelle_dl_nummer_einzeln = ListView.CheckedIndices.Item(i)
Download_einzeln.download_berechnen()
ElseIf Download_einzeln.download_3_fertig = True Then
aktuelle_dl_nummer_einzeln = ListView.CheckedIndices.Item(i)
Download_einzeln.download_berechnen()
Else
Bin in Wer-kennt-wen als Marcel Klee drin.
hello great tutorial
i need a little help
can you tell me the name of the battons in english please ?
thanks
www.dict-leo.org
use this to translate into English
Greetz
vielen dank für dieses tut es hat mir einige neue sachen gezeigt und es ist gut und leicht verständlich gemacht
greez hescher
klasse erklärt aber ich kann die links nicht adden
habs auch mit dem quelltext probiert klappt aber immer noch nich (sind auch nur youtube videos)
kann es sein das ich den falschen link nehme?
wenn ja welchen muss ich nehmen?
danke schonmal...
Mhh, hallo erstmal.
Vllt erst einmal den Source Code vom Video Downloader Professional anschauen, weil mit dem klappts zum 100%. Der wird nämlich im Gegensatz zum Youtube Downloader aktualisiert.
Grüße
hi, hab da ein problem wenn ich eine video mit "add" hinzufügen will, zeigt er mir das hier als fehler an :
Name_des_downloads_1 = Mid(start_DL_url, anfang_stelle_des_video_downloads_1, Laenge_des_downloads_1)
der kommentar dazu ist : Das Argument Length muss größer als oder gleich (null) sein
was mache ich falsch?
mfg chrissi
ps: bis auf diesen fehler komme ich gut zurecht und das tutorial ist echt gut! weiter so :)
Problem ist bekantt.
Bitte im Youtube kanal den neuen Code herauslesen.
http://www.youtube.com/user/kwoxer1
Grüße
huhu kann es sein das sich die links Geändert haben ich bekommt immer nur ne Meldung das das keine Gültige Youtube url wär
Muss ehrlich sagen dsa Tutori ist spitze!
Nur hab ich mir das mal angeschaut und jedesmal wen ich youtube link adden will kommt Dies ist kein richtiger Youtube link oder so.
Hab zwar versucht den Quelltext zu suchen und dan die einträge zu ändern - fail.
Quelltext steht hier ganz oben.
Und bei mir klappen die Videos wie immer.
Liebe Grüße
Hey
Das is echt ein tolles tutorial.
Aber ich habe ein kleines problem:
Wenn ich den playlist button benutze, dann sagt er mir, er habe keine playlist gefunden.
Code:
Private Sub Button_playlist_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button_playlist.Click
If RadioButton_Low.Checked = True Then
qualy = ""
ElseIf RadioButton_Middle.Checked = True Then
qualy = "%3D&fmt=18"
ElseIf RadioButton_High.Checked = True Then
qualy = "%3D&fmt=22"
ElseIf RadioButton_Highest.Checked = True Then
qualy = "%3D&fmt=35"
End If
On Error GoTo err
If TextBox_pfad.Text <> "" Then
Dim httpURL As New System.Uri(ComboBox_link.Text)
Dim request As HttpWebRequest = HttpWebRequest.Create(httpURL)
request.Method = WebRequestMethods.Http.Get
Dim response As HttpWebResponse = request.GetResponse
Dim reader As New StreamReader(response.GetResponseStream)
start_dl_url_playlist = reader.ReadToEnd
response.Close()
Dim anfang_playlist_count As Integer
anfang_playlist_count = InStr(start_dl_url_playlist, "<span>Videos: ") + 14
Dim ende_playlist_count As Integer
ende_playlist_count = InStr(anfang_playlist_count, start_dl_url_playlist, "</span>")
Dim laenge_playlist_count1 As Integer
laenge_playlist_count1 = ende_playlist_count - anfang_playlist_count
Dim laenge_playlist_count2 As Integer
laenge_playlist_count2 = Mid(start_dl_url_playlist, anfang_playlist_count, laenge_playlist_count1)
Dim i As Integer
Dim playlist_ohne_youtube As String
Dim playlist_mit_youtube As String
Dim anfang_stelle_der_playlist_videos As Integer
Dim anfang_stelle_der_playlist_video As Integer
Dim ende_stelle_der_playlist_video As Integer
Dim laenge_der_playlist_video As Integer
anfang_stelle_der_playlist_videos = InStr(anfang_playlist_count, start_dl_url_playlist, "<div class=""video-short-title"">") + 31
anfang_stelle_der_playlist_video = InStr(anfang_stelle_der_playlist_videos, start_dl_url_playlist, "href=""") + 6
ende_stelle_der_playlist_video = InStr(anfang_stelle_der_playlist_videos, start_dl_url_playlist, """ title=")
laenge_der_playlist_video = ende_stelle_der_playlist_video - anfang_stelle_der_playlist_video
playlist_ohne_youtube = Mid(start_dl_url_playlist, anfang_stelle_der_playlist_video, laenge_der_playlist_video)
playlist_mit_youtube = "http://www.youtube.com" & playlist_ohne_youtube
For i = 0 To laenge_playlist_count2 - 1
httpURL = New System.Uri(playlist_mit_youtube)
request = HttpWebRequest.Create(httpURL)
request.Method = WebRequestMethods.Http.Get
response = request.GetResponse
reader = New StreamReader(response.GetResponseStream)
start_dl_url_playlist = reader.ReadToEnd
response.Close()
ERMITTELN_ROUTINE_PLAYLIST()
item = ListView.Items.Add(name_des_videos)
Dim items_number As Integer = ListView.Items.Count
item.SubItems.Add(items_number)
item.SubItems.Add(name_des_herstellers)
item.SubItems.Add("Bereit")
item.SubItems.Add(sizes & " MB")
item.SubItems.Add(end_dl_Url)
anfang_playlist_count = ende_stelle_der_playlist_video
Refresh()
Next
Else
MsgBox(""" ist kein gültiger Speicherort. Bitte wählen Sie einen anderen Speicherort aus.")
End If
Exit Sub
err:
MsgBox("Kein gültiges Video gefunden. Bitte wählen Sie nur Youtube Videos aus.")
End Sub
****************************************
Wär nett,wenn du mir helfen könntest.
Danke!
Cooles tut musste aber einiges am Text endern, damit der Downloader funktioniert sonst alles super
Weiter so !
Ich könnte heulen, genau dieses Problem ist bei mir aufgetreten, "Das Argument Length muss größer als oder gleich 0 (null) sein."
Ich werde verrückt, ich weiß nicht wo ich den neuen Code einfügen muss bzw. bearbeiten. Könntest Du villt. nicht noch ein Quelltext erstellen mit dem neuen Code, aber den man auch natürlich direkt
herunterladen kann.
Wäre wirklich Dankbar!!!
MfG,
Gianluck
Aus Insiderkreiser heißt es, dass Youtube wieder die Downloader Routine in den Feiertagen ändert wird. Warten wir lieber so lange ich schieb dann das Update dann nach und update den Quelltext, falls
das Problem dann immer noch besteht.
Ansonsten ienfach in der Downlaod Routine den alten Code ersetzen. Sollte eig. net so schwer sein.
Also habe diesen Code eingefügt:
Dim anfang_stelle_des_video_downloads_1_1 As Integer
anfang_stelle_des_video_downloads_1_1 = InStr(start_DL_url, "fmt_url_map"":") + 14
Dim anfang_stelle_des_video_downloads_1_2 As Integer
anfang_stelle_des_video_downloads_1_2 = InStr(anfang_stelle_des_video_downloads_1_1, start_DL_url, "http")
Dim ende_stelle_des_video_downloads_1 As Integer
ende_stelle_des_video_downloads_1 = InStr(anfang_stelle_des_video_downloads_1_2 + 5, start_DL_url, "http")
Dim Laenge_des_downloads_1 As Integer
Laenge_des_downloads_1 = ende_stelle_des_video_downloads_1 - anfang_stelle_des_video_downloads_1_2
Dim Name_des_downloads_1 As String
Name_des_downloads_1 = Mid(start_DL_url, anfang_stelle_des_video_downloads_1_2, Laenge_des_downloads_1)
Bis dahin hat eitgl. fast alles geklappt nur es gibt ein Problem, unzwar ich möchte ein bestimmtes Video herunterladen, er lädt es, aber dieses Video kann man nicht abspielen .. die Datei hat den
Namen des Videos, aber die Datei hat immer 0 MB. Habe andere Videos versucht herunterzuladen, aber genau das gleiche Problem erscheint wieder und wieder
hi,
muss ich das code update auch für den namen des video downloads 2 einsetzen?
Nein dieser ist damit überflüssig. Die Bezeichnung 1_1 und 1_2 habe ich lediglich so gelassen um die Zuschauer nicht zu verwirren, die gerne das Code Update durchführen möchten.
Grüße
Hallo kwoxer,
Wenn ich einen link in meine combobox einfüge,
und auf 'Add' klicke, dann wird der link
zwar übernommen, jedoch steht bei 'Größe' 0 MB da.
Wenn ich trotzdem versuche,
das Video herunterzuladen, erstellt es eine 0 MB
große Datei in meinem Speicherort.
Hast du eine Idee, wo der Fehler liegen könnte?
Das Problem wurde hier schon einige Mal behandelt.
Siehe oben.
Grüße
Wo füge ich das denn alles ein?
Bin fast fertig, fehlt nur noch das
Dim anfang_stelle_des_video_downloads_1_1 As Integer anfang_stelle_des_video_downloads_1_1 = InStr(start_DL_url, "fmt_url_map"":") + 14
Dim anfang_stelle_des_video_downloads_1_2 As Integer anfang_stelle_des_video_downloads_1_2 = InStr(anfang_stelle_des_video_downloads_1_1, start_DL_url, "http")
Dim ende_stelle_des_video_downloads_1 As Integer ende_stelle_des_video_downloads_1 = InStr(anfang_stelle_des_video_downloads_1_2 + 5, start_DL_url, "http")
Dim Laenge_des_downloads_1 As Integer Laenge_des_downloads_1 = ende_stelle_des_video_downloads_1 - anfang_stelle_des_video_downloads_1_2
Dim Name_des_downloads_1 As String Name_des_downloads_1 = Mid(start_DL_url, anfang_stelle_des_video_downlo
ads_1_2, Laenge_des_downloads_1) end_DL_url = Name_des_downloads_1.Replace("%3F", "?").Replace("%3D", "=").Replace("%26", "&").Replace("%25", "%").Replace("%2C", ",").Replace("%25",
"%").Replace("%3A", ":").Replace("%2F", "/") end_DL_url = Mid(end_DL_url, 1, end_DL_url.LastIndexOf(","))
Na dort wo der Code auch schon stand.
Praktisch einfach ersetzen..
egal welche code's ich nehme der error:Das Argument Length muss größer als oder gleich 0 (null) sein.
kannst du mir helfen?
du hilfst mir in dem du den code(von name_des_downloads_1 bis name_des_downloads_2)schreibst(hier auf deiner homepage)
Steht alles oben beschrieben.
hey kwoxer deine Turorials sind echt super leider habe ich ein Problem in dem 6 Tutorial Part 2 von 2. Wen ich bei der Playlist debuggen will wie du es in Minute 6:19 machst kommt bei mir ein ein
error nachdem ich auf Playlist bin und es wird mir die Zeile
Dim Laenge_playlist_count2 As Integer
Laenge_playlist_count2 = Mid(start_DL_url_playlist, anfang_playlist_count, Laenge_playlist_count1)
Als falsch angezeigft was soll ich da machen?
cool
Die Playlist wird nicht weiter supportet, da diese eine andere Logik verfolgt nach dem Youtube Update.
Daher bitte Playlist außen vor lassen.
ok naja en bissi schade das das jetzt net funzt wo ich die doch schon fast fertig hatte aba naja kann man nix macheen danke für die schnelle hilfe
Doch doch es geht schon. Bloß nach einem anderen System. Hab jetzt aber nicht die Zeit das näher zu ergründen, da eh kaum einer die Playlit nutzt.
Außerdem vllt als Info ist die Playlist neuerdings im Kanal eingebettet. Daher sehr schwer auszulesen.
Grüße
Also ich sage einfach mal DANKE für diese SUPERGEILE ERklärung und Schritt für Schritt incl der Daten als TXT Datei !! Ich finde das super ! ich schreibe das Ding gerade nach ^^ ich weiss zwar nich,
ob es funzt, aber allein um wieder was zu lernen ist das schon geil !
*DANKE*
Hallo Kwoxer,
funzt super, nur einige videos werden nicht runtergeladen, dann ist der DL immer direkt fertig mit 0 kb, die Anzeige der autors und DL Link funktionieren auch nicht. aber die "gängigen" Videos lassen
sich runterladen.. mal sehen, wo alles fertig ist, aknn man ja etwas experimentieren ^^
Könnte ich deine Programm im VB downloaden?
Super tut!
Allerdings treten bei mir noch 8 Fehler auf die auch mit einem Besuch in deinem Forum nicht gelöst werden konnten...
6x Fehler: Der Verweis auf einen nicht freigegebenen Member erfordert einen Objektverweis.
2x Fehler: Fehler Die Handles-Klausel erfordert eine WithEvents-Variable, die im enthaltenden Typ oder einem seiner Basistypen definiert wird.
Ich werde darauß nicht schlau, ich weiß das dein Code richtig ist und hoffe auf eine schnelle Antwort...
Hallo,
zu euren Anfragen:
Programm im VB downloaden? Wenn du meinst, meine Programme als Source-Code downzuloaden.
Der YouTube Downloader wird demnächst als Source Code hochgeladen. Ich weiß aber nicht in welchem Umfang und wie, da einfach mal abwarten.
Zu deinen Fehlern kann ich ohne deine Quellcode nicht viel sagen.
Objektverweise und deren Fehler wirst du aber im Zusammenhang mit dem Backgroudnworker gemacht haben.
Ansonsten steht dir das SemperVideo Forum für Fragen auch zur Verfügung.
Grüße
Der Name "start_dl_url" wurde nicht deklariert.
ich habe da nur fehler was soll ich bloß tun:D
hey kwoxer, erstmal danke für das tutorial ist echt top.
allerdings will das mit der playlist nicht so :ph34r:
btw spielst du diablo2? :DD
Danke und nein sowas spiele ich nicht.
Grüße
youtube hat ja schon wiedermal was verändert, somit funktioniert ja der code zu findung der video url nicht mehr.
habt das bei mir mal so geändert. geht vielleicht besser, aber befass mich erst seit 3 tagen mit vb, hauptsache es funktioniert erstmal ;)
'##### Namen herausfinden #######
Dim anfang_stelle_des_video_namens As Integer
anfang_stelle_des_video_namens = inStr(start_DL_url, "<meta name=""title"" content=""") + 28
Dim ende_stelle_des_video_namens As Integer
ende_stelle_des_video_namens = InStr(anfang_stelle_des_video_namens, start_DL_url, """>")
Dim laenge_des_namens As Integer
laenge_des_namens = ende_stelle_des_video_namens - anfang_stelle_des_video_namens
name_des_videos = Mid(start_DL_url, anfang_stelle_des_video_namens, laenge_des_namens)
'## entferne hier noch sonderzeichen : und /, da '## sonst videos nicht abgespeichert werden kann
name_des_videos = Replace(name_des_videos, ":", "_")
name_des_videos = Replace(name_des_videos, "/", "_")
' ########## usernamen
Dim anfang_stelle_des_video_herstellers As Integer
anfang_stelle_des_video_herstellers = InStr(start_DL_url, "'VIDEO_USERNAME': '") + 19
Dim ende_stelle_des_video_herstellers As Integer
ende_stelle_des_video_herstellers = InStr(anfang_stelle_des_video_herstellers, start_DL_url, "',")
Dim laenge_des_herstellers As Integer
laenge_des_herstellers = ende_stelle_des_video_herstellers - anfang_stelle_des_video_herstellers
name_des_herstellers = Mid(start_DL_url, anfang_stelle_des_video_herstellers, laenge_des_herstellers)
'######## url
Dim anfang_stelle_des_video_downloads_1 As Integer
anfang_stelle_des_video_downloads_1 = InStr(start_DL_url, "'VIDEO_ID': '") + 13
Name_des_downloads_1 = Mid(start_DL_url, anfang_stelle_des_video_downloads_1, 11)
Dim anfang_stelle_des_video_downloads_2 As Integer
anfang_stelle_des_video_downloads_2 = InStr(start_DL_url, "&t=") + 3
Dim ende_stelle_des_video_downloads_2 As Integer
ende_stelle_des_video_downloads_2 = InStr(anfang_stelle_des_video_downloads_2, start_DL_url, "%3D")
Dim laenge_des_downloads_2 As Integer
laenge_des_downloads_2 = ende_stelle_des_video_downloads_2 - anfang_stelle_des_video_downloads_2
Name_des_downloads_2 = Mid(start_DL_url, anfang_stelle_des_video_downloads_2, laenge_des_downloads_2)
end_DL_url = "http://www.youtube.com/get_video?video_id=" & Name_des_downloads_1 & "&" & "t=" & Name_des_downloads_2 & qualy
Danke für die Info, aber eigentlich funktioniert die "alte" Prozedur nach wie vor.
Verstehe also nicht wieso sie bei dir versagt hat.
Grüße
hmm, muss ich noch mal probieren.
herstellername aus deinem orginal code geht aber auch nimmer. "var watchUsername = '" wird in keinem youtube quelltext mehr verwendet.
Hey Ich hab mir die Datei"Die eigentliche Form" runtergeladen, hab alles an meisn angepasst, aber es kommen Fehlen. Nählmich:
"Der Name "download_einzeln" wurde nicht deklariert."
"Der Name "download_alles" wurde nicht deklariert."
UNd somit geht jetzt gar nichts. woran liegt das, heißt vllt. ein Objekt so oder muss man noch einen Code haben?
MfG. Mr. Anonym
Hallo ich finde deine Tutorials extrem gut.
allerdings habe ich bestimmt etwas übersehen denn immer wenn ich was downloaden will und die url einfüge dann sagt der mir kein gültiges video bitte nur videos von youtube nehmen!ich weiß auch schon
in welchem abteil der fehler ist unzwar hier! Private Sub datei_ermitteln_einzeln()
If RadioButton_low.Checked = True Then
ElseIf RadioButton_middle.Checked = True Then
qualy = "%3D&fmt=18"
ElseIf RadioButton_high.Checked = True Then
qualy = "%3D&fmt=22"
ElseIf RadioButton_highest.Checked = True Then
qualy = "%3D&fmt=35"
End If
On Error GoTo err
If TextBox_Pfad.Text <> "" Then
Dim httpURL As New System.Uri(ComboBox_Link.Text)
Dim request As HttpWebRequest = HttpWebRequest.Create(httpURL)
request.Method = WebRequestMethods.Http.Get
Dim response As HttpWebResponse = request.GetResponse
Dim reader As New StreamReader(response.GetResponseStream)
start_DL_url = reader.ReadToEnd
response.Close()
ERMITTELN_ROUTINE_EINZELN()
item = ListView.Items.Add(Name_des_videos)
Dim Items_number As Integer = ListView.Items.Count
item.SubItems.Add(Items_number)
item.SubItems.Add(name_des_herstellers)
item.SubItems.Add("Bereit")
item.SubItems.Add(sizes & " MB")
item.SubItems.Add(end_DL_url)
Else
MsgBox(""" ist kein gültiger Speicherort. Bitte wählen sie einen anderen Speicherort aus")
End If
Exit Sub
err: MsgBox("Leider kein gültiges Video gefunden. Bitte wählen sie nur YouTube Videos aus!")
End Sub
Währe echt nett von dir wenn du mir die lösung nennen könntest =) ? ! Danke schonmal!
MFG BreaKerr95
Sry, iwie wurde mein Beitrag hier wohl nicht zu der Zeit durchgeschaltet.
Aber Dir ist doch klar, dass der Code etwas veraltet ist mittlerweile. Dieses fmt kannst du dir eigentlich sparen. Das wirkt nicht mehr so in diesem Umfang.
Ansonsten schau doch einmal in den Video Downloader Professional Source Code. Ist ja alles quelloffen. Wirst also mit Sicherheit fündig werden.
Grüße
Hi kwoxer
echt super Tutorial.
Aber wenn ich eine playlist nehme und sie einfüge und auf playlist drücke kommt nur die meldung "Leider kein gültiger Youtube-Playlist Link!"
was ist zu tun?
wurde durch das Update von YouTube auch gleich dies Mitgeändert und nicht nur der wie beim ADD-Button schon von dir das Update gegeben wurde..
Bin sehr froh um Hilfe ;)
Hallo,
In der Tat das mit der Playlist ist schon lange abgeändert worden und nun sehr schwer umzusetzen.
Daher hab ich das auch z.B. beim VDP entfernt. Aber besten das also rauslassen.
Grüße
Ich finde deine Ideen echt gut und wirklich toll umgesetzt! Aber beim YouTube downloader kommt bei mir immer der Fehler "ERMITTELN_ROUTINE_EINZELN" nicht deklariert. Bitte helfen...
Hi, das Tutorial was voll cool hab auch vieles verstanden =), obwohl ich erst sein ein paar Tagen mit dem Programm arbeite...
Bei mir ist immer ein Fehler:
Contextmenu1.MenuItems.Add("&Infos", New System.EventHandler(AddressOf infos))
Fehler: System.NullReferenceException
Ich habe aber doch new geschrieben?
Danke im vorraus!
Grüße ""
Hallo,
sehe jetzt auch grad nicht deinen Fehler. Aber Source Code befindet sich hier online, also einfach mal anschauen und überprüfen mit deinem.
Grüße
