diff --git a/.vs/Crunchyroll Downloader/v17/.suo b/.vs/Crunchyroll Downloader/v17/.suo
index 46d2104..34c2082 100644
Binary files a/.vs/Crunchyroll Downloader/v17/.suo and b/.vs/Crunchyroll Downloader/v17/.suo differ
diff --git a/Crunchyroll Downloader/Anime_Add.vb b/Crunchyroll Downloader/Anime_Add.vb
index f07ce67..d7e669e 100644
--- a/Crunchyroll Downloader/Anime_Add.vb
+++ b/Crunchyroll Downloader/Anime_Add.vb
@@ -437,7 +437,22 @@ Public Class Anime_Add
Dim Loc_CR_Cookies = " -H " + Chr(34) + Main.CR_Cookies.Replace(Chr(34), "").Replace(" -H ", "") + Chr(34)
- Dim EpisodeJson As String = Main.CurlAuth(JsonUrl, Loc_CR_Cookies, Main.CR_MassSeasons.Item(ComboBox1.SelectedIndex).Auth) '
+ Dim EpisodeJson As String = Nothing 'CurlAuth(JsonUrl, Loc_CR_Cookies, Main.CR_MassSeasons.Item(ComboBox1.SelectedIndex).Auth) '
+
+
+ Try
+
+ EpisodeJson = CurlAuthNew(JsonUrl, Loc_CR_Cookies, Main.CR_MassSeasons.Item(ComboBox1.SelectedIndex).Auth) '
+
+ Catch ex As Exception
+ If CBool(InStr(ex.ToString, "Error - Getting")) Then
+ MsgBox("Error invalid CR respone")
+ Exit Sub
+ Else
+ MsgBox("Error processing data")
+ Exit Sub
+ End If
+ End Try
'My.Computer.Clipboard.SetText(EpisodeJson)
diff --git a/Crunchyroll Downloader/Browser.vb b/Crunchyroll Downloader/Browser.vb
index 612a3f8..9c0978a 100644
--- a/Crunchyroll Downloader/Browser.vb
+++ b/Crunchyroll Downloader/Browser.vb
@@ -174,29 +174,7 @@ Public Class Browser
Main.CR_v1Token = ""
Exit Sub
- ElseIf CBool(InStr(e.Request.Uri, "crunchyroll.com/")) And CBool(InStr(e.Request.Uri, "streams?")) Then
- Debug.WriteLine("Crunchyroll-Single: " + e.Request.Uri)
- Dim Content As Stream = Await e.Response.GetContentAsync
- Dim ContentString As String = Nothing
- Dim reader As New StreamReader(Content)
- ContentString = reader.ReadToEnd
- Main.LoadedUrls.Add(e.Request)
- Main.CR_VideoJson = New UrlJson(e.Request.Uri, ContentString)
-
- Exit Sub
- ElseIf CBool(InStr(e.Request.Uri, "crunchyroll.com/")) And CBool(InStr(e.Request.Uri, "/objects/")) And CBool(InStr(Main.LoadingUrl, "/watch/")) Then
- 'MsgBox(True.ToString)
- Debug.WriteLine(e.Request.Uri)
- 'Main.LoadedUrls.Add(e.Request.Uri)
- Dim Content As Stream = Await e.Response.GetContentAsync
- Dim ContentString As String = Nothing
- Dim reader As New StreamReader(Content)
- ContentString = reader.ReadToEnd
- Main.CR_ObjectsJson = New UrlJson(e.Request.Uri, ContentString)
-
-
- Exit Sub
ElseIf CBool(InStr(e.Request.Uri, "crunchyroll.com/")) And CBool(InStr(e.Request.Uri, "seasons?preferred_audio_language=")) And CBool(InStr(Main.LoadingUrl, "/series/")) Then
diff --git a/Crunchyroll Downloader/Crunchyroll Downloader.vbproj b/Crunchyroll Downloader/Crunchyroll Downloader.vbproj
index 5100d85..eef5ff8 100644
--- a/Crunchyroll Downloader/Crunchyroll Downloader.vbproj
+++ b/Crunchyroll Downloader/Crunchyroll Downloader.vbproj
@@ -163,6 +163,7 @@
Form
+
queue.vb
diff --git a/Crunchyroll Downloader/GetData.vb b/Crunchyroll Downloader/GetData.vb
new file mode 100644
index 0000000..87c6f6c
--- /dev/null
+++ b/Crunchyroll Downloader/GetData.vb
@@ -0,0 +1,233 @@
+Imports System.IO
+Imports System.Text
+
+Module GetData
+
+#Region "curl"
+
+ Public Function Curl(ByVal Url As String) As String
+
+ Dim exepath As String = Path.Combine(Application.StartupPath, "lib", "curl.exe")
+ Dim startinfo As New System.Diagnostics.ProcessStartInfo
+ Dim sr As StreamReader
+ Dim sr2 As StreamReader
+ Dim cmd As String = ""
+ If Main.Curl_insecure = True Then
+ cmd = "--insecure "
+ End If
+ cmd = cmd + "--no-alpn -fsSLm 15 -A " + My.Resources.ffmpeg_user_agend.Replace("User-Agent: ", "") + " " + Chr(34) + Url + Chr(34)
+ Dim Proc As New Process
+ 'MsgBox(cmd)
+ Dim CurlOutput As String = Nothing
+ Dim CurlError As String = Nothing
+ ' all parameters required to run the process
+ startinfo.FileName = exepath
+ startinfo.Arguments = cmd
+ startinfo.UseShellExecute = False
+ startinfo.WindowStyle = ProcessWindowStyle.Normal
+ startinfo.RedirectStandardError = True
+ startinfo.RedirectStandardOutput = True
+ startinfo.CreateNoWindow = True
+ startinfo.StandardOutputEncoding = Encoding.UTF8
+ startinfo.StandardErrorEncoding = Encoding.UTF8
+ Proc.StartInfo = startinfo
+ Proc.Start() ' start the process
+ sr = Proc.StandardOutput 'standard error is used by ffmpeg
+ sr2 = Proc.StandardError
+ 'sw = proc.StandardInput
+
+ Dim start, finish, pau As Double
+ start = CSng(Microsoft.VisualBasic.DateAndTime.Timer)
+ pau = 5
+ finish = start + pau
+
+ Do
+ CurlOutput = CurlOutput + sr.ReadToEnd
+ CurlError = CurlError + sr2.ReadToEnd
+ 'ffmpegOutput2 = sr.ReadLine
+ 'Debug.WriteLine(CurlOutput)
+
+ Loop Until Proc.HasExited Or Microsoft.VisualBasic.DateAndTime.Timer < finish
+
+
+ If CurlOutput = Nothing And CurlError = Nothing Then
+ Debug.WriteLine("curl-E: " + "curl: ")
+ Return CurlError
+ ElseIf CurlOutput = Nothing And CurlError IsNot Nothing Then
+ Debug.WriteLine("curl-E: " + CurlError)
+ Return CurlError
+ ElseIf CurlOutput IsNot Nothing And CurlError = Nothing Then
+ Debug.WriteLine("curl-O: " + CurlOutput)
+ Return CurlOutput
+ ElseIf CurlOutput IsNot Nothing And CurlError IsNot Nothing Then
+ Debug.WriteLine("curl-O: " + CurlOutput)
+ Return CurlOutput
+ Else
+ Debug.WriteLine("curl-E: " + "curl: ")
+ Return CurlError
+ End If
+
+
+ End Function
+
+ Public Function CurlPost(ByVal Url As String, ByVal Cookies As String, ByVal Auth As String, ByVal Post As String) As String
+
+
+ Dim exepath As String = Path.Combine(Application.StartupPath, "lib", "curl.exe")
+
+ Dim startinfo As New System.Diagnostics.ProcessStartInfo
+ Dim sr As StreamReader
+ Dim sr2 As StreamReader
+
+
+ Dim cmd As String = ""
+ If Main.Curl_insecure = True Then
+ cmd = "--insecure "
+ End If
+ cmd = cmd + "--no-alpn -fsSLm 15 -A " + My.Resources.ffmpeg_user_agend.Replace("User-Agent: ", "") + Cookies + Auth + Post + " " + Chr(34) + Url + Chr(34)
+ Dim Proc As New Process
+ 'Debug.WriteLine("CurlPost: " + cmd)
+ Dim CurlOutput As String = Nothing
+ Dim CurlError As String = Nothing
+ ' all parameters required to run the process
+ startinfo.FileName = exepath
+ startinfo.Arguments = cmd
+ startinfo.UseShellExecute = False
+ startinfo.WindowStyle = ProcessWindowStyle.Normal
+ startinfo.RedirectStandardError = True
+ startinfo.RedirectStandardOutput = True
+ startinfo.CreateNoWindow = True
+ startinfo.StandardOutputEncoding = Encoding.UTF8
+ startinfo.StandardErrorEncoding = Encoding.UTF8
+ Proc.StartInfo = startinfo
+ Proc.Start() ' start the process
+ sr = Proc.StandardOutput 'standard error is used by ffmpeg
+ sr2 = Proc.StandardError
+ 'sw = proc.StandardInput
+ Dim start, finish, pau As Double
+ start = CSng(Microsoft.VisualBasic.DateAndTime.Timer)
+ pau = 5
+ finish = start + pau
+
+ Do
+ CurlOutput = CurlOutput + sr.ReadToEnd
+ CurlError = CurlError + sr2.ReadToEnd
+ 'ffmpegOutput2 = sr.ReadLine
+ 'Debug.WriteLine(CurlOutput)
+
+ Loop Until Proc.HasExited Or Microsoft.VisualBasic.DateAndTime.Timer < finish
+
+
+ If CurlOutput = Nothing And CurlError = Nothing Then
+ Debug.WriteLine("CurlPost-E: " + "curl: ")
+ Return CurlError
+ ElseIf CurlOutput = Nothing And CurlError IsNot Nothing Then
+ Debug.WriteLine("CurlPost-E: " + CurlError)
+ Return CurlError
+ ElseIf CurlOutput IsNot Nothing And CurlError = Nothing Then
+ Debug.WriteLine("CurlPost-O: " + CurlOutput)
+ Return CurlOutput
+ ElseIf CurlOutput IsNot Nothing And CurlError IsNot Nothing Then
+ Debug.WriteLine("CurlPost-O: " + CurlOutput)
+ Return CurlOutput
+ Else
+ Debug.WriteLine("CurlPost-E: " + "curl: ")
+ Return CurlError
+ End If
+
+ End Function
+
+
+ Public Function CurlAuthNew(ByVal Url As String, ByVal Cookies As String, ByVal Auth As String) As String
+
+
+
+ Dim exepath As String = Path.Combine(Application.StartupPath, "lib", "curl.exe")
+
+ Dim startinfo As New System.Diagnostics.ProcessStartInfo
+ Dim sr As StreamReader
+ Dim sr2 As StreamReader
+
+
+
+ Dim cmd As String = ""
+ If Main.Curl_insecure = True Then
+ cmd = "--insecure "
+ End If
+ cmd = cmd + "--no-alpn -fsSLm 15 -A " + My.Resources.ffmpeg_user_agend.Replace("User-Agent: ", "") + Cookies + Auth + " " + Chr(34) + Url + Chr(34)
+ Dim Proc As New Process
+ 'MsgBox(cmd)
+ Dim CurlOutput As String = Nothing
+ Dim CurlError As String = Nothing
+ ' all parameters required to run the process
+ startinfo.FileName = exepath
+ startinfo.Arguments = cmd
+ startinfo.UseShellExecute = False
+ startinfo.WindowStyle = ProcessWindowStyle.Normal
+ startinfo.RedirectStandardError = True
+ startinfo.RedirectStandardOutput = True
+ startinfo.CreateNoWindow = True
+ startinfo.StandardOutputEncoding = Encoding.UTF8
+ startinfo.StandardErrorEncoding = Encoding.UTF8
+ Proc.StartInfo = startinfo
+ Proc.Start() ' start the process
+ sr = Proc.StandardOutput 'standard error is used by ffmpeg
+ sr2 = Proc.StandardError
+ 'sw = proc.StandardInput
+
+ Dim start, finish, pau As Double
+ start = CSng(Microsoft.VisualBasic.DateAndTime.Timer)
+ pau = 5
+ finish = start + pau
+
+ Do
+ CurlOutput = CurlOutput + sr.ReadToEnd
+ CurlError = CurlError + sr2.ReadToEnd
+ 'ffmpegOutput2 = sr.ReadLine
+ 'Debug.WriteLine(CurlOutput)
+
+ Loop Until Proc.HasExited Or Microsoft.VisualBasic.DateAndTime.Timer < finish
+
+
+ If CurlOutput = Nothing Or CBool(InStr(CurlOutput, "curl")) Then
+ Throw New System.Exception("Error - Getting ObjectJson data" + vbNewLine + CurlOutput)
+ Return Nothing
+ ElseIf CBool(InStr(CurlError, "curl")) Then
+ Throw New System.Exception("Error - Getting" + vbNewLine + CurlError)
+ Return Nothing
+ Else
+ Return CurlOutput
+ End If
+
+
+ End Function
+
+
+
+
+#End Region
+
+
+ Function FindExistingVideo(ByVal rootPath As String, ByVal searchString As String, ByVal original As String) As String
+ Dim Tracks As Integer = 0
+ Dim File As String = original
+ ' Durchsuchen aller Dateien im angegebenen Verzeichnis und seinen Unterverzeichnissen
+ For Each filePath As String In Directory.GetFiles(rootPath, "*", SearchOption.AllDirectories)
+ ' Überprüfen, ob der Dateiname den gesuchten Text enthält
+ If Path.GetFileName(filePath).Contains(searchString) Then
+
+ If FFMPEG_Audio(filePath) > Tracks Then
+ File = filePath
+ End If
+
+ End If
+ Next
+
+
+ Return File
+ End Function
+
+
+
+
+End Module
diff --git a/Crunchyroll Downloader/Main.vb b/Crunchyroll Downloader/Main.vb
index a6d53ea..b934681 100644
--- a/Crunchyroll Downloader/Main.vb
+++ b/Crunchyroll Downloader/Main.vb
@@ -20,6 +20,7 @@ Imports Microsoft.Web.WebView2.Core
Imports System.Net.Http
Imports Crunchyroll_Downloader.CRD_Classes
+
Public Class Main
Inherits MetroForm
@@ -30,9 +31,6 @@ Public Class Main
Public CheckCRLogin As Boolean = True
- Public CR_SeasonJson As UrlJson = New UrlJson("", "")
- Public CR_ObjectsJson As UrlJson = New UrlJson("", "")
- Public CR_VideoJson As UrlJson = New UrlJson("", "")
Public CR_AuthToken As String = ""
Public CR_v1Token As String = ""
@@ -774,218 +772,7 @@ Public Class Main
End Function
#End Region
-#Region "curl"
- Public Function Curl(ByVal Url As String) As String
-
-
-
- Dim exepath As String = Path.Combine(Application.StartupPath, "lib", "curl.exe")
-
- Dim startinfo As New System.Diagnostics.ProcessStartInfo
- Dim sr As StreamReader
- Dim sr2 As StreamReader
- Dim cmd As String = ""
- If Curl_insecure = True Then
- cmd = "--insecure "
- End If
- cmd = cmd + "--no-alpn -fsSLm 15 -A " + My.Resources.ffmpeg_user_agend.Replace("User-Agent: ", "") + " " + Chr(34) + Url + Chr(34)
- Dim Proc As New Process
- 'MsgBox(cmd)
- Dim CurlOutput As String = Nothing
- Dim CurlError As String = Nothing
- ' all parameters required to run the process
- startinfo.FileName = exepath
- startinfo.Arguments = cmd
- startinfo.UseShellExecute = False
- startinfo.WindowStyle = ProcessWindowStyle.Normal
- startinfo.RedirectStandardError = True
- startinfo.RedirectStandardOutput = True
- startinfo.CreateNoWindow = True
- startinfo.StandardOutputEncoding = Encoding.UTF8
- startinfo.StandardErrorEncoding = Encoding.UTF8
- Proc.StartInfo = startinfo
- Proc.Start() ' start the process
- sr = Proc.StandardOutput 'standard error is used by ffmpeg
- sr2 = Proc.StandardError
- 'sw = proc.StandardInput
-
- Dim start, finish, pau As Double
- start = CSng(Microsoft.VisualBasic.DateAndTime.Timer)
- pau = 5
- finish = start + pau
-
- Do
- CurlOutput = CurlOutput + sr.ReadToEnd
- CurlError = CurlError + sr2.ReadToEnd
- 'ffmpegOutput2 = sr.ReadLine
- 'Debug.WriteLine(CurlOutput)
-
- Loop Until Proc.HasExited Or Microsoft.VisualBasic.DateAndTime.Timer < finish
-
-
- If CurlOutput = Nothing And CurlError = Nothing Then
- Debug.WriteLine("curl-E: " + "curl: ")
- Return CurlError
- ElseIf CurlOutput = Nothing And CurlError IsNot Nothing Then
- Debug.WriteLine("curl-E: " + CurlError)
- Return CurlError
- ElseIf CurlOutput IsNot Nothing And CurlError = Nothing Then
- Debug.WriteLine("curl-O: " + CurlOutput)
- Return CurlOutput
- ElseIf CurlOutput IsNot Nothing And CurlError IsNot Nothing Then
- Debug.WriteLine("curl-O: " + CurlOutput)
- Return CurlOutput
- Else
- Debug.WriteLine("curl-E: " + "curl: ")
- Return CurlError
- End If
-
-
- End Function
-
- Public Function CurlPost(ByVal Url As String, ByVal Cookies As String, ByVal Auth As String, ByVal Post As String) As String
-
-
- Dim exepath As String = Path.Combine(Application.StartupPath, "lib", "curl.exe")
-
- Dim startinfo As New System.Diagnostics.ProcessStartInfo
- Dim sr As StreamReader
- Dim sr2 As StreamReader
-
-
- Dim cmd As String = ""
- If Curl_insecure = True Then
- cmd = "--insecure "
- End If
- cmd = cmd + "--no-alpn -fsSLm 15 -A " + My.Resources.ffmpeg_user_agend.Replace("User-Agent: ", "") + Cookies + Auth + Post + " " + Chr(34) + Url + Chr(34)
- Dim Proc As New Process
- 'Debug.WriteLine("CurlPost: " + cmd)
- Dim CurlOutput As String = Nothing
- Dim CurlError As String = Nothing
- ' all parameters required to run the process
- startinfo.FileName = exepath
- startinfo.Arguments = cmd
- startinfo.UseShellExecute = False
- startinfo.WindowStyle = ProcessWindowStyle.Normal
- startinfo.RedirectStandardError = True
- startinfo.RedirectStandardOutput = True
- startinfo.CreateNoWindow = True
- startinfo.StandardOutputEncoding = Encoding.UTF8
- startinfo.StandardErrorEncoding = Encoding.UTF8
- Proc.StartInfo = startinfo
- Proc.Start() ' start the process
- sr = Proc.StandardOutput 'standard error is used by ffmpeg
- sr2 = Proc.StandardError
- 'sw = proc.StandardInput
- Dim start, finish, pau As Double
- start = CSng(Microsoft.VisualBasic.DateAndTime.Timer)
- pau = 5
- finish = start + pau
-
- Do
- CurlOutput = CurlOutput + sr.ReadToEnd
- CurlError = CurlError + sr2.ReadToEnd
- 'ffmpegOutput2 = sr.ReadLine
- 'Debug.WriteLine(CurlOutput)
-
- Loop Until Proc.HasExited Or Microsoft.VisualBasic.DateAndTime.Timer < finish
-
-
- If CurlOutput = Nothing And CurlError = Nothing Then
- Debug.WriteLine("CurlPost-E: " + "curl: ")
- Return CurlError
- ElseIf CurlOutput = Nothing And CurlError IsNot Nothing Then
- Debug.WriteLine("CurlPost-E: " + CurlError)
- Return CurlError
- ElseIf CurlOutput IsNot Nothing And CurlError = Nothing Then
- Debug.WriteLine("CurlPost-O: " + CurlOutput)
- Return CurlOutput
- ElseIf CurlOutput IsNot Nothing And CurlError IsNot Nothing Then
- Debug.WriteLine("CurlPost-O: " + CurlOutput)
- Return CurlOutput
- Else
- Debug.WriteLine("CurlPost-E: " + "curl: ")
- Return CurlError
- End If
-
- End Function
-
-
- Public Function CurlAuth(ByVal Url As String, ByVal Cookies As String, ByVal Auth As String) As String
-
-
-
- Dim exepath As String = Path.Combine(Application.StartupPath, "lib", "curl.exe")
-
- Dim startinfo As New System.Diagnostics.ProcessStartInfo
- Dim sr As StreamReader
- Dim sr2 As StreamReader
-
-
-
- Dim cmd As String = ""
- If Curl_insecure = True Then
- cmd = "--insecure "
- End If
- cmd = cmd + "--no-alpn -fsSLm 15 -A " + My.Resources.ffmpeg_user_agend.Replace("User-Agent: ", "") + Cookies + Auth + " " + Chr(34) + Url + Chr(34)
- Dim Proc As New Process
- 'MsgBox(cmd)
- Dim CurlOutput As String = Nothing
- Dim CurlError As String = Nothing
- ' all parameters required to run the process
- startinfo.FileName = exepath
- startinfo.Arguments = cmd
- startinfo.UseShellExecute = False
- startinfo.WindowStyle = ProcessWindowStyle.Normal
- startinfo.RedirectStandardError = True
- startinfo.RedirectStandardOutput = True
- startinfo.CreateNoWindow = True
- startinfo.StandardOutputEncoding = Encoding.UTF8
- startinfo.StandardErrorEncoding = Encoding.UTF8
- Proc.StartInfo = startinfo
- Proc.Start() ' start the process
- sr = Proc.StandardOutput 'standard error is used by ffmpeg
- sr2 = Proc.StandardError
- 'sw = proc.StandardInput
-
- Dim start, finish, pau As Double
- start = CSng(Microsoft.VisualBasic.DateAndTime.Timer)
- pau = 5
- finish = start + pau
-
- Do
- CurlOutput = CurlOutput + sr.ReadToEnd
- CurlError = CurlError + sr2.ReadToEnd
- 'ffmpegOutput2 = sr.ReadLine
- 'Debug.WriteLine(CurlOutput)
-
- Loop Until Proc.HasExited Or Microsoft.VisualBasic.DateAndTime.Timer < finish
-
- If CurlOutput = Nothing And CurlError = Nothing Then
- Debug.WriteLine("CurlAuth-E: " + "curl: ")
- Return CurlError
- ElseIf CurlOutput = Nothing And CurlError IsNot Nothing Then
- Debug.WriteLine("CurlAuth-E: " + CurlError)
- Return CurlError
- ElseIf CurlOutput IsNot Nothing And CurlError = Nothing Then
- Debug.WriteLine("CurlAuth-O: " + CurlOutput)
- Return CurlOutput
- ElseIf CurlOutput IsNot Nothing And CurlError IsNot Nothing Then
- Debug.WriteLine("CurlAuth-O: " + CurlOutput)
- Return CurlOutput
- Else
- Debug.WriteLine("CurlAuth-E: " + "curl: ")
- Return CurlError
- End If
-
-
- End Function
-
-
-
-
-#End Region
#Region "CR-Beta"
@@ -1101,13 +888,20 @@ Public Class Main
Dim Loc_CR_Cookies = " -H " + Chr(34) + CR_Cookies.Replace(Chr(34), "").Replace(" -H ", "") + Chr(34)
- SeasonJson = CurlAuth(JsonUrl, Loc_CR_Cookies, Auth)
+ Try
+
+ SeasonJson = CurlAuthNew(JsonUrl, Loc_CR_Cookies, Auth)
+
+ Catch ex As Exception
+ If CBool(InStr(ex.ToString, "Error - Getting")) Then
+ MsgBox("Error invalid CR respone")
+ Exit Sub
+ Else
+ MsgBox("Error processing data")
+ Exit Sub
+ End If
+ End Try
- If CBool(InStr(SeasonJson, "curl:")) = True Then
- 'Browser.WebView2.CoreWebView2.Navigate(Url)
- SetStatusLabel("Status: Critical error. #1091")
- Exit Sub
- End If
Else
@@ -1186,12 +980,12 @@ Public Class Main
End Sub
- Public Sub GetBetaVideoProxy(ByVal requesturl As String, ByVal AuthToken As String, ByVal WebsiteURL As String)
- Dim Evaluator = New Thread(Sub() Me.GetBetaVideo(requesturl, AuthToken, WebsiteURL))
+ Public Sub GetCRVideoProxy(ByVal requesturl As String, ByVal AuthToken As String, ByVal WebsiteURL As String)
+ Dim Evaluator = New Thread(Sub() Me.GetCRVideo(requesturl, AuthToken, WebsiteURL))
Evaluator.Start()
End Sub
- Public Sub GetBetaVideo(ByVal Streams As String, ByVal AuthToken As String, ByVal WebsiteURL As String)
+ Public Sub GetCRVideo(ByVal Streams As String, ByVal AuthToken As String, ByVal WebsiteURL As String)
If b = False Then
b = True
End If
@@ -1241,22 +1035,15 @@ Public Class Main
Dim CR_EpisodeID As String = ""
+#Region "No anime :("
+
+
If CBool(InStr(WebsiteURL, "musicvideo")) = True Then
'TextBox2_Text to bypasss name for now
Dim ObjectsURL As String = Streams.Replace("music/", "music/music_videos/").Replace("/streams", "")
-
- ObjectJson = CurlAuth(ObjectsURL, Loc_CR_Cookies, Loc_AuthToken)
-
- 'MsgBox(ObjectsURL)
-
- 'MsgBox(ObjectJson.Length.ToString)
- 'MsgBox(ObjectJson)
-
- 'title":" + "
-
- '"name":" + "
+ ObjectJson = CurlAuthNew(ObjectsURL, Loc_CR_Cookies, Loc_AuthToken)
Dim Title() As String = ObjectJson.Split(New String() {Chr(34) + "title" + Chr(34) + ":" + Chr(34)}, System.StringSplitOptions.RemoveEmptyEntries)
Dim Title2() As String = Title(1).Split(New String() {Chr(34)}, System.StringSplitOptions.RemoveEmptyEntries)
@@ -1264,24 +1051,13 @@ Public Class Main
Dim Arti() As String = ObjectJson.Split(New String() {Chr(34) + "name" + Chr(34) + ":" + Chr(34)}, System.StringSplitOptions.RemoveEmptyEntries)
Dim Arti2() As String = Arti(1).Split(New String() {Chr(34)}, System.StringSplitOptions.RemoveEmptyEntries)
-
- 'MsgBox(Arti2(0))
- 'MsgBox(Title2(0))
-
-
TextBox2_Text = Arti2(0) + " - " + Title2(0)
ElseIf CBool(InStr(WebsiteURL, "/concert/")) = True Then
- 'TextBox2_Text to bypasss name for now
-
- 'https://www.crunchyroll.com/content/v2/music/MCB3E02384/streams?locale=de-DE
-
- 'https://www.crunchyroll.com/content/v2/music/concerts/MCB3E02384?locale=de-DE
-
Dim ObjectsURL As String = Streams.Replace("music/", "music/concerts/").Replace("/streams", "")
- ObjectJson = CurlAuth(ObjectsURL, Loc_CR_Cookies, Loc_AuthToken)
+ ObjectJson = CurlAuthNew(ObjectsURL, Loc_CR_Cookies, Loc_AuthToken)
Dim Title() As String = ObjectJson.Split(New String() {Chr(34) + "title" + Chr(34) + ":" + Chr(34)}, System.StringSplitOptions.RemoveEmptyEntries)
@@ -1296,10 +1072,9 @@ Public Class Main
TextBox2_Text = Arti2(0) + " - " + Title2(0)
+#End Region
Else
-
-
Dim ObjectsURLBuilder() As String = Streams.Split(New String() {"videos"}, System.StringSplitOptions.RemoveEmptyEntries)
Dim ObjectsURLBuilder2() As String = ObjectsURLBuilder(1).Split(New String() {"/streams"}, System.StringSplitOptions.RemoveEmptyEntries)
Dim ObjectsURLBuilder3() As String = WebsiteURL.Split(New String() {"watch/"}, System.StringSplitOptions.RemoveEmptyEntries)
@@ -1310,35 +1085,7 @@ Public Class Main
Debug.WriteLine(ObjectsURL)
-
- ObjectJson = CurlAuth(ObjectsURL, Loc_CR_Cookies, Loc_AuthToken)
-
-
-
- 'ObjectJson = Curl(ObjectsURL)
-
- 'MsgBox(ObjectJson)
-
- If CBool(InStr(ObjectJson, "curl:")) = True Then
- ObjectJson = CurlAuth(ObjectsURL, Loc_CR_Cookies, Loc_AuthToken)
- End If
-
-
-
- If CBool(InStr(ObjectJson, "curl:")) = True And CBool(InStr(CR_ObjectsJson.Url, ObjectsURLBuilder4(0))) Then
- Debug.WriteLine("curl error, using CR_ObjectsJson " + vbNewLine + ObjectJson)
-
- ObjectJson = CR_ObjectsJson.Content
- CR_ObjectsJson = New UrlJson("", "")
- ElseIf CBool(InStr(ObjectJson, "curl:")) Then
-
- Throw New System.Exception("Error - Getting ObjectJson data" + vbNewLine + ObjectJson)
-
- 'MsgBox("Error - Getting ObjectJson data" + vbNewLine + ObjectJson)
- 'Exit Sub
- End If
-
-
+ ObjectJson = CurlAuthNew(ObjectsURL, Loc_CR_Cookies, Loc_AuthToken)
'Filter JSON esqaped characters
'Debug.WriteLine(Date.Now.ToString + "before:" + ObjectJson)
@@ -1394,22 +1141,8 @@ Public Class Main
#Region "VideoJson"
Dim VideoJson As String = Nothing
- VideoJson = CurlAuth(Streams, Loc_CR_Cookies, Loc_AuthToken)
- If CBool(InStr(VideoJson, "curl:")) = True Then
- VideoJson = CurlAuth(Streams, Loc_CR_Cookies, Loc_AuthToken)
-
- End If
-
- If CBool(InStr(VideoJson, "curl:")) = True Then 'And CBool(InStr(CR_VideoJson.Url, StreamsUrlBuilder2(0))) Then
- Debug.WriteLine("curl error, using CR_VideoJson " + vbNewLine + VideoJson)
- VideoJson = CR_VideoJson.Content
- CR_VideoJson = New UrlJson("", "")
- ElseIf CBool(InStr(VideoJson, "curl:")) = True Then
- Throw New System.Exception("Error - Getting VideoJson data" + vbNewLine + VideoJson) 'VideoJson = Nothing
- ' MsgBox("Error - Getting VideoJson data" + vbNewLine + VideoJson)
- ' Exit Sub
- End If
+ VideoJson = CurlAuthNew(Streams, Loc_CR_Cookies, Loc_AuthToken)
Debug.WriteLine("VideoJson: " + VideoJson)
Debug.WriteLine("VideoStreams: " + Streams)
@@ -1447,17 +1180,11 @@ Public Class Main
'MsgBox(Streams)
- VideoJson = CurlAuth(Streams, Loc_CR_Cookies, Loc_AuthToken)
- If CBool(InStr(VideoJson, "curl:")) = True Then
- VideoJson = CurlAuth(Streams, Loc_CR_Cookies, Loc_AuthToken)
- Else
- Exit For
- End If
- If CBool(InStr(VideoJson, "curl:")) = True Then
- Throw New System.Exception("Error - Getting VideoJson data" + vbNewLine + VideoJson)
- End If
+
+ VideoJson = CurlAuthNew(Streams, Loc_CR_Cookies, Loc_AuthToken)
+
End If
@@ -1597,6 +1324,7 @@ Public Class Main
#Region "Name von Crunchyroll"
+ Dim MergeSearch As String = "if not changed no Merch possible, i hope..."
If CR_episode = Nothing Or CR_episode = "" And CR_episode2 = Nothing Then
CR_episode_int = "0"
@@ -1657,10 +1385,13 @@ Public Class Main
If NameParts(i) = "AnimeTitle" Then
CR_FilenName = CR_FilenName + " " + CR_series_title
+ MergeSearch = MergeSearch + " " + CR_series_title
ElseIf NameParts(i) = "Season" Then
CR_FilenName = CR_FilenName + " " + CR_season_number
+ MergeSearch = MergeSearch + " " + CR_season_number
ElseIf NameParts(i) = "EpisodeNR" Then
CR_FilenName = CR_FilenName + " " + CR_episode
+ MergeSearch = MergeSearch + " " + CR_episode
ElseIf NameParts(i) = "EpisodeName" Then
CR_FilenName = CR_FilenName + " " + CR_title
ElseIf NameParts(i) = "AnimeDub" Then
@@ -1823,6 +1554,13 @@ Public Class Main
Dim Pfad6 As String = Pfad5
Dim MergeAudio As Boolean = False
+ If DownloadScope = DownloadScopeEnum.MergeAudio Then
+
+ Pfad5 = FindExistingVideo(Path.GetDirectoryName(Pfad5), MergeSearch, Pfad5)
+
+ End If
+ '
+
If My.Computer.FileSystem.FileExists(Pfad5) And DownloadScope = DownloadScopeEnum.OldDefault Then 'Pfad = Kompeltter Pfad mit Dateinamen + ENdung
Me.Invoke(New Action(Function() As Object
Anime_Add.StatusLabel.Text = "Status: The file already exists."
@@ -1847,6 +1585,8 @@ Public Class Main
FileSystem.Rename(Pfad5, Pfad6)
MergeAudio = True
+
+
ElseIf My.Computer.FileSystem.FileExists(Path.GetDirectoryName(Pfad5) + "\" + Path.GetFileNameWithoutExtension(Pfad5) + "aac") And DownloadScope = DownloadScopeEnum.AudioOnly Then
Me.Invoke(New Action(Function() As Object
@@ -2304,14 +2044,22 @@ Public Class Main
Catch ex As Exception
End Try
If KeepCache = False Then
+
+
+ Dim folderPath As String = Pfad
+ Dim files() As String = Directory.GetFiles(folderPath, "*", SearchOption.AllDirectories)
+
+ For Each file As String In files
+ If CBool(InStr(file, "CRD-Temp-File-")) Then
+ 'MsgBox(file)
+ System.IO.File.Delete(file)
+ End If
+ Next
Try
Dim di As New System.IO.DirectoryInfo(Pfad)
For Each fi As System.IO.DirectoryInfo In di.EnumerateDirectories("*.*", System.IO.SearchOption.TopDirectoryOnly)
- If fi.Attributes.HasFlag(System.IO.FileAttributes.Hidden) Then
- Else
- If CBool(InStr(fi.Name, "CRD-Temp-File-")) Then
- System.IO.Directory.Delete(fi.FullName, True)
- End If
+ If CBool(InStr(fi.Name, "CRD-Temp-File-")) Then
+ System.IO.Directory.Delete(fi.FullName, True)
End If
Next
Catch ex As Exception
@@ -3747,7 +3495,7 @@ Public Class Main
End If
Me.Text = "Status: Crunchyroll episode found."
Debug.WriteLine("Crunchyroll episode found")
- GetBetaVideoProxy(Request.Uri, CR_AuthToken, WebbrowserURL)
+ GetCRVideoProxy(Request.Uri, CR_AuthToken, WebbrowserURL)
b = True
LoadedUrls.Clear()
Me.Text = "Crunchyroll Downloader"
@@ -3789,66 +3537,6 @@ Public Class Main
Me.Text = "Crunchyroll Downloader"
Exit Sub
End If
- ElseIf CBool(InStr(Request.Uri, "crunchyroll.com/")) And CBool(InStr(Request.Uri, "/objects/")) Then
- If i = LoadedUrls.Count - 1 And SavedObjectsUrl IsNot "" Then
-
- If b = False Then
- Dim ObjectJson As String
- Dim ObjectsUrl As String = Request.Uri
- Dim StreamsUrl As String
- ObjectJson = Curl(ObjectsUrl)
-
- If CBool(InStr(ObjectJson, "curl:")) = True Then
- ObjectJson = Curl(ObjectsUrl)
- End If
-
- If CBool(InStr(ObjectJson, "curl:")) = True Then
- Continue For
- ElseIf CBool(InStr(ObjectJson, "videos/")) = False Then
-
- If Application.OpenForms().OfType(Of Anime_Add).Any = True Then
- Anime_Add.StatusLabel.Text = "Status: Failed, check CR login"
- End If
- Me.Text = "Status: Failed, check CR login"
- Debug.WriteLine("Status: Failed, check CR login")
-
- Continue For
- End If
-
-
-
-
- Dim StreamsUrlBuilder() As String = ObjectJson.Split(New String() {"videos/"}, System.StringSplitOptions.RemoveEmptyEntries)
- Dim StreamsUrlBuilder2() As String = StreamsUrlBuilder(1).Split(New String() {"/streams"}, System.StringSplitOptions.RemoveEmptyEntries)
-
- Dim StreamsUrlBuilder3() As String = ObjectsUrl.Split(New String() {"objects/"}, System.StringSplitOptions.RemoveEmptyEntries)
- Dim StreamsUrlBuilder4() As String = StreamsUrlBuilder3(1).Split(New String() {"?"}, System.StringSplitOptions.RemoveEmptyEntries)
-
- StreamsUrl = StreamsUrlBuilder3(0) + "videos/" + StreamsUrlBuilder2(0) + "/streams?" + StreamsUrlBuilder4(1)
-
-
- If Application.OpenForms().OfType(Of Anime_Add).Any = True Then
- Anime_Add.StatusLabel.Text = "Status: Crunchyroll episode found."
- End If
- Me.Text = "Status: Crunchyroll episode found."
- Debug.WriteLine("Crunchyroll episode found")
- Dim Headers As New List(Of KeyValuePair(Of String, String))
- Headers.AddRange(Request.Headers.ToList)
- Dim AuthToken As String = ""
- For ii As Integer = 0 To Headers.Count
- If CBool(InStr(Headers.Item(i).Value, "Bearer")) Then
- AuthToken = Headers.Item(i).Value
- End If
- Next
- GetBetaVideoProxy(StreamsUrl, AuthToken, WebbrowserURL)
- b = True
- LoadedUrls.Clear()
- Me.Text = "Crunchyroll Downloader"
- Exit Sub
- End If
- Else
- SavedObjectsUrl = Request.Uri
- End If
End If
@@ -4480,13 +4168,7 @@ Public Class Main
'MsgBox(CR_Cookies)
End Sub
- Private Sub ClearAllSettingsToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles UrlJsonsToolStripMenuItem.Click
- MsgBox("Season" + vbNewLine + CR_SeasonJson.Content.Count.ToString)
- MsgBox("Object" + vbNewLine + CR_ObjectsJson.Content.Count.ToString)
- MsgBox("Streams" + vbNewLine + CR_VideoJson.Content.Count.ToString)
-
- End Sub
Private Sub ItemBoundsToolStripMenuItem_Click(sender As Object, e As EventArgs)
@@ -4798,7 +4480,22 @@ Public Class Main
Dim StreamsUrl As String = Nothing
Dim ObjectJson As String
- ObjectJson = CurlAuth(ObjectsUrl, Loc_CR_Cookies, Auth2)
+
+
+
+ Try
+
+ ObjectJson = CurlAuthNew(ObjectsUrl, Loc_CR_Cookies, Auth2)
+
+ Catch ex As Exception
+ If CBool(InStr(ex.ToString, "Error - Getting")) Then
+ MsgBox("Error invalid CR respone")
+ Exit Sub
+ Else
+ MsgBox("Error processing data")
+ Exit Sub
+ End If
+ End Try
If CBool(InStr(ObjectJson, "curl:")) = True Then
@@ -4831,7 +4528,7 @@ Public Class Main
Exit Sub
End Try
- GetBetaVideoProxy(StreamsUrl, Auth2, url)
+ GetCRVideoProxy(StreamsUrl, Auth2, url)
Else