mirror of
https://github.com/hama3254/Crunchyroll-Downloader-v3.0.git
synced 2025-01-11 15:59:16 +01:00
improvements
fix not selectable qsv (Intel iGPU; Intel Arc) encoder options fix encoding for curl #568 added theoretical workaround for "SSL/TLS secure channel" on windows 8 and 8.1 added trigger for objects json changed locale value to be taken from input url
This commit is contained in:
parent
6d96f606a3
commit
c1494366f2
Binary file not shown.
@ -27,7 +27,7 @@ Public Class Anime_Add
|
||||
|
||||
'Main.LoadedUrl = Url
|
||||
|
||||
Dim locale As String = "en-US"
|
||||
|
||||
If CBool(InStr(Url, "crunchyroll.com")) = True And CBool(InStr(Url, "watch")) = True And CBool(Main.CrBetaBasic = Nothing) = False Then
|
||||
#Region "Get Cookies"
|
||||
Main.CR_Cookies = "Cookie: "
|
||||
@ -47,23 +47,37 @@ Public Class Anime_Add
|
||||
Main.CR_Cookies = Main.CR_Cookies + list.Item(i).Name + "=" + list.Item(i).Value + ";"
|
||||
End If
|
||||
If CBool(InStr(list.Item(i).Domain, ".crunchyroll.com")) And CBool(InStr(list.Item(i).Name, "c_locale")) Then
|
||||
locale = list.Item(i).Value
|
||||
Main.locale = list.Item(i).Value
|
||||
|
||||
End If
|
||||
If CBool(InStr(list.Item(i).Domain, ".crunchyroll.com")) = True And CBool(InStr(list.Item(i).Name, "etp_rt")) = True And Main.CheckCRLogin = True And Main.CR_etp_rt = Nothing Then
|
||||
Debug.WriteLine("etp_rt = True")
|
||||
etp_rt = True
|
||||
Main.CR_etp_rt = list.Item(i).Value
|
||||
rk.SetValue("etp_rt", Main.CR_etp_rt, RegistryValueKind.String)
|
||||
ElseIf CBool(InStr(list.Item(i).Domain, ".crunchyroll.com")) = True And CBool(InStr(list.Item(i).Name, "__cf_bm")) = True = True And Main.CheckCRLogin = True And Main.CR_ajs_user_id = Nothing Then
|
||||
'MsgBox(list.Item(i).Value)
|
||||
Debug.WriteLine("ajs_user_id = True")
|
||||
ajs_user_id = True
|
||||
Main.CR_ajs_user_id = list.Item(i).Value
|
||||
rk.SetValue("ajs_user_id", Main.CR_ajs_user_id, RegistryValueKind.String)
|
||||
End If
|
||||
'If CBool(InStr(list.Item(i).Domain, ".crunchyroll.com")) = True And CBool(InStr(list.Item(i).Name, "etp_rt")) = True And Main.CheckCRLogin = True And Main.CR_etp_rt = Nothing Then
|
||||
' Debug.WriteLine("etp_rt = True")
|
||||
' etp_rt = True
|
||||
' Main.CR_etp_rt = list.Item(i).Value
|
||||
' rk.SetValue("etp_rt", Main.CR_etp_rt, RegistryValueKind.String)
|
||||
'ElseIf CBool(InStr(list.Item(i).Domain, ".crunchyroll.com")) = True And CBool(InStr(list.Item(i).Name, "__cf_bm")) = True = True And Main.CheckCRLogin = True And Main.CR_ajs_user_id = Nothing Then
|
||||
' 'MsgBox(list.Item(i).Value)
|
||||
' Debug.WriteLine("ajs_user_id = True")
|
||||
' ajs_user_id = True
|
||||
' Main.CR_ajs_user_id = list.Item(i).Value
|
||||
' rk.SetValue("ajs_user_id", Main.CR_ajs_user_id, RegistryValueKind.String)
|
||||
'End If
|
||||
Next
|
||||
|
||||
'If Main.locale = Nothing Then
|
||||
Dim locale1() As String = Url.Split(New String() {"crunchyroll.com/"}, System.StringSplitOptions.RemoveEmptyEntries)
|
||||
Dim locale2() As String = locale1(1).Split(New String() {"/watch"}, System.StringSplitOptions.RemoveEmptyEntries)
|
||||
'MsgBox(locale2(0))
|
||||
Main.locale = Main.Convert_locale(locale2(0))
|
||||
'End If
|
||||
|
||||
'MsgBox(Main.locale)
|
||||
|
||||
If Main.locale = Nothing Then
|
||||
|
||||
CefSharp_Browser.WebBrowser1.Load(Url)
|
||||
Exit Sub
|
||||
End If
|
||||
|
||||
|
||||
'If Main.CR_etp_rt IsNot Nothing And etp_rt = False Then
|
||||
@ -124,7 +138,7 @@ Public Class Anime_Add
|
||||
|
||||
Dim ObjectsUrl As String = Nothing
|
||||
|
||||
Try
|
||||
'Try
|
||||
'Using client As New WebClient()
|
||||
' client.Encoding = System.Text.Encoding.UTF8
|
||||
' client.Headers.Add(My.Resources.ffmpeg_user_agend.Replace(Chr(34), ""))
|
||||
@ -168,17 +182,18 @@ Public Class Anime_Add
|
||||
Dim ObjectsURLBuilder4() As String = ObjectsURLBuilder3(1).Split(New String() {"/"}, System.StringSplitOptions.RemoveEmptyEntries)
|
||||
|
||||
|
||||
ObjectsUrl = "https://www.crunchyroll.com/cms/v2" + bucket2(0) + "/objects/" + ObjectsURLBuilder4(0) + "?locale=" + locale + "&Signature=" + signature2(0) + "&Policy=" + policy2(0) + "&Key-Pair-Id=" + key_pair_id2(0)
|
||||
ObjectsUrl = "https://www.crunchyroll.com/cms/v2" + bucket2(0) + "/objects/" + ObjectsURLBuilder4(0) + "?locale=" + Main.locale + "&Signature=" + signature2(0) + "&Policy=" + policy2(0) + "&Key-Pair-Id=" + key_pair_id2(0)
|
||||
'End Using
|
||||
|
||||
'MsgBox(ObjectsUrl)
|
||||
|
||||
Debug.WriteLine("ObjectsUrl: " + ObjectsUrl)
|
||||
|
||||
|
||||
Catch ex As Exception
|
||||
CefSharp_Browser.WebBrowser1.Load(Url)
|
||||
Exit Sub
|
||||
End Try
|
||||
'Catch ex As Exception
|
||||
' MsgBox(ex.ToString)
|
||||
' CefSharp_Browser.WebBrowser1.Load(Url)
|
||||
' Exit Sub
|
||||
'End Try
|
||||
|
||||
Dim StreamsUrl As String = Nothing
|
||||
Dim ObjectJson As String
|
||||
|
@ -365,6 +365,15 @@ Public Class CefSharp_Browser
|
||||
Exit Sub
|
||||
End If
|
||||
Debug.WriteLine(e.Request.Url)
|
||||
ElseIf CBool(InStr(e.Request.Url, "crunchyroll.com/")) And CBool(InStr(e.Request.Url, "/objects/")) Then
|
||||
If (Me.InvokeRequired) Then
|
||||
Me.Invoke(Sub() Main.LoadedUrls.Add(e.Request.Url))
|
||||
Exit Sub
|
||||
Else
|
||||
Main.LoadedUrls.Add(e.Request.Url)
|
||||
Exit Sub
|
||||
End If
|
||||
Debug.WriteLine(e.Request.Url)
|
||||
ElseIf CBool(InStr(e.Request.Url, "crunchyroll.com/")) And CBool(InStr(e.Request.Url, "seasons?series_id=")) Then
|
||||
If (Me.InvokeRequired) Then
|
||||
Me.Invoke(Sub() Main.LoadedUrls.Add(e.Request.Url))
|
||||
|
@ -33,7 +33,7 @@ Public Class Main
|
||||
Public CrBetaMassParameters As String = Nothing
|
||||
Public CrBetaMassBaseURL As String = Nothing
|
||||
Public CrBetaBasic As String = Nothing
|
||||
|
||||
Public locale As String = Nothing
|
||||
'Public CrBetaObjects As String = Nothing
|
||||
'Public CrBetaStreams As String = Nothing
|
||||
'Public CrBetaStreamsUrl As String = Nothing
|
||||
@ -1033,7 +1033,7 @@ Public Class Main
|
||||
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)
|
||||
'MsgBox(cmd)
|
||||
Dim CurlOutput As String = Nothing
|
||||
Dim CurlError As String = Nothing
|
||||
' all parameters required to run the process
|
||||
@ -1044,6 +1044,8 @@ Public Class Main
|
||||
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
|
||||
@ -1099,6 +1101,8 @@ Public Class Main
|
||||
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
|
||||
@ -1156,6 +1160,8 @@ Public Class Main
|
||||
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
|
||||
@ -1390,6 +1396,8 @@ Public Class Main
|
||||
|
||||
ObjectJson = Curl(ObjectsURL)
|
||||
|
||||
'MsgBox(ObjectJson)
|
||||
|
||||
If CBool(InStr(ObjectJson, "curl:")) = True Then
|
||||
ObjectJson = Curl(ObjectsURL)
|
||||
End If
|
||||
@ -1782,9 +1790,15 @@ Public Class Main
|
||||
Dim SoftSub_2 As String() = SoftSub(1).Split(New [Char]() {Chr(34)})
|
||||
Dim SoftSub_3 As String = SoftSub_2(0).Replace("&", "&").Replace("/u0026", "&").Replace("\u002F", "/").Replace("\u0026", "&")
|
||||
'MsgBox(SoftSub_3)
|
||||
Dim str0 As String = Nothing
|
||||
If System.Environment.OSVersion.Version.Major < 10 Then
|
||||
str0 = Curl(SoftSub_3)
|
||||
Else
|
||||
Dim client0 As New WebClient
|
||||
client0.Encoding = Encoding.UTF8
|
||||
Dim str0 As String = client0.DownloadString(SoftSub_3) 'Curl(SoftSub_3)
|
||||
str0 = client0.DownloadString(SoftSub_3) 'Curl(SoftSub_3)
|
||||
End If
|
||||
|
||||
'MsgBox(str0)
|
||||
Dim Pfad3 As String = Pfad2.Replace(Chr(34), "")
|
||||
Dim FN As String = Path.ChangeExtension(Path.Combine(Path.GetFileNameWithoutExtension(Pfad3) + "." + GetSubFileLangName(SoftSubs2(i)) + Path.GetExtension(Pfad3)), "ass")
|
||||
@ -1950,10 +1964,17 @@ Public Class Main
|
||||
End If
|
||||
'MsgBox(URL_DL)
|
||||
Else
|
||||
|
||||
Dim str As String = Nothing
|
||||
|
||||
If System.Environment.OSVersion.Version.Major < 10 Then
|
||||
str = Curl(CR_URI_Master)
|
||||
Else
|
||||
Dim client As New System.Net.WebClient
|
||||
client.Encoding = Encoding.UTF8
|
||||
'MsgBox(CR_URI_Master)
|
||||
Dim str As String = client.DownloadString(CR_URI_Master)
|
||||
str = client.DownloadString(CR_URI_Master)
|
||||
End If
|
||||
|
||||
'MsgBox(str)
|
||||
If CBool(InStr(str, "x" + Reso.ToString + ",")) Then
|
||||
Reso2 = "x" + Reso.ToString
|
||||
@ -2076,6 +2097,35 @@ Public Class Main
|
||||
End Try
|
||||
End Sub
|
||||
|
||||
Function Convert_locale(ByVal locale As String) As String
|
||||
Try
|
||||
If locale = "de" Then
|
||||
Return "de-DE"
|
||||
ElseIf locale = "" Then
|
||||
Return "en-US"
|
||||
ElseIf locale = "pt-br" Then
|
||||
Return "pt-BR"
|
||||
ElseIf locale = "es" Then
|
||||
Return "es-419"
|
||||
ElseIf locale = "fr" Then
|
||||
Return "fr-FR"
|
||||
ElseIf locale = "ar" Then
|
||||
Return "ar-SA"
|
||||
ElseIf locale = "ru" Then
|
||||
Return "ru-RU"
|
||||
ElseIf locale = "it" Then
|
||||
Return "it-IT"
|
||||
ElseIf locale = "es-es" Then
|
||||
Return "es-ES"
|
||||
ElseIf locale = "pt-pt" Then
|
||||
Return "pt-PT"
|
||||
Else
|
||||
Return CB_SuB_Nothing
|
||||
End If
|
||||
Catch ex As Exception
|
||||
Return Nothing
|
||||
End Try
|
||||
End Function
|
||||
Function ConvertCC(ByVal CC As String) As String
|
||||
Try
|
||||
If CC = "deDE" Then
|
||||
@ -2344,6 +2394,8 @@ Public Class Main
|
||||
startinfo.RedirectStandardError = True
|
||||
startinfo.RedirectStandardOutput = True
|
||||
startinfo.CreateNoWindow = True
|
||||
startinfo.StandardOutputEncoding = Encoding.UTF8
|
||||
startinfo.StandardErrorEncoding = Encoding.UTF8
|
||||
AddHandler proc.ErrorDataReceived, AddressOf FFMPEGResoBack
|
||||
AddHandler proc.OutputDataReceived, AddressOf FFMPEGResoBack
|
||||
proc.StartInfo = startinfo
|
||||
@ -3631,6 +3683,44 @@ Public Class Main
|
||||
'CefSharp_Browser.WebBrowser1.LoadUrl(requesturl)
|
||||
|
||||
|
||||
LoadedUrls.Clear()
|
||||
Me.Text = "Crunchyroll Downloader"
|
||||
Exit Sub
|
||||
End If
|
||||
ElseIf CBool(InStr(requesturl, "crunchyroll.com/")) And CBool(InStr(requesturl, "/objects/")) Then
|
||||
|
||||
If b = False Then
|
||||
Dim ObjectJson As String
|
||||
Dim ObjectsUrl As String = requesturl
|
||||
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
|
||||
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")
|
||||
GetBetaVideoProxy(StreamsUrl, WebbrowserURL)
|
||||
b = True
|
||||
LoadedUrls.Clear()
|
||||
Me.Text = "Crunchyroll Downloader"
|
||||
Exit Sub
|
||||
|
@ -32,6 +32,6 @@ Imports System.Runtime.InteropServices
|
||||
' übernehmen, indem Sie "*" eingeben:
|
||||
' <Assembly: AssemblyVersion("1.0.*")>
|
||||
|
||||
<Assembly: AssemblyVersion("3.9.5")>
|
||||
<Assembly: AssemblyFileVersion("3.9.5")>
|
||||
<Assembly: AssemblyVersion("3.9.7")>
|
||||
<Assembly: AssemblyFileVersion("3.9.7")>
|
||||
<Assembly: NeutralResourcesLanguage("en")>
|
||||
|
@ -917,7 +917,7 @@ Public Class Einstellungen
|
||||
|
||||
|
||||
|
||||
Private Sub ListC1_Click(sender As Object, e As EventArgs) Handles ListC1.Click, ListC2.Click, ListC3.Click, ListC4.Click, ListC5.Click, ListC6.Click, ListC7.Click
|
||||
Private Sub ListC1_Click(sender As Object, e As EventArgs) Handles ListC1.Click, ListC2.Click, ListC3.Click, ListC4.Click, ListC5.Click, ListC6.Click, ListC7.Click, ListC8.Click, ListC9.Click
|
||||
Dim Button As ToolStripMenuItem = CType(sender, ToolStripMenuItem)
|
||||
If Button.Text = "-c copy" Then
|
||||
FFMPEG_CommandP1.Text = "-c copy"
|
||||
@ -1327,6 +1327,7 @@ Public Class Einstellungen
|
||||
|
||||
|
||||
|
||||
|
||||
#End Region
|
||||
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user