Forum: PC-Programmierung C# Video Downloader


von Michael (Gast)


Lesenswert?

'n Tag zusammen

Ich versuche gerade einen Video Downloader zu Programmieren, der mir 
videos von einem Streamingportal herunterlädt. Im Prinzip möchte ich nur 
eine URL eingeben und einen Download Button drücken, um den Download zu 
starten. Also habe ich den Qualltext ausgelesen und nach dem attribut 
"file: " gesucht. Dabei ist mir aufgefallen, dass die Webseite einen 
Submit Button verlangt, damit der Stream gestartet wird. Nun möchte ich 
der Webseite vorgaukeln, dass ich diesen Button gedrückt habe und 
stattdessen auf die nachfolgenede Webseite gelangen, dort den Queltext 
auslesen und dann den Link im "file:" Attribut aufrufen. Und ja mir ist 
durchaus bewusst, dass dieser Button genau dieses verhindern soll aber 
einen versuch wärs wert.

Ich habe schon ein wenig recherchiert und habe schon einige befehle bzw. 
Codeaschnitte gefunden, die mir weitergeholfen haben, allerings weiß ich 
nicht wie genau ich das ganze jetzt umsetzen soll.

Zum auslesen des Quelltextes verwende ich einen WebClient, zum suchen 
die string.IndexOf()Funktion. Das mit dem Button hätte ich in etwa hier 
gefunden:
http://stackoverflow.com/questions/6233151/c-sharp-how-to-click-button-auttomaticly-via-webbrowser

Aber wie ich das ganze jetzt in ein Programm integriere ist mir 
schleierhaft.

mfg Michael

von bluppdidupp (Gast)


Lesenswert?

Das einfachste wäre wohl statt der WebClient-Klasse das 
WebBrowser-Control zu nutzen (was auch in dem stackoverflow-Beitrag 
gemacht wird)

von Michael (Gast)


Lesenswert?

gut soweit funktioniert das jetzt.
Jetzt hab ich folgendes Problem:

Ich durchsuche den Text nach der Zeile, in der der Link zu der Datei 
ist, dann schneide ich alles weg, was nicht zur URL gehört(was auch 
soweit funktioniert)ABER dann weiß ich nicht so wirklich wie ich 
weitermachen soll. Aktuell versuche ich es mit einem WebClient um den 
Download zu starten. Und da stehe ich gerade ziemlich auf der Leitung. 
Der Download wird nicht gestartet, stattdessen stürzt das Programm ab. 
Normalerweise muss man den link nur noch öffnen und der Download beginnt 
(Chrome, Firefox usw.) aber wie mache ich das hier? Außerdem sollte das 
File auch noch einen bestimmten namen bekommen. Hat da jemand eine Idee?

mfg Michael

von bluppdidupp (Gast)


Lesenswert?

Michael schrieb:
> Der Download wird nicht gestartet, stattdessen stürzt das Programm ab.

Mit welcher Exception denn? Was steht in der Zeile des Crashes im Code?

von Michael (Gast)


Lesenswert?

Also ich hab noch ein wenig rumgespielt und verwende jetzt den Async 
File Downloader, somit stürzt nichts mehr ab, allerdings funktioniert 
der auch nicht wirklich. Dieser gibt ca. nach einer Sekunde aus, dass 
der Download fertig gestellt ist(was natürlich nicht der Fall ist.)

mfg Michael

von bluppdidupp (Gast)


Lesenswert?

"Async File Downloader" sagt mir nix.
Ich würde erstmal das WebBrowser-Control auf die URL navigieren lassen 
und schauen ob der die überhaupt runterladen/öffnen kann oder ob die 
Seite da evtl. noch irgendwelche JavaScript-Tricks verbaut hat.
Wenn es im Control geht, müssen in deinem "Async File Downloader" 
womöglich noch Referer, UserAgent, Cookies etc. passend gesetzt werden.

von Kaj (Gast)


Lesenswert?


von bluppdidupp (Gast)


Lesenswert?

Achso, es ist nur die WebClient-Komponente gemeint ;D
Wenn der synchrone Aufruf nicht geht, wird es der asynchrone auch nicht 
tun - da wird die Exception dann wohl einfach in e.Error stehen statt 
geworfen zu werden. Da muss man halt einfach mal schauen wie denn die 
Exception lautet.

von Michael (Gast)


Lesenswert?

Das mit der Exception ist ja der Springende Punkt. So eine gibt es ja 
nicht. Es wird mir nur angezeigt, dass der Download fertiggestellt ist.

mfg Michael

von Kaj (Gast)


Lesenswert?

Michael schrieb:
> Es wird mir nur angezeigt, dass der Download fertiggestellt ist.
Wurde denn ueberhaupt irgendetwas runtergeladen, und wenn ja, was?

Gruesse

von Michael (Gast)


Lesenswert?

Nein es wurde gar ur die Meldung, dass der Download fertiggestellt ist

von bluppdidupp (Gast)


Lesenswert?

e.Error in DownloadFileCompleted ist ganz sicher null?
Welche Exception kam/kommt denn bei der synchronen Variante?

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.