From 04e9730ad1e12d105c102687c855fc816a37f5bd Mon Sep 17 00:00:00 2001 From: hama3254 <52826614+hama3254@users.noreply.github.com> Date: Thu, 4 Apr 2024 19:52:43 +0200 Subject: [PATCH] switch to the new api (switch endpoiunt) switch to the new api with every abomination i could think of #918 --- .vs/Crunchyroll Downloader/v17/.suo | Bin 225280 -> 221184 bytes Crunchyroll Downloader/Anime_Add.vb | 8 +- Crunchyroll Downloader/Browser.vb | 30 +- Crunchyroll Downloader/CRD_List_Item.vb | 103 +++--- Crunchyroll Downloader/Main.vb | 307 +++++++++--------- .../My Project/AssemblyInfo.vb | 4 +- .../My Project/Resources.Designer.vb | 163 ---------- .../My Project/Resources.resx | 55 ---- 8 files changed, 239 insertions(+), 431 deletions(-) diff --git a/.vs/Crunchyroll Downloader/v17/.suo b/.vs/Crunchyroll Downloader/v17/.suo index adcd8e001a44973410ef43c06f685bb70a92bf61..11424aa85e1daf807ef5192ac1d080fa64ff6e3f 100644 GIT binary patch delta 8062 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 PeUNkCbcIIwli%}Sin$Ns delta 9385 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 diff --git a/Crunchyroll Downloader/Anime_Add.vb b/Crunchyroll Downloader/Anime_Add.vb index daa389f..62b3946 100644 --- a/Crunchyroll Downloader/Anime_Add.vb +++ b/Crunchyroll Downloader/Anime_Add.vb @@ -723,10 +723,10 @@ Public Class Anime_Add End Sub Private Sub SubTitlesOnlyCB_SelectedIndexChanged(sender As Object, e As EventArgs) Handles DownloadScope.SelectedIndexChanged - DownloadScope.SelectedIndex = DownloadScopeEnum.SubsOnly - 'Main.DownloadScope = DownloadScope.SelectedIndex - 'My.Settings.DownloadScope = Main.DownloadScope - 'My.Settings.Save() + 'DownloadScope.SelectedIndex = DownloadScopeEnum.OldDefault + Main.DownloadScope = DownloadScope.SelectedIndex + My.Settings.DownloadScope = Main.DownloadScope + My.Settings.Save() End Sub diff --git a/Crunchyroll Downloader/Browser.vb b/Crunchyroll Downloader/Browser.vb index c853a30..4856a18 100644 --- a/Crunchyroll Downloader/Browser.vb +++ b/Crunchyroll Downloader/Browser.vb @@ -21,7 +21,7 @@ Public Class Browser Try WebView2.CoreWebView2.AddWebResourceRequestedFilter("https://www.crunchyroll.com/*", CoreWebView2WebResourceContext.All) WebView2.CoreWebView2.AddWebResourceRequestedFilter("https://www.funimation.com/*", CoreWebView2WebResourceContext.All) - 'WebView2.CoreWebView2.AddWebResourceRequestedFilter("https://cr-play-service.prd.crunchyrollsvc.com/*", CoreWebView2WebResourceContext.All) + WebView2.CoreWebView2.AddWebResourceRequestedFilter("https://cr-play-service.prd.crunchyrollsvc.com/*", CoreWebView2WebResourceContext.All) ' WebView2.CoreWebView2.AddWebResourceRequestedFilter("*", CoreWebView2WebResourceContext.All) 'cr-play-service.prd.crunchyrollsvc.com 'WebView2.CoreWebView2.AddWebResourceRequestedFilter("*", CoreWebView2WebResourceContext.All) @@ -49,7 +49,6 @@ Public Class Browser End Sub - Private Sub WebView2_SourceChanged(sender As Object, e As CoreWebView2SourceChangedEventArgs) Handles WebView2.SourceChanged Try TextBox1.Text = WebView2.CoreWebView2.Source @@ -101,9 +100,17 @@ Public Class Browser End Try End Sub + Async Sub Startup() + Dim WVOptions As New CoreWebView2EnvironmentOptions() + + WVOptions.AdditionalBrowserArguments = "--disable-web-security" '+ " " + "--disable-cache" + " " + "--disk-cache-size=1" + " " + "--disable-gpu" '+ '" " + "--use-fake-device-for-media-stream" "--disable-web-security" + " " + + Dim Env As CoreWebView2Environment = Await CoreWebView2Environment.CreateAsync(Nothing, Nothing, WVOptions) + Await WebView2.EnsureCoreWebView2Async(Env) + + End Sub Private Sub Browser_Load(sender As Object, e As EventArgs) Handles Me.Load - + Startup() Main.waveOutSetVolume(0, 0) If Me.Width > My.Computer.Screen.Bounds.Width Then Me.Width = My.Computer.Screen.Bounds.Width @@ -149,7 +156,6 @@ 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) @@ -282,13 +288,23 @@ Public Class Browser If CBool(InStr(Headers.Item(i).Value, "Basic")) Then Main.CrBetaBasic = Headers.Item(i).Value Debug.WriteLine("Auth-Basic: " + Main.CrBetaBasic) - ElseIf 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, "crunchyrollsvc.com")) = True And Main.CR_AuthToken = Nothing 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 + ' Debug.WriteLine(Headers.Item(i).Key + "--" + Headers.Item(i).Value) + ' If CBool(InStr(Headers.Item(i).Key, "ETP-Anonymous-ID")) Then + ' Main.CR_AuthToken = Headers.Item(i).Value + ' Debug.WriteLine("ETP-Anonymous-ID: " + Main.CR_AuthToken) + ' End If + ' 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) diff --git a/Crunchyroll Downloader/CRD_List_Item.vb b/Crunchyroll Downloader/CRD_List_Item.vb index 6737db3..503bd78 100644 --- a/Crunchyroll Downloader/CRD_List_Item.vb +++ b/Crunchyroll Downloader/CRD_List_Item.vb @@ -492,7 +492,7 @@ Public Class CRD_List_Item HybridMode = True HybridRunning = True Else - DownloadFFMPEG(DL_URL, DL_Pfad, Filename) + DownloadFFMPEG("-protocol_whitelist file,http,https,tcp,tls,crypto,data " + DL_URL, DL_Pfad, Filename) End If End Sub @@ -1151,19 +1151,6 @@ Public Class CRD_List_Item Dim int As Integer = i - If CBool(InStr(InuputStreams(int), ":\")) Then - Continue For - End If - - Dim InputURL As String() = InuputStreams(int).Split(New [Char]() {Chr(34)}) - Dim InputClient As New WebClient - InputClient.Encoding = Encoding.UTF8 - - If Main.WebbrowserCookie = Nothing Then - Else - InputClient.Headers.Add(HttpRequestHeader.Cookie, Main.WebbrowserCookie) - - End If Dim SubsFile As String = Pfad2 + GeräteID() + ".txt" If File.Exists(SubsFile) Then @@ -1171,33 +1158,53 @@ Public Class CRD_List_Item End If Try - Dim InputData As String = Nothing - Try - InputData = InputClient.DownloadString(InputURL(0)) - Catch ex As Exception - InputClient.Headers.Add(HttpRequestHeader.AcceptEncoding, "*") - InputData = DecompressString(InputClient.DownloadData(InputURL(0))) - End Try + Dim InputData As String = Nothing + Dim InputPath As String = Nothing + If CBool(InStr(InuputStreams(int), ":\")) = True Then + Dim InputFile As String() = InuputStreams(int).Split(New [Char]() {Chr(34)}) + InputPath = InputFile(0) + InputData = My.Computer.FileSystem.ReadAllText(InputPath) + + Else + Dim InputURL As String() = InuputStreams(int).Split(New [Char]() {Chr(34)}) + InputPath = InputURL(0) + Dim InputClient As New WebClient + InputClient.Encoding = Encoding.UTF8 + + If Main.WebbrowserCookie = Nothing Then + Else + InputClient.Headers.Add(HttpRequestHeader.Cookie, Main.WebbrowserCookie) + + End If + + Try + InputData = InputClient.DownloadString(InputURL(0)) + Catch ex As Exception + InputClient.Headers.Add(HttpRequestHeader.AcceptEncoding, "*") + InputData = DecompressString(InputClient.DownloadData(InputURL(0))) + End Try + + End If If InputData = Nothing Then Throw New System.Exception("No Input Data...") End If - If CBool(InStr(InputData, "RESOLUTION=")) = True And CBool(InStr(InputData, "#EXT-X-BYTERANGE:")) = False Then 'master m3u8 no fragments + 'If CBool(InStr(InputData, "RESOLUTION=")) = True And CBool(InStr(InputData, "#EXT-X-BYTERANGE:")) = False Then 'master m3u8 no fragments - Dim index_m3u8() As String = InputData.Split(New String() {vbLf}, System.StringSplitOptions.RemoveEmptyEntries) - If TargetReso = 42 Then - TargetReso = 1080 - End If - For line As Integer = 0 To index_m3u8.Count - 1 - If CBool(InStr(index_m3u8(line), "x" + TargetReso.ToString)) = True Then + ' Dim index_m3u8() As String = InputData.Split(New String() {vbLf}, System.StringSplitOptions.RemoveEmptyEntries) + ' If TargetReso = 42 Then + ' TargetReso = 1080 + ' End If + ' For line As Integer = 0 To index_m3u8.Count - 1 + ' If CBool(InStr(index_m3u8(line), "x" + TargetReso.ToString)) = True Then - InputData = InputClient.DownloadString(GetFullUri(InputURL(0), index_m3u8(line + 1))) - InputURL(0) = index_m3u8(line + 1) - Exit For - End If - Next - End If + ' InputData = InputClient.DownloadString(GetFullUri(InputURL(0), index_m3u8(line + 1))) + ' InputURL(0) = index_m3u8(line + 1) + ' Exit For + ' End If + ' Next + 'End If If CBool(InStr(InputData, "#EXT-X-VERSION:3")) Or CBool(InStr(InputData, "#EXT-X-VERSION:5")) Then @@ -1205,13 +1212,23 @@ Public Class CRD_List_Item Pfad2 = Path.GetDirectoryName(DL_Pfad.Replace(Chr(34), "")) + "\" + NameP2.Replace(" ", "-") + "\" End If - ProcessV3(InputURL(0), InputData, Pfad2, DL_Pfad, DL_URL) + ProcessV3(InputPath, InputData, Pfad2, DL_Pfad, DL_URL) - DL_URL = DL_URL.Replace("-i " + Chr(34) + InputURL(0), "-allowed_extensions ALL " + "-i " + Chr(34) + Pfad2 + "index.m3u8") + If CBool(InStr(DL_URL, "-allowed_extensions ALL ")) = True Then + DL_URL = DL_URL.Replace("-allowed_extensions ALL ", "") + End If + + DL_URL = DL_URL.Replace("-i " + Chr(34) + InputPath, "-allowed_extensions ALL " + "-i " + Chr(34) + Pfad2 + "index.m3u8") ElseIf CBool(InStr(InputData, "#EXT-X-VERSION:4")) Then - ProcessV4(InputURL(0), InputData, Pfad2 + "Stream-" + int.ToString + "\") - DL_URL = DL_URL.Replace("-i " + Chr(34) + InputURL(0), "-allowed_extensions ALL " + "-i " + Chr(34) + Pfad2 + "Stream-" + int.ToString + "\index.m3u8") + ProcessV4(InputPath, InputData, Pfad2 + "Stream-" + int.ToString + "\") + + + If CBool(InStr(DL_URL, "-allowed_extensions ALL ")) = True Then + DL_URL = DL_URL.Replace("-allowed_extensions ALL ", "") + End If + + DL_URL = DL_URL.Replace("-i " + Chr(34) + InputPath, "-allowed_extensions ALL " + "-i " + Chr(34) + Pfad2 + "Stream-" + int.ToString + "\index.m3u8") Else 'write string to file If Not Directory.Exists(Path.GetDirectoryName(Pfad2)) Then @@ -1244,11 +1261,11 @@ Public Class CRD_List_Item Using sink As New StreamWriter(SubsFile, False, utf8WithoutBom2) - sink.WriteLine(InputData) - End Using - 'replace url with local file - DL_URL = DL_URL.Replace(InputURL(0), SubsFile) - End If + sink.WriteLine(InputData) + End Using + 'replace url with local file + DL_URL = DL_URL.Replace(InputPath, SubsFile) + End If Catch ex As Exception Debug.WriteLine(ex.ToString) DL_URL = DL_URL_old diff --git a/Crunchyroll Downloader/Main.vb b/Crunchyroll Downloader/Main.vb index a823398..a1de6ff 100644 --- a/Crunchyroll Downloader/Main.vb +++ b/Crunchyroll Downloader/Main.vb @@ -30,7 +30,6 @@ Public Class Main Public CheckCRLogin As Boolean = True - Public CR_AuthToken As String = "" Public CR_v1Token As String = "" @@ -445,7 +444,7 @@ Public Class Main DarkModeValue = My.Settings.DarkModeValue - DownloadScope = DownloadScopeEnum.SubsOnly 'My.Settings.DownloadScope + DownloadScope = My.Settings.DownloadScope Manager.Style = MetroColorStyle.Orange If DarkModeValue = True Then @@ -1735,68 +1734,68 @@ Public Class Main 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) - Dim ObjectsURLBuilder4() As String = ObjectsURLBuilder3(1).Split(New String() {"/"}, System.StringSplitOptions.RemoveEmptyEntries) - Dim ObjectsURL As String = ObjectsURLBuilder(0) + "objects/" + ObjectsURLBuilder4(0) + ObjectsURLBuilder2(1) + 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) + Dim ObjectsURLBuilder4() As String = ObjectsURLBuilder3(1).Split(New String() {"/"}, System.StringSplitOptions.RemoveEmptyEntries) + Dim ObjectsURL As String = ObjectsURLBuilder(0) + "objects/" + ObjectsURLBuilder4(0) + ObjectsURLBuilder2(1) - CR_EpisodeID = ObjectsURLBuilder4(0) + CR_EpisodeID = ObjectsURLBuilder4(0) - Debug.WriteLine(ObjectsURL) + Debug.WriteLine(ObjectsURL) - ObjectJson = CurlAuthNew(ObjectsURL, Loc_CR_Cookies, Loc_AuthToken) + ObjectJson = CurlAuthNew(ObjectsURL, Loc_CR_Cookies, Loc_AuthToken) - 'Filter JSON esqaped characters - 'Debug.WriteLine(Date.Now.ToString + "before:" + ObjectJson) - Debug.WriteLine("1288: " + ObjectJson) - ObjectJson = CleanJSON(ObjectJson) - 'Debug.WriteLine(Date.Now.ToString + "after:" + ObjectJson) + 'Filter JSON esqaped characters + 'Debug.WriteLine(Date.Now.ToString + "before:" + ObjectJson) + Debug.WriteLine("1288: " + ObjectJson) + ObjectJson = CleanJSON(ObjectJson) + 'Debug.WriteLine(Date.Now.ToString + "after:" + ObjectJson) - Dim ser As JObject = JObject.Parse(ObjectJson) - Dim data As List(Of JToken) = ser.Children().ToList + Dim ser As JObject = JObject.Parse(ObjectJson) + Dim data As List(Of JToken) = ser.Children().ToList - For Each item As JProperty In data - item.CreateReader() - Select Case item.Name + For Each item As JProperty In data + item.CreateReader() + Select Case item.Name - Case "data" 'each record is inside the entries array - For Each Entry As JObject In item.Values - Try - Dim Title As String = Entry("title").ToString - CR_title = String.Join(" ", Title.Split(invalids, StringSplitOptions.RemoveEmptyEntries)).TrimEnd("."c).Replace(Chr(34), "").Replace("\", "").Replace("/", "").Replace(":", "") - Debug.WriteLine(Date.Now.ToString + " CR-Title: " + CR_title) - Catch ex As Exception - End Try - Dim SubData As List(Of JToken) = Entry.Children().ToList - For Each SubItem As JProperty In SubData - 'SubItem.CreateReader() - Select Case SubItem.Name - Case "episode_metadata" - For Each SubEntry As JProperty In SubItem.Values - Select Case SubEntry.Name - Case "series_title" - CR_series_title = SubEntry.Value.ToString.Replace(Chr(34), "").Replace("\", "").Replace("/", "").Replace(":", "") + Case "data" 'each record is inside the entries array + For Each Entry As JObject In item.Values + Try + Dim Title As String = Entry("title").ToString + CR_title = String.Join(" ", Title.Split(invalids, StringSplitOptions.RemoveEmptyEntries)).TrimEnd("."c).Replace(Chr(34), "").Replace("\", "").Replace("/", "").Replace(":", "") + Debug.WriteLine(Date.Now.ToString + " CR-Title: " + CR_title) + Catch ex As Exception + End Try + Dim SubData As List(Of JToken) = Entry.Children().ToList + For Each SubItem As JProperty In SubData + 'SubItem.CreateReader() + Select Case SubItem.Name + Case "episode_metadata" + For Each SubEntry As JProperty In SubItem.Values + Select Case SubEntry.Name + Case "series_title" + CR_series_title = SubEntry.Value.ToString.Replace(Chr(34), "").Replace("\", "").Replace("/", "").Replace(":", "") 'Case "season_title" ' CR_season_title = SubEntry.Value.ToString - Case "season_number" - CR_season_number = SubEntry.Value.ToString.Replace(Chr(34), "").Replace("\", "").Replace("/", "").Replace(":", "") - Case "episode_number" - CR_episode2 = SubEntry.Value.ToString.Replace(Chr(34), "").Replace("\", "").Replace("/", "").Replace(":", "") - Case "episode" - CR_episode = SubEntry.Value.ToString.Replace(Chr(34), "").Replace("\", "").Replace("/", "").Replace(":", "") - Case "duration_ms" - CR_episode_duration_ms = SubEntry.Value.ToString.Replace(Chr(34), "").Replace("\", "").Replace("/", "").Replace(":", "") - Case "is_dubbed" - CR_audio_isDubbed = CBool(SubEntry.Value.ToString.Replace(Chr(34), "").Replace("\", "").Replace("/", "").Replace(":", "")) - 'Case "eligible_region" - ' CR_Region = SubEntry.Value.ToString.Replace(Chr(34), "").Replace("\", "").Replace("/", "").Replace(":", "") - End Select - Next ' - End Select - Next + Case "season_number" + CR_season_number = SubEntry.Value.ToString.Replace(Chr(34), "").Replace("\", "").Replace("/", "").Replace(":", "") + Case "episode_number" + CR_episode2 = SubEntry.Value.ToString.Replace(Chr(34), "").Replace("\", "").Replace("/", "").Replace(":", "") + Case "episode" + CR_episode = SubEntry.Value.ToString.Replace(Chr(34), "").Replace("\", "").Replace("/", "").Replace(":", "") + Case "duration_ms" + CR_episode_duration_ms = SubEntry.Value.ToString.Replace(Chr(34), "").Replace("\", "").Replace("/", "").Replace(":", "") + Case "is_dubbed" + CR_audio_isDubbed = CBool(SubEntry.Value.ToString.Replace(Chr(34), "").Replace("\", "").Replace("/", "").Replace(":", "")) + 'Case "eligible_region" + ' CR_Region = SubEntry.Value.ToString.Replace(Chr(34), "").Replace("\", "").Replace("/", "").Replace(":", "") + End Select + Next ' + End Select Next - End Select - Next + Next + End Select + Next #Region "VideoJson" @@ -1928,44 +1927,44 @@ Public Class Main item.CreateReader() Select Case item.Name Case "streams" 'each record is inside the entries array - For Each Entry As JProperty In item.Values + 'For Each Entry As JProperty In item.Values - Dim JsonEntryFormat As String = Entry.Name - If CBool(InStr(Entry.Name, "drm")) Or CBool(InStr(Entry.Name, "dash")) Or CBool(InStr(Entry.Name, "urls")) Then - Continue For - End If + ' Dim JsonEntryFormat As String = Entry.Name + ' If CBool(InStr(Entry.Name, "drm")) Or CBool(InStr(Entry.Name, "dash")) Or CBool(InStr(Entry.Name, "urls")) Then + ' Continue For + ' End If - Dim SubData As List(Of JToken) = Entry.Children().ToList - For Each SubItem As JObject In SubData - SubItem.CreateReader() + ' Dim SubData As List(Of JToken) = Entry.Children().ToList + ' For Each SubItem As JObject In SubData + ' SubItem.CreateReader() - Dim StreamFormats As List(Of JToken) = SubItem.Children().ToList + ' Dim StreamFormats As List(Of JToken) = SubItem.Children().ToList - For Each Formats As JProperty In StreamFormats - Formats.CreateReader() - Dim SubLang As String = Formats.Name - If SubLang = Nothing Or SubLang = "" Then - SubLang = "null" - End If + ' For Each Formats As JProperty In StreamFormats + ' Formats.CreateReader() + ' Dim SubLang As String = Formats.Name + ' If SubLang = Nothing Or SubLang = "" Then + ' SubLang = "null" + ' End If - Dim Url As String = CStr(Formats.Value("url")) + ' Dim Url As String = CStr(Formats.Value("url")) - If CBool(InStr(JsonEntryFormat, "download")) Then - download_hls = New CR_Beta_Stream(SubLang, JsonEntryFormat, Url) - Continue For - 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)) + ' CR_Streams.Add(New CR_Beta_Stream(SubLang, JsonEntryFormat, Url)) - Next - Next - Next + ' Next + ' Next + 'Next Case "audio_locale" 'each record is inside the entries array 'MsgBox(item.Value) If CR_audio_isDubbed = True Then @@ -1977,9 +1976,52 @@ Public Class Main End Select Next - If download_hls IsNot Nothing Then - CR_Streams.Add(download_hls) - End If + 'If download_hls IsNot Nothing Then + ' CR_Streams.Add(download_hls) + 'End If + + Dim NewAPI_0 As String() = WebsiteURL.Split(New String() {"watch/"}, System.StringSplitOptions.RemoveEmptyEntries) + Dim NewAPI_1 As String() = NewAPI_0(1).Split(New String() {"/"}, System.StringSplitOptions.RemoveEmptyEntries) + + + Dim NewAPI As String = "https://cr-play-service.prd.crunchyrollsvc.com/v1/" + NewAPI_1(0) + "/console/switch/play" + + Dim NewAPIData As String = CurlAuthNew(NewAPI, "", Loc_AuthToken) + + 'MsgBox(NewAPIData) + + Dim VideoJSON_New As String = CleanJSON(NewAPIData) + + + + Dim VideoJObjectNew As JObject = JObject.Parse(VideoJSON_New) + + Dim VideoJSON2New As String = "[" & VideoJSON_New.Replace("}{", "},{") & "]" + + Dim jsonArray As JArray = JArray.Parse(VideoJSON2New) + + For Each item As JObject In jsonArray + Dim hardSubs As JObject = CType(item("hardSubs"), JObject) + For Each prop As JProperty In hardSubs.Properties() + Dim Sublang As String = prop.Value("hlang").ToString + Dim vUrl As String = prop.Value("url").ToString.Replace("manifest.mpd", "master.m3u8") + CR_Streams.Add(New CR_Beta_Stream(Sublang, "fake_hls", vUrl)) + + Next + Next + + Dim VideoDataNew As List(Of JToken) = VideoJObjectNew.Children().ToList + For Each item As JProperty In VideoDataNew + item.CreateReader() + Select Case item.Name + Case "url" + Dim vUrl As String = item.Value.ToString.Replace("manifest.mpd", "master.m3u8") + CR_Streams.Add(New CR_Beta_Stream("null", "fake_hls", vUrl)) + 'MsgBox(Title) + End Select + Next + + Dim CR_URI_Master As New List(Of String) @@ -2037,21 +2079,21 @@ Public Class Main 'MsgBox(CR_URI_Master.Count.ToString) - If CBool(InStr(CR_URI_Master(0), "master.m3u8")) Then - Me.Invoke(New Action(Function() As Object - Anime_Add.StatusLabel.Text = "Status: m3u8 found, looking for resolution" - Me.Text = "Status: m3u8 found, looking for resolution" - Me.Invalidate() - Return Nothing - End Function)) - Else - If MessageBox.Show("The Url below failed a check, continue?" + vbNewLine + CR_URI_Master(0), "Mission failed?", MessageBoxButtons.OKCancel) = DialogResult.OK Then + 'If CBool(InStr(CR_URI_Master(0), "master.m3u8")) Then + ' Me.Invoke(New Action(Function() As Object + ' Anime_Add.StatusLabel.Text = "Status: m3u8 found, looking for resolution" + ' Me.Text = "Status: m3u8 found, looking for resolution" + ' Me.Invalidate() + ' Return Nothing + ' End Function)) + 'Else + ' If MessageBox.Show("The Url below failed a check, continue?" + vbNewLine + CR_URI_Master(0), "Mission failed?", MessageBoxButtons.OKCancel) = DialogResult.OK Then - Else - Throw New System.Exception("Premium Episode") - End If - 'Throw New System.Exception("Premium Episode") - End If + ' Else + ' Throw New System.Exception("Premium Episode") + ' End If + ' Throw New System.Exception("Premium Episode") + 'End If #End Region @@ -2364,77 +2406,18 @@ Public Class Main #Region "GetResolution" - If Reso = 42 And HybridMode = False Then - ffmpegInput = "-i " + Chr(34) + CR_URI_Master(0) + Chr(34) - ElseIf DownloadScope = DownloadScopeEnum.SubsOnly Then + If DownloadScope = DownloadScopeEnum.SubsOnly Then ffmpegInput = "-i [Subtitles only]" Else - Dim str As String = Nothing - Dim NewMaster2 As String = Nothing - If NewAPIString1 = Nothing And NewAPIString2 = Nothing Or TTL < 1 Then + Dim str As String = CurlAuthNew(CR_URI_Master(0), "", Loc_AuthToken) - Dim NewAPI_0 As String() = WebsiteURL.Split(New String() {"watch/"}, System.StringSplitOptions.RemoveEmptyEntries) - Dim NewAPI_1 As String() = NewAPI_0(1).Split(New String() {"/"}, System.StringSplitOptions.RemoveEmptyEntries) - - Dim NewAPI As String = "https://cr-play-service.prd.crunchyrollsvc.com/v1/" + NewAPI_1(0) + "/web/edge/play" - - Dim NewAPIData As String = CurlAuthNew(NewAPI, Loc_CR_Cookies, Loc_AuthToken) - - 'MsgBox(NewAPIData) - - Dim bif_1 As String() = NewAPIData.Split(New String() {".bif?"}, System.StringSplitOptions.RemoveEmptyEntries) 'get the policy and beyond - Dim bif_2 As String() = bif_1(1).Split(New String() {Chr(34)}, System.StringSplitOptions.RemoveEmptyEntries) 'but we don't need beyond | Index 0 is enough - ' - Dim bif_0 As String() = bif_1(0).Split(New String() {Chr(34)}, System.StringSplitOptions.RemoveEmptyEntries) 'again we don't need beyond the url - Dim bif_3 As String() = bif_0(bif_0.Count - 1).Split(New String() {"assets/"}, System.StringSplitOptions.RemoveEmptyEntries) 'we even don't need the asset itself - - Dim NewMaster0 As String() = CR_URI_Master(0).Split(New String() {"assets/"}, System.StringSplitOptions.RemoveEmptyEntries) - - Dim NewMaster1 As String() = NewMaster0(1).Split(New String() {"?Policy"}, System.StringSplitOptions.RemoveEmptyEntries) - - NewMaster2 = bif_3(0) + "assets/" + NewMaster1(0) + "?" + bif_2(0) - NewAPIString1 = bif_3(0) - NewAPIString2 = bif_2(0) - TTL = 5 - Else - - Dim NewMaster0 As String() = CR_URI_Master(0).Split(New String() {"assets/"}, System.StringSplitOptions.RemoveEmptyEntries) - Dim NewMaster1 As String() = NewMaster0(1).Split(New String() {"?Policy"}, System.StringSplitOptions.RemoveEmptyEntries) - NewMaster2 = NewAPIString1 + "assets/" + NewMaster1(0) + "?" + NewAPIString2 - TTL = TTL - 1 - End If - - - 'MsgBox(NewMaster2) - - str = Curl(NewMaster2) - - '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 - - ' 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 @@ -2489,7 +2472,16 @@ Public Class Main 'MsgBox(ffmpeg_url_3.Trim()) - ffmpegInput = "-i " + Chr(34) + ffmpeg_url_3.Trim() + Chr(34) + + 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) + Using sink As New StreamWriter(localfile, False, utf8WithoutBom) + sink.WriteLine(localm3u8) + End Using + + ffmpegInput = "-allowed_extensions ALL " + "-i " + Chr(34) + localfile + Chr(34) End If @@ -2735,6 +2727,7 @@ Public Class Main 'MsgBox(URL_DL) + Me.Invoke(New Action(Function() As Object ListItemAdd(Path.GetFileName(Pfad2.Replace(Chr(34), "")), L1Name, L2Name, ResoHTMLDisplay, SubType_Value, thumbnail3, ffmpegInput, Pfad2) Return Nothing diff --git a/Crunchyroll Downloader/My Project/AssemblyInfo.vb b/Crunchyroll Downloader/My Project/AssemblyInfo.vb index 7e1d3c0..412e561 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: ' - - + + diff --git a/Crunchyroll Downloader/My Project/Resources.Designer.vb b/Crunchyroll Downloader/My Project/Resources.Designer.vb index bf9c289..412336d 100644 --- a/Crunchyroll Downloader/My Project/Resources.Designer.vb +++ b/Crunchyroll Downloader/My Project/Resources.Designer.vb @@ -90,60 +90,6 @@ Namespace My.Resources End Get End Property - ''' - ''' Sucht eine lokalisierte Zeichenfolge, die {"sources":[{"file":" ähnelt. - ''' - Friend ReadOnly Property AoD_files() As String - Get - Return ResourceManager.GetString("AoD_files", resourceCulture) - End Get - End Property - - ''' - ''' Sucht eine lokalisierte Zeichenfolge, die <h1 itemprop="name"> ähnelt. - ''' - Friend ReadOnly Property AoD_HTML_Anime_Title() As String - Get - Return ResourceManager.GetString("AoD_HTML_Anime_Title", resourceCulture) - End Get - End Property - - ''' - ''' Sucht eine lokalisierte Zeichenfolge, die <h3 class="episodebox-title" title=" ähnelt. - ''' - Friend ReadOnly Property AoD_HTML_Episode_Title() As String - Get - Return ResourceManager.GetString("AoD_HTML_Episode_Title", resourceCulture) - End Get - End Property - - ''' - ''' Sucht eine lokalisierte Zeichenfolge, die "image":" ähnelt. - ''' - Friend ReadOnly Property AoD_Image() As String - Get - Return ResourceManager.GetString("AoD_Image", resourceCulture) - End Get - End Property - - ''' - ''' Sucht eine lokalisierte Zeichenfolge, die "mediaid": ähnelt. - ''' - Friend ReadOnly Property AoD_MediaID() As String - Get - Return ResourceManager.GetString("AoD_MediaID", resourceCulture) - End Get - End Property - - ''' - ''' Sucht eine lokalisierte Zeichenfolge, die "title":" ähnelt. - ''' - Friend ReadOnly Property AoD_Titel() As String - Get - Return ResourceManager.GetString("AoD_Titel", resourceCulture) - End Get - End Property - ''' ''' Sucht eine lokalisierte Zeichenfolge, die [Script Info] '''; Template for error handling in the Crunchyrol Downloader by hama3254 https://github.com/hama3254/Crunchyroll-Downloader-v3.0 @@ -187,78 +133,6 @@ Namespace My.Resources End Get End Property - ''' - ''' Sucht eine lokalisierte Zeichenfolge, die <img id="footer_country_flag" src="https://www.crunchyroll.com/i/country_flags/ ähnelt. - ''' - Friend ReadOnly Property CC_String() As String - Get - Return ResourceManager.GetString("CC_String", resourceCulture) - End Get - End Property - - ''' - ''' Sucht eine lokalisierte Zeichenfolge, die display_episode_number":" ähnelt. - ''' - Friend ReadOnly Property CR_Episode_Nr() As String - Get - Return ResourceManager.GetString("CR_Episode_Nr", resourceCulture) - End Get - End Property - - ''' - ''' Sucht eine lokalisierte Zeichenfolge, die <meta property="og:url" content=" ähnelt. - ''' - Friend ReadOnly Property CR_Head_Url_Split() As String - Get - Return ResourceManager.GetString("CR_Head_Url_Split", resourceCulture) - End Get - End Property - - ''' - ''' Sucht eine lokalisierte Zeichenfolge, die <h4 id="showmedia_about_name" class="strong">“ ähnelt. - ''' - Friend ReadOnly Property CR_MediaName() As String - Get - Return ResourceManager.GetString("CR_MediaName", resourceCulture) - End Get - End Property - - ''' - ''' Sucht eine lokalisierte Zeichenfolge, die ”</h4> ähnelt. - ''' - Friend ReadOnly Property CR_MediaName2() As String - Get - Return ResourceManager.GetString("CR_MediaName2", resourceCulture) - End Get - End Property - - ''' - ''' Sucht eine lokalisierte Zeichenfolge, die </span> ähnelt. - ''' - Friend ReadOnly Property CR_MovieBT() As String - Get - Return ResourceManager.GetString("CR_MovieBT", resourceCulture) - End Get - End Property - - ''' - ''' Sucht eine lokalisierte Zeichenfolge, die <span itemprop="name"> ähnelt. - ''' - Friend ReadOnly Property CR_MovieTop() As String - Get - Return ResourceManager.GetString("CR_MovieTop", resourceCulture) - End Get - End Property - - ''' - ''' Sucht eine lokalisierte Zeichenfolge, die seasonNumber":" ähnelt. - ''' - Friend ReadOnly Property CR_Season_Nr() As String - Get - Return ResourceManager.GetString("CR_Season_Nr", resourceCulture) - End Get - End Property - ''' ''' Sucht eine lokalisierte Ressource vom Typ System.Drawing.Bitmap. ''' @@ -486,24 +360,6 @@ Namespace My.Resources End Get End Property - ''' - ''' Sucht eine lokalisierte Zeichenfolge, die ","resolution":"adaptive" ähnelt. - ''' - Friend ReadOnly Property hls_endString() As String - Get - Return ResourceManager.GetString("hls_endString", resourceCulture) - End Get - End Property - - ''' - ''' Sucht eine lokalisierte Zeichenfolge, die "format":"adaptive_hls", ähnelt. - ''' - Friend ReadOnly Property hls_Value() As String - Get - Return ResourceManager.GetString("hls_Value", resourceCulture) - End Get - End Property - ''' ''' Sucht eine lokalisierte Zeichenfolge, die <script> ''' @@ -657,15 +513,6 @@ Namespace My.Resources End Get End Property - ''' - ''' Sucht eine lokalisierte Zeichenfolge, die "error":false,"code":"ok" ähnelt. - ''' - Friend ReadOnly Property LoginSuccess() As String - Get - Return ResourceManager.GetString("LoginSuccess", resourceCulture) - End Get - End Property - ''' ''' Sucht eine lokalisierte Ressource vom Typ System.Drawing.Bitmap. ''' @@ -1037,15 +884,5 @@ Namespace My.Resources Return ResourceManager.GetString("thumbnailString", resourceCulture) End Get End Property - - ''' - ''' Sucht eine lokalisierte Zeichenfolge, die US cookies can't be used as long you are logged in. - '''I delete the curremt session with the unlock, if you want to be logged in with the US cookie you need to enter you data on the left. ähnelt. - ''' - Friend ReadOnly Property US_ToolTip() As String - Get - Return ResourceManager.GetString("US_ToolTip", resourceCulture) - End Get - End Property End Module End Namespace diff --git a/Crunchyroll Downloader/My Project/Resources.resx b/Crunchyroll Downloader/My Project/Resources.resx index d42320e..4000dd7 100644 --- a/Crunchyroll Downloader/My Project/Resources.resx +++ b/Crunchyroll Downloader/My Project/Resources.resx @@ -145,9 +145,6 @@ ..\Resources\about_icon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - "title":" - ", "kind": "subtitle", "type": "Full", "language": " @@ -219,12 +216,6 @@ ..\Resources\main-pause-play.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - "error":false,"code":"ok" - - - "image":" - ", "kind": "subtitle", "type": "CC", "language": " @@ -254,10 +245,6 @@ setInterval(function loadXMLDoc() { "src": - - US cookies can't be used as long you are logged in. -I delete the curremt session with the unlock, if you want to be logged in with the US cookie you need to enter you data on the left. - [Script Info] ; Template for error handling in the Crunchyrol Downloader by hama3254 https://github.com/hama3254/Crunchyroll-Downloader-v3.0 @@ -281,12 +268,6 @@ Style: Default,Arial,20,&H00FFFFFF,&H0000FFFF,&H00000000,&H00000 Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text Dialogue: 0,0:00:00.00,0:00:00.00,Default,,0000,0000,0000,,some ideas on how templated karaoke could work in auto4/lua - - ","resolution":"adaptive" - - - "format":"adaptive_hls", - ..\Resources\main-settings.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a @@ -341,9 +322,6 @@ Dialogue: 0,0:00:00.00,0:00:00.00,Default,,0000,0000,0000,,some ideas on how tem ..\Resources\main_button_download_hovert.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - <img id="footer_country_flag" src="https://www.crunchyroll.com/i/country_flags/ - ..\Resources\balken_console.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a @@ -411,12 +389,6 @@ Dialogue: 0,0:00:00.00,0:00:00.00,Default,,0000,0000,0000,,some ideas on how tem ..\icon.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - {"sources":[{"file":" - - - <meta property="og:url" content=" - <!DOCTYPE html> <head> @@ -463,18 +435,6 @@ Dialogue: 0,0:00:00.00,0:00:00.00,Default,,0000,0000,0000,,some ideas on how tem {"src": " - - <h1 itemprop="name"> - - - <h3 class="episodebox-title" title=" - - - <h4 id="showmedia_about_name" class="strong">“ - - - ”</h4> - ..\Resources\main-add_invert_dark.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a @@ -493,21 +453,12 @@ Dialogue: 0,0:00:00.00,0:00:00.00,Default,,0000,0000,0000,,some ideas on how tem ..\Resources\main-mini_red.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - display_episode_number":" - - - seasonNumber":" - ", "kind": "subtitle", "type": "full", "language": " src="https://www.funimation.com/player/ - - "mediaid": - ..\Resources\main-close_dark.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a @@ -520,12 +471,6 @@ Dialogue: 0,0:00:00.00,0:00:00.00,Default,,0000,0000,0000,,some ideas on how tem ..\Resources\main-mini_dark_hover.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - </span> - - - <span itemprop="name"> - ..\Resources\main_button_download-deactivate.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a