Clipfish Video URL Encoden

  • VB.NET

Es gibt 17 Antworten in diesem Thema. Der letzte Beitrag () ist von Eddy.

    Clipfish Video URL Encoden

    Hallo,

    ich möchte mir ein kleines Programm schreiben, welches die URL eines Clipfish Videos encodet und dann das Video herunterlädt. Das herunterladen ist für mich ja auch kein Problem, jedoch finde ich nirgends eine Möglichkeit, die URL von clipfish in die Video Quellen URL umzuwandeln, sodass ich das Video herunterladen / an andere Programme weitergeben kann. Ich habe zwar hier Beispiele für YouTube gefunden, aber nichts zu Clipfish. Würde mich über Hilfe sehr freuen. Falls der Thread falsch ist, tut es mir sehr leid, aber ich bin neu im Forum.

    Mfg DS3110 / Daniel

    *Topic verschoben*

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Marcus Gräfe“ ()

    @DS3110 Willkommen im Forum. :thumbup:
    Wie sieht denn das aus, was Du encoden willst?
    Genügt da vielleicht schon dies:

    VB.NET-Quellcode

    1. Dim url = New Uri(DEIN_STRING)
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    @DS3110 Und was willst Du nun "encoden"?

    VB.NET-Quellcode

    1. Dim url = New Uri("http://www.clipfish.de/special/spielfilme/video/4369624/you-kill-me/")
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    RodFromGermany schrieb:

    Und was willst Du nun "encoden"?

    DS3110 schrieb:

    die URL von clipfish in die Video Quellen URL umzuwandeln


    @DS3110: Was du machen musst, ist dir entweder mit einem WebClient das HTML zu laden oder mit dem WebBrowser Control auf die URL navigieren und den Eintrag herausfinden, in dem das Video eingebettet ist und dir dann die entsprechende URI extrahieren. Ich muss dazu sagen: Ich habe keine Ahnung, wie das HTML von ClipFish aufgebaut ist. Das, was ich dir grade beschrieben habe, bezieht sich darauf, dass ein Video per <video /> Tag eingebunden ist.
    Es kann dir auch passieren, dass du nur einen <div> Tag hast, dem eine ID zugewiesen wird. Über diese ID holt sich ein JavaScript das Element ab und packt zur Laufzeit einen Videoplayer rein. Dann darfst du dich aber auf die Suche begeben, WELCHES Js das machen und WIE es das macht und vor allem WOHER das Video dann kommt.
    Da es ClipFish schon seit 2006 gibt es von RTL ist, gehe ich mal stark davon aus, dass die alles dagegen machen, dass du das nicht so einfach machen kannst (also das Video laden und fertig). Die wollen ja auch ihr Geld (mit Werbung) verdienen und das können sie nicht, wenn es so einfach ist/wäre, sich einen "Downloader" zu basteln, dem man nur die URL gibt und das Programm sich dann aus dem HTML mit wenig Aufwand (damit mein ich den Aufwand, der betrieben werden muss um hinter das System zu kommen) die URI des Videos zieht.

    Lg Radinator
    In general (across programming languages), a pointer is a number that represents a physical location in memory. A nullpointer is (almost always) one that points to 0, and is widely recognized as "not pointing to anything". Since systems have different amounts of supported memory, it doesn't always take the same number of bytes to hold that number, so we call a "native size integer" one that can hold a pointer on any particular system. - Sam Harwell
    Zum ersten : Ja, es stimmt, die Video URL steht nicht direkt da drin, die habe ich schon gesucht. Ich komme nämlich ab die URL mit einem anderen Video downloader dran, obwohl der eigentlich nicht bei clipfish gehen sollte. Der Link funktioniert dann bspw. Auch im vlc und der download ist kein Problem. Hat vielleicht schon jemand mal einen downloader für clipfish geschrieben? Und kann helfen...

    sorry für die Rechtschreibfehler, ich bin am Handy...


    MfG Daniel
    Warum denn eigentlich so nen "exotisches" Videoportal? Bei YouTube gibts alle möglichen APIs und Dokumentationen für Schnittstellen. Evtl. wäre das ja einfacher?
    "Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. Lehre einen Mann zu fischen und du ernährst ihn für sein Leben."

    Wie debugge ich richtig? => Debuggen, Fehler finden und beseitigen
    Wie man VisualStudio nutzt? => VisualStudio richtig nutzen

    Bagplatt schrieb:

    Huhu,

    Ich kann mir nicht mal dass Video anschauen, bzw. wird bei mir nur ein Bild angezeigt.

    Muss mann dort angemeldet sein?

    Du hast wahrscheinlich deinen Flash Player nicht aktiviert oder nutzt einen AddBlocker...


    mrMo schrieb:

    Warum denn eigentlich so nen "exotisches" Videoportal? Bei YouTube gibts alle möglichen APIs und Dokumentationen für Schnittstellen. Evtl. wäre das ja einfacher?

    Klar, YouTube ist einfacher... Da gibt es auch im Forum mehrere Tutorials. Nur ich will halt unter anderem ClipFish Videos mir im VLC Media Player ansehen / herunterladen, da ich diesen Player sehr bevorzuge... Und Clipfish weil es dort Videos gibt, die es bspw. nicht auf YT gibt...

    @L88 Ich bin vor einer Weile auf deinen Thread "Video Downloader" gestoßen. Da hast du geschrieben, dass dein Downloader auf ClipFish geht. Kannst du mir vielleicht helfen, indem du den Vorgang beschreibst oder einen Quellcode Ausschnitt postest... Oder ist der Code privat?

    Radinator schrieb:

    dass die alles dagegen machen, dass du das nicht so einfach machen kannst


    DS3110 schrieb:

    Ja, es stimmt, die Video URL steht nicht direkt da drin, die habe ich schon gesucht


    So kann man sich irren. Scripte sind bei mir deaktiviert, also ist der Source unveraendert, schaut den Scrennshot.
    Bilder
    • Unbenannt.png

      45,59 kB, 1.079×404, 205 mal angesehen
    And i think to myself... what a wonderfuL World!
    Und jetzt zur nächsten Frage: Der SourceCode (wird nicht in der MSGBox angezeigt) wird nicht geladen und im Web Browser treten (in VB) Skript Fehler auf... Was soll ich da machen? Nachdem ich dann die Skriptfehler weggeklickt habe, kannn ich mein Programm nicht mehr steuern...

    VB.NET-Quellcode

    1. Private Sub EncodeBtn_Click(sender As Object, e As EventArgs) Handles EncodeBtn.Click
    2. Browser.Navigate(InputTb.Text)
    3. SourceCode = Browser.DocumentText
    4. MsgBox(SourceCode)
    5. End Sub


    EDIT: Und was ich gerade herausgefunden habe: Der SourceCode wird so verändert, dass wenn Skripte aktiv sind, die Video Quelle kurz darauf gelöscht wird. NoScript war an: Ich komme auf @Eddy s Ergebnis. NoScript aus: Der Abschnitt "#nativeplayer" wird nicht mehr gefunden -> Ich muss also in VB Skripte deaktivieren.

    Eddy schrieb:

    Du kannst die Webseite auch mit WebClient.DownloadStringAsync herunterladen, dann wurde auch nichts durch Scripte veraendert.

    Ist Webclient der Imports System.Net ?
    Ich kenne mich bei den Internet Anwendungen in Basic fast gar nicht aus

    VB.NET-Quellcode

    1. url = InputTb.Text
    2. SourceCode = WebClient.DownloadStringAsync(New Uri(url))

    Der "WebClient.DownloadStringAsync" hat einen Fehler ("Der Verweis auf einen nicht freigegebenen Member erfordert einen Objektverweis.")

    VB.NET-Quellcode

    1. SourceCode = WebClient.DownloadStringAsync(url)

    Die url Variable hat einen Fehler -> "Der Wert vom Typ String kann nicht in uri konvertiert werden."

    Obenn steht im Code: Dim url As String

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „DS3110“ ()

    DS3110 schrieb:

    Ist Webclient der Imports System.Net ?


    Ja der WebClient ist im NameSpace System.Net.

    VB.NET-Quellcode

    1. Imports System.Net
    2. Imports System.Text.RegularExpressions
    3. Public Class Form1
    4. Private WithEvents W As New WebClient
    5. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Shown
    6. W.DownloadStringAsync(New Uri("http://www.clipfish.de/special/spielfilme/video/4369624/you-kill-me/"))
    7. End Sub
    8. Private Sub W_DownloadStringCompleted(ByVal sender As Object, ByVal e As System.Net.DownloadStringCompletedEventArgs) Handles W.DownloadStringCompleted
    9. If e.Error Is Nothing Then
    10. Dim r As New Regex("(?<=<video id=""nativeplayer"" src="")(.*?)(?="")")
    11. Dim m As Match = r.Match(e.Result)
    12. If m.Success Then
    13. MessageBox.Show(m.Value)
    14. Else
    15. MessageBox.Show("Ups, das war wohl nix!")
    16. End If
    17. Else
    18. MessageBox.Show(e.Error.ToString())
    19. End If
    20. End Sub
    21. End Class
    And i think to myself... what a wonderfuL World!
    Dann ist dort halt irgendetwas Nothing was dort nicht Nothing sein sollte. Schau mal nach was Nothing ist und sorge dafuer das es das nicht mehr ist.Da du deien Code nicht gepostest hast, kann dir keiner helfen.


    Edit///

    Eddy schrieb:

    So kann man sich irren.


    Wie wahr....

    Nachdem ich mir das gerade genauer ansah, stellte ich fest das die Url im unveraenderten Source immer gleich ist. Also entweder einen JS interpreter nutzen oder wie du schon machst das WebbrowserControl. Oder ganz hardcore da durch wuehlen.

    VB.NET-Quellcode

    1. Imports System.Text.RegularExpressions
    2. Public Class Form1
    3. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Shown
    4. WebBrowser1.Navigate("http://www.clipfish.de/special/yu-gi-oh-staffel-1/video/4272434/s01-e01-yu-gi-oh/")
    5. End Sub
    6. Private Sub WebBrowser1_Navigated(sender As Object, e As WebBrowserNavigatedEventArgs) Handles WebBrowser1.Navigated
    7. Dim r As New Regex("(?<=videourlProgressive: "")(.*?)(?="")")
    8. Dim m As Match = r.Match(WebBrowser1.DocumentText)
    9. If m.Success Then
    10. MessageBox.Show(m.Value)
    11. End If
    12. End Sub
    13. End Class

    And i think to myself... what a wonderfuL World!

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Eddy“ ()

    Danke nochmal für die Antwort. Jetzt habe ich aber (schon wieder) ein Problem: Dieses Mal hängt sich mein Programm nach mehreren Java Svript Errorn auf (d.h. ich kann keine Kontrollelemente mehr verwenden). Beim ersten Mal ging es noch. Dann gingn es nicht mehr, egal ob ich auf Skript ausführen oder stoppen geklickt habe. Programm Code ist der von dir im vorherigen Thread, natürlich so verwendet, dass er funzt (mit den regular expressions kenne ich mich nicht aus, die schaue ich mir dann bei gelgenheit mal an)
    Das Webbrowser-Control ist auch nicht wirklich etwas gutes. Das Ding ist nun mal der IE, oder basiert darauf. Du koenttest die Gecko-Engine nutzen und damit etwas machen.

    DS3110 schrieb:

    mit den regular expressions kenne ich mich nicht aus, die schaue ich mir dann bei gelgenheit mal an


    Diese Anleitung von @Link kann da sehr hilfreich sein.
    RegEx Tutorial - Blutige Anfänger und Fortgeschrittene
    And i think to myself... what a wonderfuL World!