From ef758168105bbf913c0e308ae992d98edb1b7be6 Mon Sep 17 00:00:00 2001 From: hama3254 Date: Sat, 3 Jun 2023 15:57:13 +0200 Subject: [PATCH] fixes and improvements fix funimation base function #753 added `download_hls` as last option for #748 redone retry #747 (untested) block add button (wait for browser to load) --- .vs/Crunchyroll Downloader/v17/.suo | Bin 210944 -> 208384 bytes Crunchyroll Downloader/Anime_Add.Designer.vb | 1 + Crunchyroll Downloader/Anime_Add.vb | 42 ++++- Crunchyroll Downloader/Browser.vb | 149 ++++++++---------- Crunchyroll Downloader/GetData.vb | 61 ++++--- Crunchyroll Downloader/Main.vb | 123 ++++++++++----- .../My Project/AssemblyInfo.vb | 4 +- 7 files changed, 217 insertions(+), 163 deletions(-) diff --git a/.vs/Crunchyroll Downloader/v17/.suo b/.vs/Crunchyroll Downloader/v17/.suo index 37ffb1e8d4b00084d1174ec6e67f99c2e6a33f60..2c4ddfce52c4b62e8a61154dde6f8ed641021cc8 100644 GIT binary patch delta 12917 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 nto-p!l~fI%qXrv+< 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 diff --git a/Crunchyroll Downloader/Anime_Add.Designer.vb b/Crunchyroll Downloader/Anime_Add.Designer.vb index e59f4b3..e6ab8e2 100644 --- a/Crunchyroll Downloader/Anime_Add.Designer.vb +++ b/Crunchyroll Downloader/Anime_Add.Designer.vb @@ -328,6 +328,7 @@ Partial Class Anime_Add ' Me.btn_dl.BackgroundImage = Global.Crunchyroll_Downloader.My.Resources.Resources.main_button_download_default Me.btn_dl.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch + Me.btn_dl.Cursor = System.Windows.Forms.Cursors.No Me.btn_dl.FlatAppearance.BorderSize = 0 Me.btn_dl.FlatStyle = System.Windows.Forms.FlatStyle.Flat Me.btn_dl.Font = New System.Drawing.Font("Microsoft Sans Serif", 27.75!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) diff --git a/Crunchyroll Downloader/Anime_Add.vb b/Crunchyroll Downloader/Anime_Add.vb index fecb4b7..036e658 100644 --- a/Crunchyroll Downloader/Anime_Add.vb +++ b/Crunchyroll Downloader/Anime_Add.vb @@ -11,6 +11,8 @@ Imports System.Text Imports System.Runtime.InteropServices.ComTypes Imports System.Windows.Forms.VisualStyles.VisualStyleElement.Status Imports Newtonsoft.Json.Linq +Imports System.Timers +Imports System.Security.Policy Public Class Anime_Add Public Mass_DL_Cancel As Boolean = False @@ -48,6 +50,16 @@ Public Class Anime_Add Btn_Close.Image = Main.CloseImg Btn_min.Image = Main.MinImg + btn_dl.Cursor = Cursors.No + btn_dl.BackgroundImage = My.Resources.main_button_download_deactivate + + If File.Exists("cookies.txt") = True Or Main.BowserWasOpen = True Then + btn_dl.BackgroundImage = My.Resources.main_button_download_default + btn_dl.Cursor = Cursors.Default + End If + + + Try Me.Icon = My.Resources.icon Catch ex As Exception @@ -147,6 +159,10 @@ Public Class Anime_Add Private Sub Btn_dl_Click(sender As Object, e As EventArgs) Handles btn_dl.Click + If btn_dl.Cursor = Cursors.No Then + Exit Sub + End If + Main.LoginOnly = "Download Mode!" 'MsgBox(Main.WebbrowserURL) @@ -154,7 +170,7 @@ Public Class Anime_Add If groupBox1.Visible = True Then ' Main.LoadedUrls.Clear() - Try + Try If CBool(InStr(textBox1.Text, "crunchyroll.com")) Or CBool(InStr(textBox1.Text, "funimation.com")) Then @@ -202,7 +218,15 @@ Public Class Anime_Add Debug.WriteLine("error- getting v1Json data for the bypass") Debug.WriteLine(ex.ToString) End Try - + ElseIf CBool(InStr(textBox1.Text, "funimation.com/shows/")) Then + Main.LoadingUrl = textBox1.Text + Main.LoadedUrls.Clear() + Main.b = False + Debug.WriteLine("loading funimation show url: " + Date.Now.ToString) + StatusLabel.Text = "Status: loading funimation...." + 'Main.LoadBrowser() + Browser.WebView2.CoreWebView2.Navigate(textBox1.Text) + Exit Sub End If End If @@ -228,8 +252,8 @@ Public Class Anime_Add End If Catch ex As Exception MsgBox(ex.ToString) - Main.b = True - MsgBox(Main.URL_Invaild, MsgBoxStyle.OkOnly) + Main.b = True + MsgBox(Main.URL_Invaild, MsgBoxStyle.OkOnly) End Try ElseIf groupBox2.Visible = True Then @@ -324,6 +348,11 @@ Public Class Anime_Add Private Sub Btn_dl_MouseEnter(sender As Object, e As EventArgs) Handles btn_dl.MouseEnter + If btn_dl.Cursor = Cursors.No Then + Exit Sub + End If + + If Mass_DL_Cancel = True Then btn_dl.Text = "Cancel" btn_dl.BackgroundImage = My.Resources.main_button_download_hovert @@ -339,6 +368,11 @@ Public Class Anime_Add End Sub Private Sub Btn_dl_MouseLeave(sender As Object, e As EventArgs) Handles btn_dl.MouseLeave + If btn_dl.Cursor = Cursors.No Then + Exit Sub + End If + + If Mass_DL_Cancel = True Then btn_dl.Text = "Cancel" btn_dl.BackgroundImage = My.Resources.main_button_download_hovert diff --git a/Crunchyroll Downloader/Browser.vb b/Crunchyroll Downloader/Browser.vb index ba0d67f..0c885de 100644 --- a/Crunchyroll Downloader/Browser.vb +++ b/Crunchyroll Downloader/Browser.vb @@ -21,24 +21,28 @@ Public Class Browser WebView2.CoreWebView2.AddWebResourceRequestedFilter("https://www.crunchyroll.com/*", CoreWebView2WebResourceContext.All) WebView2.CoreWebView2.AddWebResourceRequestedFilter("https://www.funimation.com/*", CoreWebView2WebResourceContext.All) - 'WebView2.CoreWebView2.AddWebResourceRequestedFilter("https://www.crunchyroll.com/*", CoreWebView2WebResourceContext.All) - 'WebView2.CoreWebView2.AddWebResourceRequestedFilter("*", CoreWebView2WebResourceContext.All) AddHandler WebView2.CoreWebView2.WebResourceResponseReceived, AddressOf ObserveResponse - AddHandler WebView2.CoreWebView2.WebResourceRequested, AddressOf ObserveHttp 'WebView2.CoreWebView2.Settings.UserAgent = My.Settings.User_Agend.Replace(Chr(34), "").Replace("User-Agent: ", "") + ' + 'WebView2.CoreWebView2.Settings.UserAgent = "Mozilla/5.0 (Windows NT 10.0; Trident/7.0; rv:11.0) like Gecko" My.Settings.User_Agend = Chr(34) + "User-Agent: " + WebView2.CoreWebView2.Settings.UserAgent + Chr(34) 'MsgBox(My.Settings.User_Agend) + If WebView2.CoreWebView2.Source = "about:blank" Or WebView2.CoreWebView2.Source = Nothing Then 'TextBox1.Text = Main.Startseite WebView2.CoreWebView2.Navigate(Main.Startseite) + End If + + End Sub + Private Sub WebView2_SourceChanged(sender As Object, e As CoreWebView2SourceChangedEventArgs) Handles WebView2.SourceChanged Try TextBox1.Text = WebView2.CoreWebView2.Source @@ -54,6 +58,8 @@ Public Class Browser ' Dim HTML As String = WebView2.CoreWebView2. 'TextBox1.Text = WebView2.CoreWebView2.Source ' Exit Sub + + If e.HttpStatusCode = 200 Then Dim DocumentTitle As String = WebView2.CoreWebView2.DocumentTitle @@ -66,6 +72,13 @@ Public Class Browser GetCookies(Main.WebbrowserURL) + Main.BowserWasOpen = True + + If Application.OpenForms().OfType(Of Anime_Add).Any = True Then + Anime_Add.btn_dl.Cursor = Cursors.Default + Anime_Add.btn_dl.BackgroundImage = My.Resources.main_button_download_default + End If + End If End Sub @@ -78,6 +91,7 @@ Public Class Browser Private Sub Browser_Load(sender As Object, e As EventArgs) Handles Me.Load + Main.waveOutSetVolume(0, 0) If Me.Width > My.Computer.Screen.Bounds.Width Then Me.Width = My.Computer.Screen.Bounds.Width @@ -108,6 +122,8 @@ Public Class Browser End Sub Private Sub Browser_FormClosing(sender As Object, e As FormClosingEventArgs) Handles Me.FormClosing + Main.BowserWasOpen = False + 'Main.UserBowser = False 'Me.Location = New Point(-10000, -10000) 'Main.LoadingUrl = "" @@ -121,10 +137,12 @@ Public Class Browser End Sub + Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click 'MsgBox(Main.CR_etp_rt) 'MsgBox(Main.CR_ajs_user_id) 'MsgBox(Main.CheckCRLogin.ToString) + Try My.Computer.Clipboard.SetText(WebView2.CoreWebView2.Source) MsgBox("copied: " + Chr(34) + WebView2.CoreWebView2.Source + Chr(34)) @@ -152,8 +170,6 @@ Public Class Browser Private Async Sub ObserveResponse(ByVal sender As Object, ByVal e As CoreWebView2WebResourceResponseReceivedEventArgs) - - If CBool(InStr(Main.LoadingUrl, "crunchyroll.com")) Then @@ -165,27 +181,35 @@ Public Class Browser Dim reader As New StreamReader(Content) ContentString = reader.ReadToEnd - Dim Loc_CR_Cookies = " -H " + Chr(34) + Main.CR_Cookies + Chr(34) - Dim Token() As String = ContentString.Split(New String() {Chr(34) + "access_token" + Chr(34) + ":" + Chr(34)}, System.StringSplitOptions.RemoveEmptyEntries) Dim Token2() As String = Token(1).Split(New String() {Chr(34) + "," + Chr(34)}, System.StringSplitOptions.RemoveEmptyEntries) Dim Auth As String = "Bearer " + Token2(0) Dim Auth2 As String = " -H " + Chr(34) + "Authorization: " + Auth + Chr(34) - Main.ProcessLoading(Main.LoadingUrl, Auth2, Loc_CR_Cookies) + Main.ProcessLoading(Main.LoadingUrl, Auth2, Loc_CR_Cookies, 0) Main.CR_v1Token = "" 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 Debug.WriteLine("Crunchyroll-Season: " + e.Request.Uri) Main.LoadedUrls.Add(e.Request) Exit Sub + 'ElseIf CBool(InStr(e.Request.Uri, "crunchyroll.com/")) And CBool(InStr(e.Request.Uri, "content/v2/cms/objects/")) Then + ' Debug.WriteLine("Crunchyroll-objects added to cache: " + e.Request.Uri) + ' Main.LoadedUrls.Add(e.Request) + + ' 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 + ' Debug.WriteLine("Crunchyroll-objects added to cache: " + e.Request.Uri) + ' Main.LoadedUrls.Add(e.Request) + + ' Exit Sub End If + + ElseIf CBool(InStr(Main.LoadingUrl, "funimation.com")) Then If CBool(InStr(e.Request.Uri, "?deviceType=web")) Then 'Debug.WriteLine(e.Request.Uri) @@ -251,87 +275,40 @@ Public Class Browser Next End If - If CBool(InStr(e.Request.Uri, "crunchyroll.com/")) And CBool(InStr(e.Request.Uri, "streams?")) Then - Dim Headers As New List(Of KeyValuePair(Of String, String)) - Headers.AddRange(e.Request.Headers.ToList) - For i As Integer = 0 To Headers.Count - If CBool(InStr(Headers.Item(i).Value, "Bearer")) Then - Main.CR_AuthToken = Headers.Item(i).Value - Debug.WriteLine("Auth-Bearer: " + Main.CR_AuthToken) - End If - Next + 'If CBool(InStr(e.Request.Uri, "crunchyroll.com/")) And CBool(InStr(e.Request.Uri, "streams?")) Then + ' Dim Headers As New List(Of KeyValuePair(Of String, String)) + ' Headers.AddRange(e.Request.Headers.ToList) + ' For i As Integer = 0 To Headers.Count + ' If CBool(InStr(Headers.Item(i).Value, "Bearer")) Then + ' Main.CR_AuthToken = Headers.Item(i).Value + ' Debug.WriteLine("Auth-Bearer: " + Main.CR_AuthToken) + ' End If + ' Next + 'End If + + ' + ' + If CBool(InStr(e.Request.Uri, "9016.2bd48f1e07adf6596b2d.js")) = True Then ' + Debug.WriteLine(e.Request.Uri) + 'MsgBox("Found!") + e.Response = WebView2.CoreWebView2.Environment.CreateWebResourceResponse(StringToStream(File.ReadAllText(Application.StartupPath + "\WebInterface\9016.2bd48f1e07adf6596b2d.js"), Encoding.UTF8), 200, "Not found", "content-type: application/javascript") + + End If - Exit Sub - - If CBool(InStr(Main.LoadingUrl, "crunchyroll.com")) Then - - If CBool(InStr(e.Request.Uri, "crunchyroll.com/")) And CBool(InStr(e.Request.Uri, "streams?")) Then - Debug.WriteLine("Crunchyroll-Single: " + e.Request.Uri) - 'Dim ContentString As String = Nothing - 'Dim Content As New MemoryStream - 'e.Response.Content.CopyTo(Content) - 'Content.Position = 0 - 'ContentString = Encoding.UTF8.GetString(Content.ToArray()) - 'MsgBox(ContentString) - Main.LoadedUrls.Add(e.Request) - 'Main.CR_VideoJson = New UrlJson(e.Request.Uri, e.Request.Content.ToString) - Exit Sub - ElseIf CBool(InStr(e.Request.Uri, "crunchyroll.com/")) And CBool(InStr(e.Request.Uri, "/objects/")) And CBool(InStr(e.Request.Uri, "/watch/")) Then - Debug.WriteLine(e.Request.Uri) - Main.LoadedUrls.Add(e.Request) - 'Main.CR_ObjectsJson = New UrlJson(e.Request.Uri, e.Request.Content.ToString) - Exit Sub - ElseIf CBool(InStr(e.Request.Uri, "crunchyroll.com/")) And CBool(InStr(e.Request.Uri, "seasons?preferred_audio_language=")) Then - Debug.WriteLine("Crunchyroll-Season: " + e.Request.Uri) - Main.LoadedUrls.Add(e.Request) - 'Main.CR_SeasonJson = New UrlJson(e.Request.Uri, e.Request.Content.ToString) - Exit Sub - End If - - - - - ElseIf CBool(InStr(Main.LoadingUrl, "funimation.com")) Then - If CBool(InStr(e.Request.Uri, "?deviceType=web")) Then - 'Debug.WriteLine(e.Request.Uri) - Dim parms As String() = e.Request.Uri.Split(New String() {"?deviceType="}, System.StringSplitOptions.RemoveEmptyEntries) - Main.FunimationDeviceRegion = "?deviceType=" + parms(1) - - End If - If CBool(InStr(e.Request.Uri, "https://title-api.prd.funimationsvc.com")) Then - Debug.WriteLine("Funimtaion: " + e.Request.Uri) - If (Me.InvokeRequired) Then - Me.Invoke(Sub() Main.LoadedUrls.Add(e.Request)) - Exit Sub - Else - Main.LoadedUrls.Add(e.Request) - Exit Sub - End If - ElseIf CBool(InStr(e.Request.Uri, "/data/v2/shows/")) Then - Debug.WriteLine("Funimtaion: " + e.Request.Uri) - If (Me.InvokeRequired) Then - Me.Invoke(Sub() Main.LoadedUrls.Add(e.Request)) - Exit Sub - Else - Main.LoadedUrls.Add(e.Request) - Exit Sub - End If - ElseIf CBool(InStr(e.Request.Uri, "/data/v1/episodes/")) Then - Debug.WriteLine("Funimtaion: " + e.Request.Uri) - If (Me.InvokeRequired) Then - Me.Invoke(Sub() Main.LoadedUrls.Add(e.Request)) - Exit Sub - Else - Main.LoadedUrls.Add(e.Request) - Exit Sub - End If - End If - - End If End Sub + + Public Function StringToStream(input As String, enc As Encoding) As Stream + Dim memoryStream = New MemoryStream() + Dim streamWriter = New StreamWriter(memoryStream, enc) + streamWriter.Write(input) + streamWriter.Flush() + memoryStream.Position = 0 + Return memoryStream + End Function + Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick 'If Main.UserBowser = False Then ' WebView2.Reload() diff --git a/Crunchyroll Downloader/GetData.vb b/Crunchyroll Downloader/GetData.vb index 0b1ffd6..43cdc9e 100644 --- a/Crunchyroll Downloader/GetData.vb +++ b/Crunchyroll Downloader/GetData.vb @@ -7,6 +7,8 @@ Module GetData Public Function Curl(ByVal Url As String) As String + 'MsgBox(Url) + Dim exepath As String = Path.Combine(Application.StartupPath, "lib", "curl.exe") Dim startinfo As New System.Diagnostics.ProcessStartInfo Dim sr As StreamReader @@ -50,21 +52,16 @@ Module GetData 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 + If CBool(InStr(CurlError, "curl")) Then + Debug.WriteLine(CurlError) + Throw New System.Exception("Error - Getting" + vbNewLine + CurlError) + Return Nothing + ElseIf CBool(InStr(CurlOutput, "curl")) Then + Debug.WriteLine(CurlOutput) + Throw New System.Exception("Error - Getting" + vbNewLine + CurlError) + Return Nothing Else - Debug.WriteLine("curl-E: " + "curl: ") - Return CurlError + Return CurlOutput End If @@ -118,28 +115,26 @@ Module GetData 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 + If CBool(InStr(CurlError, "curl")) Then + Debug.WriteLine(CurlError) + Throw New System.Exception("Error - Getting" + vbNewLine + CurlError) + Return Nothing + ElseIf CBool(InStr(CurlOutput, "curl")) Then + Debug.WriteLine(CurlOutput) + Throw New System.Exception("Error - Getting" + vbNewLine + CurlError) + Return Nothing Else - Debug.WriteLine("CurlPost-E: " + "curl: ") - Return CurlError + Return CurlOutput End If End Function - Public Function CurlAuthNew(ByVal Url As String, ByVal Cookies As String, ByVal Auth As String) As String + Public Function CurlAuthNew(ByVal Url As String, ByVal Cookies As String, ByVal Auth As String, Optional ByVal Test As Boolean = False) As String + If Test = True Then + Throw New System.Exception("Error - Getting" + vbNewLine + "Test") + End If Dim exepath As String = Path.Combine(Application.StartupPath, "lib", "curl.exe") @@ -190,10 +185,12 @@ Module GetData - If CurlOutput = Nothing Or CBool(InStr(CurlOutput, "curl")) Then - Throw New System.Exception("Error - Getting ObjectJson data" + vbNewLine + CurlOutput) + If CBool(InStr(CurlError, "curl")) Then + Debug.WriteLine(CurlError) + Throw New System.Exception("Error - Getting" + vbNewLine + CurlError) Return Nothing - ElseIf CBool(InStr(CurlError, "curl")) Then + ElseIf CBool(InStr(CurlOutput, "curl")) Then + Debug.WriteLine(CurlOutput) Throw New System.Exception("Error - Getting" + vbNewLine + CurlError) Return Nothing Else diff --git a/Crunchyroll Downloader/Main.vb b/Crunchyroll Downloader/Main.vb index 2a6e7a5..d104ad6 100644 --- a/Crunchyroll Downloader/Main.vb +++ b/Crunchyroll Downloader/Main.vb @@ -158,6 +158,7 @@ Public Class Main Public WebbrowserTitle As String = Nothing Public WebbrowserCookie As String = Nothing Public UserBowser As Boolean = False + Public BowserWasOpen As Boolean = False Public HybridMode As Boolean = False Public HardSubFunimation As String = "Disabled" Public Funimation_Bitrate As Integer = 0 @@ -438,6 +439,7 @@ Public Class Main Trace.Listeners.Add(tbtl) b = True Thread.CurrentThread.Name = "Main" + Debug.WriteLine("v" + Application.ProductVersion) Debug.WriteLine("Thread Name: " + Thread.CurrentThread.Name) @@ -980,12 +982,12 @@ Public Class Main End Sub - 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)) + Public Sub GetCRVideoProxy(ByVal requesturl As String, ByVal AuthToken As String, ByVal WebsiteURL As String, ByVal RT_count As Integer) + Dim Evaluator = New Thread(Sub() Me.GetCRVideo(requesturl, AuthToken, WebsiteURL, RT_count)) Evaluator.Start() End Sub - Public Sub GetCRVideo(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, ByVal RT_count As Integer) If b = False Then b = True End If @@ -1204,6 +1206,8 @@ Public Class Main Dim VideoJObject As JObject = JObject.Parse(VideoJson) Dim VideoData As List(Of JToken) = VideoJObject.Children().ToList + Dim download_hls As CR_Beta_Stream = Nothing + For Each item As JProperty In VideoData item.CreateReader() Select Case item.Name @@ -1214,7 +1218,7 @@ Public Class Main For Each VideoSubItem As JProperty In VideoSubData Dim JsonEntryFormat As String = VideoSubItem.Name - If CBool(InStr(JsonEntryFormat, "drm")) Or CBool(InStr(JsonEntryFormat, "dash")) Or CBool(InStr(JsonEntryFormat, "download")) Or CBool(InStr(JsonEntryFormat, "urls")) Then ' + If CBool(InStr(JsonEntryFormat, "drm")) Or CBool(InStr(JsonEntryFormat, "dash")) Or CBool(InStr(JsonEntryFormat, "urls")) Then ' Or CBool(InStr(JsonEntryFormat, "download")) workaround http 502 / false http 400 Continue For End If @@ -1233,6 +1237,11 @@ Public Class Main SubLang = "" End If + If CBool(InStr(JsonEntryFormat, "download")) Then + download_hls = New CR_Beta_Stream(SubLang, JsonEntryFormat, Url) + Continue For + End If + CR_Streams.Add(New CR_Beta_Stream(SubLang, JsonEntryFormat, Url)) Next @@ -1240,6 +1249,9 @@ Public Class Main Next + If download_hls IsNot Nothing Then + CR_Streams.Add(download_hls) + End If Next Case "meta" 'each record is inside the entries array For Each MetaEntrys As JProperty In item.Values @@ -1469,22 +1481,22 @@ Public Class Main If CR_Chapters = True Then - - - Dim ChaptersUrl As String = "https://static.crunchyroll.com/datalab-intro-v2/" + CR_EpisodeID + ".json" Dim ChaptersJson As String = Nothing - - - ChaptersJson = Curl(ChaptersUrl) - - If CBool(InStr(ChaptersJson, "curl:")) = True Then + Dim ChaptersUrl As String = "https://static.crunchyroll.com/datalab-intro-v2/" + CR_EpisodeID + ".json" + Try ChaptersJson = Curl(ChaptersUrl) - End If - If CBool(InStr(ChaptersJson, "curl:")) = True Then - ChaptersJson = Nothing - Debug.WriteLine("no Chapter data... ignoring") - End If + If CBool(InStr(ChaptersJson, "curl:")) = True Then + ChaptersJson = Curl(ChaptersUrl) + End If + + If CBool(InStr(ChaptersJson, "curl:")) = True Then + ChaptersJson = Nothing + Debug.WriteLine("no Chapter data... ignoring") + End If + Catch ex As Exception + + End Try If ChaptersJson IsNot Nothing Then @@ -1642,16 +1654,28 @@ Public Class Main For i As Integer = 0 To CR_URI_Master.Count - 1 + Dim Count As String = (i + 1).ToString + Try + str = Curl(CR_URI_Master(i)) + If CBool(InStr(str, "curl:")) = False Then + Exit For + End If + Catch ex As Exception - str = Curl(CR_URI_Master(i)) - - If CBool(InStr(str, "curl:")) = False Then - Exit For - End If + Me.Invoke(New Action(Function() As Object + Anime_Add.StatusLabel.Text = "failed accessing master.m3u8 " + Count + "/" + CR_URI_Master.Count.ToString + Me.Text = "failed accessing master.m3u8 " + Count + "/" + CR_URI_Master.Count.ToString + Me.Invalidate() + Return Nothing + End Function)) + Debug.WriteLine("Error accessing master #" + i.ToString + " -- " + CR_URI_Master(i)) + Pause(5) + End Try Next - If CBool(InStr(str, "curl:")) = True Then + + If CBool(InStr(str, "curl:")) = True Or str = Nothing Then Debug.WriteLine("Checked " + CR_URI_Master.Count.ToString) MsgBox("Unable to get master.m3u8" + vbNewLine + str, MsgBoxStyle.Critical) @@ -1980,7 +2004,18 @@ Public Class Main ElseIf CBool(InStr(ex.ToString, Chr(34) + "UserAbort" + Chr(34))) Then MsgBox(ex.ToString, MsgBoxStyle.Information) ElseIf CBool(InStr(ex.ToString, "Error - Getting")) Then - Navigate(WebsiteURL) + If RT_count = 0 Then + If File.Exists("cookies.txt") = True Then + MsgBox("Request refused, try a new cookies.txt", MsgBoxStyle.Exclamation) + End If + Navigate(WebsiteURL) + Pause(5) + LoadBrowser(WebsiteURL, 1) + Exit Sub + End If + MsgBox(ex.ToString) + ' b = False + ' Navigate(WebsiteURL) Else MsgBox(ex.ToString, MsgBoxStyle.Information) End If @@ -2189,7 +2224,7 @@ Public Class Main End Sub Private Sub Btn_Browser_Click(sender As Object, e As EventArgs) Handles Btn_Browser.Click - Debug.WriteLine(Date.Now.ToString + "." + Date.Now.Millisecond.ToString) + 'Debug.WriteLine(Date.Now.ToString + "." + Date.Now.Millisecond.ToString) UserBowser = True If Application.OpenForms().OfType(Of Browser).Any = True Then @@ -2922,7 +2957,20 @@ Public Class Main Dim Funimation_m3u8_final As String = Nothing Dim client0 As New WebClient client0.Encoding = Encoding.UTF8 - If DownloadScope = 1 Then + If DownloadScope = DownloadScopeEnum.SubsOnly Then + + Me.Invoke(New Action(Function() As Object + Me.Text = "Status: Substitles only mode - skipped video" + Anime_Add.StatusLabel.Text = "Status: Substitles only mode - skipped video" + Me.Invalidate() + Return Nothing + End Function)) + + 'ElseIf DownloadScope = DownloadScopeEnum.MergeAudio Then + + + ElseIf DownloadScope = DownloadScopeEnum.OldDefault Or DownloadScope = DownloadScopeEnum.MergeAudio Or DownloadScope = DownloadScopeEnum.AudioOnly Then + For i As Integer = 0 To VideoStreams.Count - 1 If VideoStreams(i).Primary = True Then Funimation_m3u8_Primary = VideoStreams(i).Url @@ -2946,6 +2994,7 @@ Public Class Main Funimation_m3u8_MainVersion = Funimation_m3u8_Primary_Version FunimationDub = ConvertFunimationDub(ConvertJsonToFunimationDub(Funimation_m3u8_Primary_audioLanguage)) End If + If Funimation_m3u8_Main = Nothing Then If MessageBox.Show("No media matching your settings." + vbNewLine + "Avalible: Not implimentented, press 'Yes' to copy the data into the clipboard.", "No media", MessageBoxButtons.YesNo) = DialogResult.Yes Then Me.Invoke(New Action(Function() As Object @@ -3113,13 +3162,7 @@ Public Class Main End If Debug.WriteLine("Funimation_m3u8_final: " + Funimation_m3u8_final) Funimation_m3u8_final = Funimation_m3u8_final.Replace(Chr(34), "") - Else - Me.Invoke(New Action(Function() As Object - Me.Text = "Status: Substitles only mode - skipped video" - Anime_Add.StatusLabel.Text = "Status: Substitles only mode - skipped video" - Me.Invalidate() - Return Nothing - End Function)) + End If 'MsgBox(FunimationName3) Dim ResoHTMLDisplay As String = Reso.ToString + "p" @@ -3503,7 +3546,7 @@ Public Class Main End If Me.Text = "Status: Crunchyroll episode found." Debug.WriteLine("Crunchyroll episode found") - GetCRVideoProxy(Request.Uri, CR_AuthToken, WebbrowserURL) + GetCRVideoProxy(Request.Uri, CR_AuthToken, WebbrowserURL, 0) b = True LoadedUrls.Clear() Me.Text = "Crunchyroll Downloader" @@ -4033,6 +4076,8 @@ Public Class Main Return "text/html" ElseIf (httpRequest.EndsWith("txt")) Then Return "text/plain" + ElseIf (httpRequest.EndsWith("css")) Then + Return "text/css" ElseIf (httpRequest.EndsWith("gif")) Then Return "image/gif" ElseIf (httpRequest.EndsWith("jpg")) Then @@ -4294,7 +4339,7 @@ Public Class Main #Region "Process Urls" - Public Sub LoadBrowser(ByVal Url As String) + Public Sub LoadBrowser(ByVal Url As String, Optional ByVal RT_count As Integer = 0) LoadingUrl = Url @@ -4391,7 +4436,7 @@ Public Class Main End If - Debug.WriteLine("###" + CR_Cookies + "###") + 'Debug.WriteLine("###" + CR_Cookies + "###") Dim Loc_CR_Cookies = " -H " + Chr(34) + CR_Cookies + Chr(34) @@ -4448,14 +4493,14 @@ Public Class Main Dim Auth2 As String = " -H " + Chr(34) + "Authorization: " + CRBetaBearer + Chr(34) - ProcessLoading(Url, Auth2, Loc_CR_Cookies) + ProcessLoading(Url, Auth2, Loc_CR_Cookies, RT_count) Else 'to do End If End Sub - Public Sub ProcessLoading(ByVal url As String, Auth2 As String, ByVal Loc_CR_Cookies As String) + Public Sub ProcessLoading(ByVal url As String, Auth2 As String, ByVal Loc_CR_Cookies As String, ByVal RT_Count As Integer) If CBool(InStr(url, "crunchyroll.com")) = True And CBool(InStr(url, "series/")) = True Then @@ -4538,7 +4583,7 @@ Public Class Main Exit Sub End Try - GetCRVideoProxy(StreamsUrl, Auth2, url) + GetCRVideoProxy(StreamsUrl, Auth2, url, RT_Count) Else diff --git a/Crunchyroll Downloader/My Project/AssemblyInfo.vb b/Crunchyroll Downloader/My Project/AssemblyInfo.vb index df9933a..432f990 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: ' - - + +