From ad4d8690ccc0d9894f5e937e56b8001ef7e5c29f Mon Sep 17 00:00:00 2001 From: hama3254 <52826614+hama3254@users.noreply.github.com> Date: Thu, 23 May 2024 18:20:36 +0200 Subject: [PATCH] added token deletion added token deletion #959 changed error messages --- .vs/Crunchyroll Downloader/v17/.suo | Bin 195072 -> 230400 bytes .../Crunchyroll Downloader.vbproj | 36 ++++-- Crunchyroll Downloader/GetData.vb | 106 ++++++++++++++---- Crunchyroll Downloader/Main.vb | 99 ++++++++++++---- .../My Project/AssemblyInfo.vb | 4 +- 5 files changed, 188 insertions(+), 57 deletions(-) diff --git a/.vs/Crunchyroll Downloader/v17/.suo b/.vs/Crunchyroll Downloader/v17/.suo index 961e0ec3cae3ad669be3320af1c3cd44f3b82061..2bfcf8fb63ffdcf684c1ce402c0f417d9f8bec90 100644 GIT binary patch delta 28935 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�KgQcpMlSOT_P`Zj(N6XdnLW;1}TL@=fR_39j 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 RWUSw`A?Iy9bG%qX{|AQH!ax83 diff --git a/Crunchyroll Downloader/Crunchyroll Downloader.vbproj b/Crunchyroll Downloader/Crunchyroll Downloader.vbproj index 1b85eaf..8d89303 100644 --- a/Crunchyroll Downloader/Crunchyroll Downloader.vbproj +++ b/Crunchyroll Downloader/Crunchyroll Downloader.vbproj @@ -155,20 +155,28 @@ LoginForm.vb - + + Form + ffmpeg_option.vb - + + Form + CheckBoxComboBox.vb - + + Form + queue.vb - + + Form + Trackbar.vb @@ -185,11 +193,15 @@ Anime_Add.vb - + + Form + einstellungen.vb - + + Form + Browser.vb @@ -200,11 +212,15 @@ ErrorDialog.vb - + + Form + Main.vb - + + Form + True @@ -219,7 +235,9 @@ CRD_List_Item.vb - + + UserControl + diff --git a/Crunchyroll Downloader/GetData.vb b/Crunchyroll Downloader/GetData.vb index 52a090f..82911ee 100644 --- a/Crunchyroll Downloader/GetData.vb +++ b/Crunchyroll Downloader/GetData.vb @@ -81,7 +81,7 @@ Module GetData If Main.Curl_insecure = True Then cmd = "--insecure " End If '-fsSLm - cmd = cmd + "--no-alpn -fsSLm 15 -A " + My.Settings.User_Agend.Replace("User-Agent: ", "") + Cookies + Auth + Post + " " + Chr(34) + Url + Chr(34) + cmd = cmd + "--no-alpn -sSLm 15 -w " + Chr(34) + "\nHTTP Status: %{http_code}\n" + Chr(34) + " -A " + My.Settings.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 @@ -114,31 +114,22 @@ Module GetData Loop Until Proc.HasExited Or Microsoft.VisualBasic.DateAndTime.Timer < finish - If CBool(InStr(CurlOutput, "curl:")) = True And CBool(InStr(CurlOutput, "400")) = True Then - Return CurlOutput - ElseIf CBool(InStr(CurlError, "curl:")) = True And CBool(InStr(CurlError, "401")) = True Then - Return CurlError - ElseIf CBool(InStr(CurlOutput, "curl:")) = True And CBool(InStr(CurlOutput, "401")) = True Then - Return CurlOutput - ElseIf CBool(InStr(CurlError, "curl:")) = True And CBool(InStr(CurlError, "400")) = True Then - Return CurlError - ElseIf CBool(InStr(CurlError, "curl:")) Then - Debug.WriteLine(CurlError) - Throw New System.Exception("Error - Getting" + Sender + vbNewLine + CurlError) - Return Nothing - - ElseIf CBool(InStr(CurlOutput, "curl:")) Then - Debug.WriteLine(CurlOutput) + If CurlOutput = Nothing And CurlError = Nothing Then Throw New System.Exception("Error - Getting" + Sender + vbNewLine + CurlError) Return Nothing + ElseIf CurlError = Nothing Then + Dim OutputBody() As String = CurlOutput.Split(New String() {"HTTP Status:"}, System.StringSplitOptions.RemoveEmptyEntries) + Return OutputBody(0) + 'Return CurlOutput Else - Return CurlOutput + Return CurlError End If + End Function - Public Function CurlAuthNew(ByVal Url As String, ByVal Cookies As String, ByVal Auth As String, Optional ByVal Test As Boolean = False) As String + Public Function CurlAuthNew(ByVal Url As String, ByVal Cookies As String, ByVal Auth As String, Optional ByVal Test As Boolean = False, Optional ByVal UserAgent As String = Chr(34) + "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:126.0) Gecko/20100101 Firefox/126.0" + Chr(34)) As String If Test = True Then Throw New System.Exception("Error - Getting" + vbNewLine + "Test") @@ -157,7 +148,78 @@ Module GetData If Main.Curl_insecure = True Then cmd = "--insecure " End If - cmd = cmd + "--no-alpn -fsSLm 15 -A " + My.Settings.User_Agend.Replace("User-Agent: ", "") + Cookies + Auth + " " + Chr(34) + Url + Chr(34) + cmd = cmd + "--no-alpn -sSLm 15 -w " + Chr(34) + "\nHTTP Status: %{http_code}\n" + Chr(34) + " -A " + UserAgent + 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 CBool(InStr(CurlError, "HTTP Status: 420")) Then + Return CurlError + ElseIf CBool(InStr(CurlOutput, "HTTP Status: 420")) Then + Return CurlOutput + ElseIf CBool(InStr(CurlError, "HTTP Status: 4")) Then + Debug.WriteLine(CurlError) + Throw New System.Exception("Error - Getting" + vbNewLine + CurlError) + Return Nothing + ElseIf CBool(InStr(CurlOutput, "HTTP Status: 4")) Then + Debug.WriteLine(CurlOutput) + Throw New System.Exception("Error - Getting" + vbNewLine + CurlOutput) + Return Nothing + Else + Dim OutputBody() As String = CurlOutput.Split(New String() {"HTTP Status:"}, System.StringSplitOptions.RemoveEmptyEntries) + Dim Output As String = OutputBody(0) + Return Output + End If + + End Function + + Public Function CurlDeleteNew(ByVal Url As String, ByVal Auth As String, Optional ByVal UserAgent As String = "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:126.0) Gecko/20100101 Firefox/126.0") 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 -sSLm 15 -w " + Chr(34) + "\nHTTP Status: %{http_code}\n" + Chr(34) + " -A " + UserAgent + Auth + " -X DELETE " + Chr(34) + Url + Chr(34) Dim Proc As New Process 'MsgBox(cmd) Dim CurlOutput As String = Nothing @@ -193,11 +255,11 @@ Module GetData - If CBool(InStr(CurlError, "curl:")) Then + If CBool(InStr(CurlError, "HTTP Status: 4")) Then Debug.WriteLine(CurlError) Throw New System.Exception("Error - Getting" + vbNewLine + CurlError) Return Nothing - ElseIf CBool(InStr(CurlOutput, "curl:")) Then + ElseIf CBool(InStr(CurlOutput, "HTTP Status: 4")) Then Debug.WriteLine(CurlOutput) Throw New System.Exception("Error - Getting" + vbNewLine + CurlError) Return Nothing @@ -208,8 +270,6 @@ Module GetData End Function - - #End Region diff --git a/Crunchyroll Downloader/Main.vb b/Crunchyroll Downloader/Main.vb index df75208..acf826b 100644 --- a/Crunchyroll Downloader/Main.vb +++ b/Crunchyroll Downloader/Main.vb @@ -15,7 +15,6 @@ Imports System.Runtime.InteropServices Imports MyProvider.MyProvider Imports Microsoft.Web.WebView2.Core Imports Crunchyroll_Downloader.CRD_Classes -Imports System.Runtime.CompilerServices Public Class Main Inherits MetroForm @@ -1069,11 +1068,7 @@ Public Class Main ObjectJson = CurlAuthNew(ObjectsURL, Loc_CR_Cookies, Loc_AuthToken) - 'Filter JSON esqaped characters - 'Debug.WriteLine(Date.Now.ToString + "before:" + ObjectJson) - 'Debug.WriteLine("1750: " + ObjectJson) ObjectJson = CleanJSON(ObjectJson) - 'Debug.WriteLine(Date.Now.ToString + "after:" + ObjectJson) Dim DubsAvalible As New List(Of CR_MediaVersion) @@ -1166,10 +1161,47 @@ Public Class Main Dim NewAPI As String = "https://cr-play-service.prd.crunchyrollsvc.com/v1/" + page_guid + "/console/switch/play" Debug.WriteLine("NewAPI: " + NewAPI) 'MsgBox(Loc_AuthToken) - Dim UserAgent As String = " -H " + Chr(34) + "User-Agent: Crunchyroll/1.8.0 Nintendo Switch/12.3.12.0 UE4/4.27" + Chr(34) - Dim NewAPIData As String = CurlAuthNew(NewAPI, "", UserAgent + Loc_AuthToken) + 'Dim UserAgent As String = " -H " + Chr(34) + "User-Agent: Crunchyroll/1.8.0 Nintendo Switch/12.3.12.0 UE4/4.27" + Chr(34) + Dim UserAgent As String = Chr(34) + "Crunchyroll/1.8.0 Nintendo Switch/12.3.12.0 UE4/4.27" + Chr(34) + + Dim NewAPIData As String = CurlAuthNew(NewAPI, "", Loc_AuthToken, False, UserAgent) 'Debug.WriteLine("NewAPIData: " + NewAPIData) + If CBool(InStr(NewAPIData, "HTTP Status: 420")) Then ' + + Me.Invoke(New Action(Function() As Object + SetStatusLabel("Stream limit reached - Bypassing") + Return Nothing + End Function)) + + 'page_guid NewAPIData + + Dim OldToCancel_0 As String() = NewAPIData.Split(New String() {Chr(34) + "token" + Chr(34) + ":" + Chr(34)}, System.StringSplitOptions.RemoveEmptyEntries) ' + Dim OldToCancel_1 As String() = OldToCancel_0(1).Split(New String() {Chr(34)}, System.StringSplitOptions.RemoveEmptyEntries) ' + Dim OldToCancel As String = OldToCancel_1(0) + + Dim OldPage_0 As String() = NewAPIData.Split(New String() {Chr(34) + "contentId" + Chr(34) + ":" + Chr(34)}, System.StringSplitOptions.RemoveEmptyEntries) ' + Dim OldPage_1 As String() = OldPage_0(1).Split(New String() {Chr(34)}, System.StringSplitOptions.RemoveEmptyEntries) ' + Dim OldPage As String = OldPage_1(0) + + + CurlDeleteNew("https://cr-play-service.prd.crunchyrollsvc.com/v1/token/" + OldPage + "/" + OldToCancel, Loc_AuthToken) + Debug.WriteLine("Error 420 - delete old Token: " + OldToCancel + " for " + OldPage) + Pause(3) + NewAPIData = CurlAuthNew(NewAPI, "", Loc_AuthToken, False, UserAgent) + End If + + If CBool(InStr(NewAPIData, "HTTP Status: 420")) Then + + Me.Invoke(New Action(Function() As Object + SetStatusLabel("Bypassing failed") + Return Nothing + End Function)) + + + Throw New System.Exception("Error - Getting" + vbNewLine + "Error 420") + End If + Dim VideoJSON_New As String = CleanJSON(NewAPIData) @@ -1591,7 +1623,11 @@ Public Class Main Else - Dim str As String = CurlAuthNew(CR_URI_Master(0), "", Loc_AuthToken) + Dim str0 As String = CurlAuthNew(CR_URI_Master(0), "", Loc_AuthToken) + + Dim str1() As String = str0.Split(New String() {""}, System.StringSplitOptions.RemoveEmptyEntries) + + Dim str As String = str1(0) If CBool(InStr(str, "curl:")) = True Or str = Nothing Then @@ -1646,6 +1682,8 @@ Public Class Main Dim localm3u8 As String = CurlAuthNew(ffmpeg_url_3.Trim(), "", Loc_AuthToken) + + Dim localfile As String = Application.StartupPath + "\" + GeräteID2() + ".m3u8" Dim utf8WithoutBom As New System.Text.UTF8Encoding(False) @@ -1665,8 +1703,21 @@ Public Class Main #End Region +#Region "Cancel Token" + 'page_guid NewAPIData + + + Dim ToCancel_0 As String() = NewAPIData.Split(New String() {Chr(34) + "token" + Chr(34) + ":" + Chr(34)}, System.StringSplitOptions.RemoveEmptyEntries) ' + Dim ToCancel_1 As String() = ToCancel_0(1).Split(New String() {Chr(34)}, System.StringSplitOptions.RemoveEmptyEntries) ' + Dim ToCancel As String = ToCancel_1(0) + CurlDeleteNew("https://cr-play-service.prd.crunchyrollsvc.com/v1/token/" + page_guid + "/" + ToCancel, Loc_AuthToken) + Debug.WriteLine("Delete Token: " + ToCancel + " for " + page_guid + " - " + CR_FilenName) + + +#End Region + #Region "GetSoftsubs" - Dim SoftSubsAvailable As New List(Of String) + Dim SoftSubsAvailable As New List(Of String) 'Dim CCAvailable As New List(Of String) Dim SoftSubsList As New List(Of CR_Subtiles) @@ -2992,15 +3043,16 @@ Public Class Main Else Dim v1Token As String = CurlPost("https://www.crunchyroll.com/auth/v1/token", Loc_CR_Cookies, Auth, Post, "add_main_4494") - If CBool(InStr(v1Token, "curl:")) = True And CBool(InStr(v1Token, "401")) = True Then - MsgBox("CR reported error 401, this may mean incorrect login detail, please try again.", MsgBoxStyle.Exclamation, "CR-Error 401") + If CBool(InStr(v1Token, "HTTP Status: 401")) = True Then + MsgBox("CR reported :" + vbNewLine + v1Token, MsgBoxStyle.Exclamation, "CR-Error 401") LoginForm.ShowDialog() Exit Sub End If - If CBool(InStr(v1Token, "curl:")) = True And CBool(InStr(v1Token, "400")) = True Then - MsgBox("CR reported error 400, idk why tbh", MsgBoxStyle.Exclamation, "CR-Error 400") - SetStatusLabel("Status: Unknown error. #3038") + If CBool(InStr(v1Token, "HTTP Status: 400")) = True Then + 'MsgBox("CR reported error 400, idk why tbh", MsgBoxStyle.Exclamation, "CR-Error 400") + 'SetStatusLabel("Status: Unknown error. #3038") + MsgBox("CR reported :" + vbNewLine + v1Token, MsgBoxStyle.Exclamation, "CR-Error 400") Exit Sub End If @@ -3085,14 +3137,15 @@ Public Class Main 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 + MsgBox(ex.ToString) + Exit Sub + '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 @@ -3101,7 +3154,7 @@ Public Class Main Exit Sub ElseIf CBool(InStr(ObjectJson, "videos/")) = False Then - + MsgBox(ObjectJson) SetStatusLabel("Status: Failed - no video, check CR login") Me.Text = "Status: Failed - no video, check CR login" Debug.WriteLine("Status: Failed - no video, check CR login") diff --git a/Crunchyroll Downloader/My Project/AssemblyInfo.vb b/Crunchyroll Downloader/My Project/AssemblyInfo.vb index 240e473..b55f751 100644 --- a/Crunchyroll Downloader/My Project/AssemblyInfo.vb +++ b/Crunchyroll Downloader/My Project/AssemblyInfo.vb @@ -32,6 +32,6 @@ Imports System.Runtime.InteropServices ' übernehmen, indem Sie "*" eingeben: ' - - + +