From e788828a18d8bf5c48ac00bf55b25c1871ff63fb Mon Sep 17 00:00:00 2001 From: hama3254 <52826614+hama3254@users.noreply.github.com> Date: Tue, 21 Feb 2023 14:17:59 +0100 Subject: [PATCH] audio change from #698 audio change from #698 --- .vs/Crunchyroll Downloader/v17/.suo | Bin 204800 -> 176128 bytes Crunchyroll Downloader/Anime_Add.Designer.vb | 33 +- Crunchyroll Downloader/Anime_Add.vb | 19 +- Crunchyroll Downloader/App.config | 3 + Crunchyroll Downloader/CRD-Classes.vb | 8 + Crunchyroll Downloader/CRD_List_Item.vb | 6 + Crunchyroll Downloader/Main.designer.vb | 17 +- Crunchyroll Downloader/Main.resx | 344 +++++++++++------- Crunchyroll Downloader/Main.vb | 336 ++++++++++------- .../My Project/Settings.Designer.vb | 12 + .../My Project/Settings.settings | 3 + .../einstellungen.Designer.vb | 12 +- 12 files changed, 500 insertions(+), 293 deletions(-) diff --git a/.vs/Crunchyroll Downloader/v17/.suo b/.vs/Crunchyroll Downloader/v17/.suo index fc1d50087ab6dd6abff89dd89494319fd17ca94c..ecbc563c2aeccb7249a7924b5b58e3a59cb47a24 100644 GIT binary patch delta 8588 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 z zo?k)?j`_eb@Rvx*vzlB1-lZGTD}`hmc+Ij|XRZv9)pI}j}5>5ARel|uZ%9vGxX&Z+>R}?X|wH>fJBGb zo^R#RPwwqF2lRNRj6;$9?rl&v@`t|BhC)$vR@S>QTI zuj!hADJO4ZU>efJvG5=*8%XpDQOQk2s zW;r8G;Ab3D&0rEMRRc?#NA63sSlAzEqbNz#r5352r_ zl{{F=I!^XFGl%j5tKLpfWly2XwsxY@4@yC$?^kALCVYn{CgC!OlGPjK(3Z3N0;*=j r1#(i&%|m}qCmQ}TzWQtqr$V*Zd<`ag%Z5%aetz)tfr5I~{PlkT@NrD; delta 12549 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 JAA(Ob{|8=&HJ$(f diff --git a/Crunchyroll Downloader/Anime_Add.Designer.vb b/Crunchyroll Downloader/Anime_Add.Designer.vb index 4526580..e59f4b3 100644 --- a/Crunchyroll Downloader/Anime_Add.Designer.vb +++ b/Crunchyroll Downloader/Anime_Add.Designer.vb @@ -25,7 +25,7 @@ Partial Class Anime_Add Private Sub InitializeComponent() Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(Anime_Add)) Me.groupBox1 = New System.Windows.Forms.GroupBox() - Me.SubTitlesOnlyCB = New MetroFramework.Controls.MetroComboBox() + Me.DownloadScope = New MetroFramework.Controls.MetroComboBox() Me.StatusLabel = New MetroFramework.Controls.MetroLabel() Me.ComboBox2 = New MetroFramework.Controls.MetroComboBox() Me.TextBox4 = New MetroFramework.Controls.MetroTextBox() @@ -50,7 +50,7 @@ Partial Class Anime_Add 'groupBox1 ' Me.groupBox1.BackColor = System.Drawing.Color.Transparent - Me.groupBox1.Controls.Add(Me.SubTitlesOnlyCB) + Me.groupBox1.Controls.Add(Me.DownloadScope) Me.groupBox1.Controls.Add(Me.StatusLabel) Me.groupBox1.Controls.Add(Me.ComboBox2) Me.groupBox1.Controls.Add(Me.TextBox4) @@ -62,20 +62,19 @@ Partial Class Anime_Add Me.groupBox1.TabIndex = 33 Me.groupBox1.TabStop = False ' - 'SubTitlesOnlyCB + 'DownloadScope ' - Me.SubTitlesOnlyCB.BackColor = System.Drawing.Color.White - Me.SubTitlesOnlyCB.Font = New System.Drawing.Font("Arial", 9.75!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.SubTitlesOnlyCB.ForeColor = System.Drawing.Color.FromArgb(CType(CType(64, Byte), Integer), CType(CType(64, Byte), Integer), CType(CType(64, Byte), Integer)) - Me.SubTitlesOnlyCB.FormattingEnabled = True - Me.SubTitlesOnlyCB.ItemHeight = 23 - Me.SubTitlesOnlyCB.Items.AddRange(New Object() {"[Default]", "[Subtitles only]"}) - Me.SubTitlesOnlyCB.Location = New System.Drawing.Point(18, 190) - Me.SubTitlesOnlyCB.Name = "SubTitlesOnlyCB" - Me.SubTitlesOnlyCB.Size = New System.Drawing.Size(693, 29) - Me.SubTitlesOnlyCB.Sorted = True - Me.SubTitlesOnlyCB.TabIndex = 39 - Me.SubTitlesOnlyCB.UseSelectable = True + Me.DownloadScope.BackColor = System.Drawing.Color.White + Me.DownloadScope.Font = New System.Drawing.Font("Arial", 9.75!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.DownloadScope.ForeColor = System.Drawing.Color.FromArgb(CType(CType(64, Byte), Integer), CType(CType(64, Byte), Integer), CType(CType(64, Byte), Integer)) + Me.DownloadScope.FormattingEnabled = True + Me.DownloadScope.ItemHeight = 23 + Me.DownloadScope.Items.AddRange(New Object() {"[Default]", "[Merge Audio with existing files]", "[Subtitles only]", "[Audio only (AAC)]"}) + Me.DownloadScope.Location = New System.Drawing.Point(18, 190) + Me.DownloadScope.Name = "DownloadScope" + Me.DownloadScope.Size = New System.Drawing.Size(693, 29) + Me.DownloadScope.TabIndex = 39 + Me.DownloadScope.UseSelectable = True ' 'StatusLabel ' @@ -349,8 +348,8 @@ Partial Class Anime_Add Me.Controls.Add(Me.btn_dl) Me.Controls.Add(Me.Btn_min) Me.Controls.Add(Me.Btn_Close) - Me.Controls.Add(Me.groupBox2) Me.Controls.Add(Me.groupBox1) + Me.Controls.Add(Me.groupBox2) Me.Font = New System.Drawing.Font("Arial", 24.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) Me.Name = "Anime_Add" Me.Padding = New System.Windows.Forms.Padding(10, 60, 20, 20) @@ -377,7 +376,7 @@ Partial Class Anime_Add Public WithEvents comboBox3 As MetroFramework.Controls.MetroComboBox Private WithEvents Btn_min As PictureBox Private WithEvents Btn_Close As PictureBox - Public WithEvents SubTitlesOnlyCB As MetroFramework.Controls.MetroComboBox + Public WithEvents DownloadScope As MetroFramework.Controls.MetroComboBox Friend WithEvents btn_dl As Button Friend WithEvents BackgroundWorker1 As System.ComponentModel.BackgroundWorker Friend WithEvents bt_Cancel_mass As Button diff --git a/Crunchyroll Downloader/Anime_Add.vb b/Crunchyroll Downloader/Anime_Add.vb index c51c83e..73b4f6d 100644 --- a/Crunchyroll Downloader/Anime_Add.vb +++ b/Crunchyroll Downloader/Anime_Add.vb @@ -40,7 +40,7 @@ Public Class Anime_Add Private Sub Anime_Add_Load(sender As Object, e As EventArgs) Handles MyBase.Load - SubTitlesOnlyCB.SelectedIndex = 0 + DownloadScope.SelectedIndex = 0 Manager.Owner = Me Me.StyleManager = Manager Btn_Close.Image = Main.CloseImg @@ -148,14 +148,11 @@ Public Class Anime_Add Main.LoginOnly = "Download Mode!" 'MsgBox(Main.WebbrowserURL) - If SubTitlesOnlyCB.Text = "[Default]" Then - Main.SubsOnly = False - Else - Main.SubsOnly = True - End If + + 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 @@ -589,12 +586,8 @@ Public Class Anime_Add End If End Sub - Private Sub SubTitlesOnlyCB_SelectedIndexChanged(sender As Object, e As EventArgs) Handles SubTitlesOnlyCB.SelectedIndexChanged - If SubTitlesOnlyCB.Text = "[Default]" Then - Main.SubsOnly = False - Else - Main.SubsOnly = True - End If + Private Sub SubTitlesOnlyCB_SelectedIndexChanged(sender As Object, e As EventArgs) Handles DownloadScope.SelectedIndexChanged + Main.DownloadScope = DownloadScope.SelectedIndex End Sub diff --git a/Crunchyroll Downloader/App.config b/Crunchyroll Downloader/App.config index c67c630..6142e53 100644 --- a/Crunchyroll Downloader/App.config +++ b/Crunchyroll Downloader/App.config @@ -150,6 +150,9 @@ False + + False + diff --git a/Crunchyroll Downloader/CRD-Classes.vb b/Crunchyroll Downloader/CRD-Classes.vb index bb12881..6143a45 100644 --- a/Crunchyroll Downloader/CRD-Classes.vb +++ b/Crunchyroll Downloader/CRD-Classes.vb @@ -1,5 +1,13 @@ Public Class CRD_Classes + Public Enum DownloadScopeEnum + OldDefault = 0 + MergeAudio = 1 + SubsOnly = 2 + AudioOnly = 3 + End Enum + + End Class #Region "funimation" diff --git a/Crunchyroll Downloader/CRD_List_Item.vb b/Crunchyroll Downloader/CRD_List_Item.vb index a218138..baa3127 100644 --- a/Crunchyroll Downloader/CRD_List_Item.vb +++ b/Crunchyroll Downloader/CRD_List_Item.vb @@ -1093,7 +1093,13 @@ Public Class CRD_List_Item End Function)) For i As Integer = 0 To InuputStreams.Count - 1 + 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 diff --git a/Crunchyroll Downloader/Main.designer.vb b/Crunchyroll Downloader/Main.designer.vb index 31f0b29..cd4f6ad 100644 --- a/Crunchyroll Downloader/Main.designer.vb +++ b/Crunchyroll Downloader/Main.designer.vb @@ -40,6 +40,7 @@ Partial Class Main Me.Btn_Close = New System.Windows.Forms.Button() Me.ContextMenuStrip1 = New System.Windows.Forms.ContextMenuStrip(Me.components) Me.QueueToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.SaveThumbnailAsImageToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() Me.ToggleDebugModeToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() Me.Funimation_Token = New System.Windows.Forms.ToolStripMenuItem() Me.CheckCRBetaTokenToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() @@ -51,7 +52,7 @@ Partial Class Main Me.Panel1 = New System.Windows.Forms.Panel() Me.ScanTimeout = New System.Windows.Forms.Timer(Me.components) Me.Btn_Queue = New System.Windows.Forms.Button() - Me.SaveThumbnailAsImageToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.SaveModeToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() CType(Me.PictureBox5, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.ConsoleBar, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.MetroStyleManager1, System.ComponentModel.ISupportInitialize).BeginInit() @@ -160,7 +161,7 @@ Partial Class Main ' 'ContextMenuStrip1 ' - Me.ContextMenuStrip1.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.QueueToolStripMenuItem, Me.SaveThumbnailAsImageToolStripMenuItem, Me.ToggleDebugModeToolStripMenuItem, Me.Funimation_Token, Me.CheckCRBetaTokenToolStripMenuItem, Me.Timer3OffToolStripMenuItem, Me.ThreadCount, Me.CRCookieToolStripMenuItem, Me.UrlJsonsToolStripMenuItem, Me.DummyItemToolStripMenuItem}) + Me.ContextMenuStrip1.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.QueueToolStripMenuItem, Me.SaveModeToolStripMenuItem, Me.SaveThumbnailAsImageToolStripMenuItem, Me.ToggleDebugModeToolStripMenuItem, Me.Funimation_Token, Me.CheckCRBetaTokenToolStripMenuItem, Me.Timer3OffToolStripMenuItem, Me.ThreadCount, Me.CRCookieToolStripMenuItem, Me.UrlJsonsToolStripMenuItem, Me.DummyItemToolStripMenuItem}) Me.ContextMenuStrip1.Name = "ContextMenuStrip1" resources.ApplyResources(Me.ContextMenuStrip1, "ContextMenuStrip1") ' @@ -169,6 +170,11 @@ Partial Class Main Me.QueueToolStripMenuItem.Name = "QueueToolStripMenuItem" resources.ApplyResources(Me.QueueToolStripMenuItem, "QueueToolStripMenuItem") ' + 'SaveThumbnailAsImageToolStripMenuItem + ' + Me.SaveThumbnailAsImageToolStripMenuItem.Name = "SaveThumbnailAsImageToolStripMenuItem" + resources.ApplyResources(Me.SaveThumbnailAsImageToolStripMenuItem, "SaveThumbnailAsImageToolStripMenuItem") + ' 'ToggleDebugModeToolStripMenuItem ' Me.ToggleDebugModeToolStripMenuItem.Name = "ToggleDebugModeToolStripMenuItem" @@ -229,10 +235,10 @@ Partial Class Main Me.Btn_Queue.Name = "Btn_Queue" Me.Btn_Queue.UseVisualStyleBackColor = False ' - 'SaveThumbnailAsImageToolStripMenuItem + 'SaveModeToolStripMenuItem ' - Me.SaveThumbnailAsImageToolStripMenuItem.Name = "SaveThumbnailAsImageToolStripMenuItem" - resources.ApplyResources(Me.SaveThumbnailAsImageToolStripMenuItem, "SaveThumbnailAsImageToolStripMenuItem") + Me.SaveModeToolStripMenuItem.Name = "SaveModeToolStripMenuItem" + resources.ApplyResources(Me.SaveModeToolStripMenuItem, "SaveModeToolStripMenuItem") ' 'Main ' @@ -292,4 +298,5 @@ Partial Class Main Friend WithEvents QueueToolStripMenuItem As ToolStripMenuItem Friend WithEvents Btn_Queue As Button Friend WithEvents SaveThumbnailAsImageToolStripMenuItem As ToolStripMenuItem + Friend WithEvents SaveModeToolStripMenuItem As ToolStripMenuItem End Class diff --git a/Crunchyroll Downloader/Main.resx b/Crunchyroll Downloader/Main.resx index 34e7dd9..0c2206a 100644 --- a/Crunchyroll Downloader/Main.resx +++ b/Crunchyroll Downloader/Main.resx @@ -231,24 +231,6 @@ 900, 630 - - Zoom - - - Flat - - - NoControl - - - 575, 18 - - - 80, 35 - - - 70 - Btn_Queue @@ -261,21 +243,6 @@ 1 - - True - - - 1, 71 - - - 898, 403 - - - 898, 546 - - - 0 - Panel1 @@ -288,24 +255,6 @@ 2 - - None - - - Flat - - - NoControl - - - 800, 1 - - - 35, 35 - - - 5 - Btn_Close @@ -318,24 +267,6 @@ 3 - - None - - - Flat - - - NoControl - - - 757, 1 - - - 30, 30 - - - 4 - Btn_min @@ -348,24 +279,6 @@ 4 - - Zoom - - - Flat - - - NoControl - - - 665, 18 - - - 80, 35 - - - 3 - Btn_Settings @@ -378,21 +291,6 @@ 5 - - Zoom - - - Flat - - - 140, 18 - - - 80, 35 - - - 2 - Btn_Browser @@ -405,24 +303,6 @@ 6 - - Zoom - - - Flat - - - NoControl - - - 20, 18 - - - 80, 35 - - - 1 - Btn_add @@ -489,6 +369,12 @@ System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + SaveThumbnailAsImageToolStripMenuItem + + + System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + ToggleDebugModeToolStripMenuItem @@ -543,10 +429,10 @@ System.Windows.Forms.Timer, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - SaveThumbnailAsImageToolStripMenuItem + + SaveModeToolStripMenuItem - + System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 @@ -558,6 +444,153 @@ 276, 52 + + Zoom + + + Flat + + + NoControl + + + 20, 18 + + + 80, 35 + + + 1 + + + Btn_add + + + System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + $this + + + 7 + + + Zoom + + + Flat + + + 140, 18 + + + 80, 35 + + + 2 + + + Btn_Browser + + + System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + $this + + + 6 + + + Zoom + + + Flat + + + NoControl + + + 665, 18 + + + 80, 35 + + + 3 + + + Btn_Settings + + + System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + $this + + + 5 + + + None + + + Flat + + + NoControl + + + 757, 1 + + + 30, 30 + + + 4 + + + Btn_min + + + System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + $this + + + 4 + + + None + + + Flat + + + NoControl + + + 800, 1 + + + 35, 35 + + + 5 + + + Btn_Close + + + System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + $this + + + 3 + 352, 49 @@ -567,6 +600,12 @@ ffmpeg option + + 233, 22 + + + *Save Mode* + 233, 22 @@ -622,7 +661,7 @@ Dummy_Item - 234, 246 + 234, 268 ContextMenuStrip1 @@ -630,7 +669,64 @@ System.Windows.Forms.ContextMenuStrip, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + True + + + 1, 71 + + + 898, 403 + + + 898, 546 + + + 0 + + + Panel1 + + + System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + $this + + + 2 + 167, 10 + + Zoom + + + Flat + + + NoControl + + + 575, 18 + + + 80, 35 + + + 70 + + + Btn_Queue + + + System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + $this + + + 1 + \ No newline at end of file diff --git a/Crunchyroll Downloader/Main.vb b/Crunchyroll Downloader/Main.vb index e0dcf81..d5562e9 100644 --- a/Crunchyroll Downloader/Main.vb +++ b/Crunchyroll Downloader/Main.vb @@ -18,6 +18,7 @@ Imports MyProvider.MyProvider Imports System.Windows Imports Microsoft.Web.WebView2.Core Imports System.Net.Http +Imports Crunchyroll_Downloader.CRD_Classes Public Class Main Inherits MetroForm @@ -92,7 +93,8 @@ Public Class Main Public IgnoreSeason As Integer = 0 Public HideFLInt As Integer = 0 Public KeepCache As Boolean = False - Public SubsOnly As Boolean = False + 'Public SubsOnly As Boolean = False + Public DownloadScope As Integer = 0 Public VideoFormat As String = ".mp4" Public MergeSubsFormat As String = "mov_text" 'Public LoginDialog As Boolean = False @@ -628,7 +630,11 @@ Public Class Main VideoFormat = My.Settings.VideoFormat - + If VideoFormat = ".aac" Then + VideoFormat = ".mp4" + 'My.Settings.VideoFormat = ".mp4" + MsgBox("The 'Audio only' output option has been moved." + vbNewLine + "See https://github.com/hama3254/Crunchyroll-Downloader-v3.0/issues/698 for more information.") + End If RetryWithCachedFiles() @@ -1202,10 +1208,6 @@ Public Class Main Try Grapp_RDY = False Dim ffmpeg_command_temp As String = ffmpeg_command - If VideoFormat = ".aac" Then - Dim ffmpeg_command_Builder() As String = ffmpeg_command.Split(New String() {"-c:a copy"}, System.StringSplitOptions.RemoveEmptyEntries) - ffmpeg_command_temp = "-c:a copy" + ffmpeg_command_Builder(1) - End If Dim CR_MetadataUsage As Boolean = False Dim CR_Streams As New List(Of CR_Beta_Stream) Dim CR_series_title As String = Nothing @@ -1270,8 +1272,11 @@ Public Class Main ObjectJson = CR_ObjectsJson.Content CR_ObjectsJson = New UrlJson("", "") ElseIf CBool(InStr(ObjectJson, "curl:")) Then - MsgBox("Error - Getting ObjectJson data" + vbNewLine + ObjectJson) - Exit Sub + + Throw New System.Exception("Error - Getting ObjectJson data" + vbNewLine + ObjectJson) + + 'MsgBox("Error - Getting ObjectJson data" + vbNewLine + ObjectJson) + 'Exit Sub End If @@ -1326,84 +1331,6 @@ Public Class Main End Select Next -#Region "Chapters" - Dim Mdata_File As String = Application.StartupPath + "\" + ObjectsURLBuilder4(0) + "-mdata.txt" - - If CR_Chapters = True Then - - - Dim ChaptersUrl As String = "https://static.crunchyroll.com/datalab-intro-v2/" + ObjectsURLBuilder4(0) + ".json" - Dim ChaptersJson As String = Nothing - - - ChaptersJson = Curl(ChaptersUrl) - - 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 - If ChaptersJson IsNot Nothing Then - - Dim StartTime As String() = ChaptersJson.Split(New String() {Chr(34) + "startTime" + Chr(34) + ": "}, System.StringSplitOptions.RemoveEmptyEntries) - Dim StartTime2 As String() = StartTime(1).Split(New String() {","}, System.StringSplitOptions.RemoveEmptyEntries) - Dim StartTime3 As String() = StartTime2(0).Split(New String() {"."}, System.StringSplitOptions.RemoveEmptyEntries) - Dim StartTime4 As String = StartTime3(1) - - For i As Integer = StartTime4.Length To 2 - StartTime4 = StartTime4 + "0" - Next - - Dim StartTime_ms As String = StartTime3(0) + StartTime4 - - - Dim EndTime As String() = ChaptersJson.Split(New String() {Chr(34) + "endTime" + Chr(34) + ": "}, System.StringSplitOptions.RemoveEmptyEntries) - Dim EndTime2 As String() = EndTime(1).Split(New String() {","}, System.StringSplitOptions.RemoveEmptyEntries) - Dim EndTime3 As String() = EndTime2(0).Split(New String() {"."}, System.StringSplitOptions.RemoveEmptyEntries) - - Dim EndTime4 As String = EndTime3(1) - Dim AfterTime As String = Nothing - - For i As Integer = EndTime4.Length To 2 - If EndTime4.Length = 2 Then - AfterTime = EndTime4 + "1" - End If - EndTime4 = EndTime4 + "0" - Next - - Dim EndTime_ms As String = EndTime3(0) + EndTime4 - Dim AfterTime_ms As String = EndTime3(0) + AfterTime - Dim Metadata As String = Nothing - - If CInt(CR_episode_duration_ms) < CInt(StartTime_ms) Then - 'Totaly invalid... - ElseIf CInt(CR_episode_duration_ms) < CInt(EndTime_ms) Then - 'it's not an Intro it's an outro - Dim DeCh As Integer = CInt(StartTime_ms) - 1 - Metadata = My.Resources.ffmpeg_metadata_out.Replace("[Titel]", CR_FilenName).Replace("[Start-1]", DeCh.ToString).Replace("[Start]", StartTime_ms).Replace("[duration_ms]", CR_episode_duration_ms) - - Else - Metadata = My.Resources.ffmpeg_metadata.Replace("[Titel]", CR_FilenName).Replace("[Start]", StartTime_ms).Replace("[END]", EndTime_ms).Replace("[after]", AfterTime_ms).Replace("[duration_ms]", CR_episode_duration_ms) - - End If - - If Metadata = Nothing Then - Else - Dim utf8WithoutBom2 As New System.Text.UTF8Encoding(False) - Using sink As New StreamWriter(Mdata_File, False, utf8WithoutBom2) - sink.WriteLine(Metadata) - CR_MetadataUsage = True - End Using - End If - - - End If - End If -#End Region - #Region "VideoJson" Dim VideoJson As String = Nothing @@ -1428,9 +1355,9 @@ Public Class Main VideoJson = CR_VideoJson.Content CR_VideoJson = New UrlJson("", "") ElseIf CBool(InStr(VideoJson, "curl:")) = True Then - 'VideoJson = Nothing - MsgBox("Error - Getting VideoJson data" + vbNewLine + VideoJson) - Exit Sub + Throw New System.Exception("Error - Getting VideoJson data" + vbNewLine + VideoJson) 'VideoJson = Nothing + ' MsgBox("Error - Getting VideoJson data" + vbNewLine + VideoJson) + ' Exit Sub End If @@ -1699,13 +1626,100 @@ Public Class Main End If #End Region + + +#Region "Chapters" + Dim Mdata_File As String = Application.StartupPath + "\" + ObjectsURLBuilder4(0) + "-mdata.txt" + + If CR_Chapters = True Then + + + Dim ChaptersUrl As String = "https://static.crunchyroll.com/datalab-intro-v2/" + ObjectsURLBuilder4(0) + ".json" + Dim ChaptersJson As String = Nothing + + + ChaptersJson = Curl(ChaptersUrl) + + 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 + If ChaptersJson IsNot Nothing Then + + Dim StartTime As String() = ChaptersJson.Split(New String() {Chr(34) + "startTime" + Chr(34) + ": "}, System.StringSplitOptions.RemoveEmptyEntries) + Dim StartTime2 As String() = StartTime(1).Split(New String() {","}, System.StringSplitOptions.RemoveEmptyEntries) + Dim StartTime3 As String() = StartTime2(0).Split(New String() {"."}, System.StringSplitOptions.RemoveEmptyEntries) + Dim StartTime4 As String = StartTime3(1) + + For i As Integer = StartTime4.Length To 2 + StartTime4 = StartTime4 + "0" + Next + + Dim StartTime_ms As String = StartTime3(0) + StartTime4 + + + Dim EndTime As String() = ChaptersJson.Split(New String() {Chr(34) + "endTime" + Chr(34) + ": "}, System.StringSplitOptions.RemoveEmptyEntries) + Dim EndTime2 As String() = EndTime(1).Split(New String() {","}, System.StringSplitOptions.RemoveEmptyEntries) + Dim EndTime3 As String() = EndTime2(0).Split(New String() {"."}, System.StringSplitOptions.RemoveEmptyEntries) + + Dim EndTime4 As String = EndTime3(1) + Dim AfterTime As String = Nothing + + For i As Integer = EndTime4.Length To 2 + If EndTime4.Length = 2 Then + AfterTime = EndTime4 + "1" + End If + EndTime4 = EndTime4 + "0" + Next + + Dim EndTime_ms As String = EndTime3(0) + EndTime4 + Dim AfterTime_ms As String = EndTime3(0) + AfterTime + Dim Metadata As String = Nothing + + If CInt(CR_episode_duration_ms) < CInt(StartTime_ms) Then + 'Totaly invalid... + ElseIf CInt(CR_episode_duration_ms) < CInt(EndTime_ms) Then + 'it's not an Intro it's an outro + Dim DeCh As Integer = CInt(StartTime_ms) - 1 + Metadata = My.Resources.ffmpeg_metadata_out.Replace("[Titel]", CR_FilenName).Replace("[Start-1]", DeCh.ToString).Replace("[Start]", StartTime_ms).Replace("[duration_ms]", CR_episode_duration_ms) + + Else + Metadata = My.Resources.ffmpeg_metadata.Replace("[Titel]", CR_FilenName).Replace("[Start]", StartTime_ms).Replace("[END]", EndTime_ms).Replace("[after]", AfterTime_ms).Replace("[duration_ms]", CR_episode_duration_ms) + + End If + + If Metadata = Nothing Then + Else + Dim utf8WithoutBom2 As New System.Text.UTF8Encoding(False) + Using sink As New StreamWriter(Mdata_File, False, utf8WithoutBom2) + sink.WriteLine(Metadata) + CR_MetadataUsage = True + End Using + End If + + + End If + End If +#End Region + + + + + #Region "lösche doppel download" 'MsgBox(Pfad2) Dim Pfad5 As String = Pfad2.Replace(Chr(34), "") - If My.Computer.FileSystem.FileExists(Pfad5) And SubsOnly = False Then 'Pfad = Kompeltter Pfad mit Dateinamen + ENdung + Dim Pfad6 As String = Pfad5 + Dim MergeAudio As Boolean = False + + 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 video already exists." - Me.Text = "Status: The file video already exists." + Anime_Add.StatusLabel.Text = "Status: The file already exists." + Me.Text = "Status: The file already exists." Me.Invalidate() Return Nothing End Function)) @@ -1718,6 +1732,41 @@ Public Class Main Grapp_RDY = True Exit Sub End If + + ElseIf My.Computer.FileSystem.FileExists(Pfad5) And DownloadScope = DownloadScopeEnum.MergeAudio Then + + + Pfad6 = Path.GetDirectoryName(Pfad5) + "\" + GeräteID() + Path.GetExtension(Pfad5) '+ "." + 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 + Anime_Add.StatusLabel.Text = "Status: The file already exists." + Me.Text = "Status: The file already exists." + Me.Invalidate() + Return Nothing + End Function)) + If MessageBox.Show("The file " + Path.GetDirectoryName(Pfad5) + "\" + Path.GetFileNameWithoutExtension(Pfad5) + "aac" + " already exists." + vbNewLine + "You want to override it?", "File exists!", MessageBoxButtons.OKCancel) = DialogResult.OK Then + Try + My.Computer.FileSystem.DeleteFile(Path.GetDirectoryName(Pfad5) + "\" + Path.GetFileNameWithoutExtension(Pfad5) + "aac") + Catch ex As Exception + End Try + Else + Grapp_RDY = True + Exit Sub + End If + + ElseIf DownloadScope = DownloadScopeEnum.AudioOnly Then + + 'replace format with aac + Pfad2 = Pfad2.Replace(VideoFormat, ".aac") + + 'replace command for aac + Dim ffmpeg_command_Builder() As String = ffmpeg_command.Split(New String() {"-c:a copy"}, System.StringSplitOptions.RemoveEmptyEntries) + ffmpeg_command_temp = "-c:a copy" + ffmpeg_command_Builder(1) + End If #End Region @@ -1728,7 +1777,7 @@ Public Class Main ffmpegInput = "-i " + Chr(34) + CR_URI_Master(0) + Chr(34) - ElseIf SubsOnly = True Then + ElseIf DownloadScope = DownloadScopeEnum.SubsOnly Then ffmpegInput = "-i [Subtitles only]" Else @@ -1736,6 +1785,7 @@ Public Class Main + For i As Integer = 0 To CR_URI_Master.Count - 1 str = Curl(CR_URI_Master(i)) @@ -1748,6 +1798,13 @@ Public Class Main If CBool(InStr(str, "curl:")) = True Then MsgBox("Unable to get master.m3u8" + vbNewLine + str, MsgBoxStyle.Critical) + ElseIf DownloadScope = DownloadScopeEnum.AudioOnly Or MergeAudio = True Then + + If CBool(InStr(str, "x480,")) Then + ResoUsed = "x480" + ElseIf CBool(InStr(str, "x" + Reso.ToString + ",")) Then + ResoUsed = "x" + Reso.ToString + End If ElseIf CBool(InStr(str, "x" + Reso.ToString + ",")) Then ResoUsed = "x" + Reso.ToString @@ -1769,6 +1826,7 @@ Public Class Main End If End If End If + Dim ffmpeg_url_3 As String = Nothing Dim LineChar As String = vbLf If CBool(InStr(str, vbCrLf)) Then @@ -1784,7 +1842,6 @@ Public Class Main End If Next - ffmpegInput = "-i " + Chr(34) + ffmpeg_url_3.Trim() + Chr(34) End If @@ -1806,7 +1863,20 @@ Public Class Main Next End If - If SoftSubsAvailable.Count > 0 Then + + If DownloadScope = DownloadScopeEnum.AudioOnly Then + + + ElseIf MergeAudio = True Then + + + ElseIf SoftSubsAvailable.Count > 0 Then + + Dim MergeSubsNow As Boolean = MergeSubs + + If DownloadScope = DownloadScopeEnum.SubsOnly Then + MergeSubsNow = False + End If Debug.WriteLine("Softsubs Default: " + DefaultSubCR) @@ -1820,7 +1890,7 @@ Public Class Main Next - If MergeSubs = True And SubsOnly = False Then + If MergeSubsNow = True Then Dim DispositionIndex As Integer = 69 Dim SoftSubMergeURLs As String = "" Dim SoftSubMergeMaps As String = " -map 0:v -map 0:a" @@ -1855,6 +1925,7 @@ Public Class Main End If + Else For i As Integer = 0 To SoftSubsList.Count - 1 @@ -1876,6 +1947,7 @@ Public Class Main Dim Pfad4 As String = Path.Combine(Path.GetDirectoryName(Pfad3), FN) WriteText(Pfad4, SubText) Pause(3) + Next If CR_MetadataUsage = False Then @@ -1884,13 +1956,7 @@ Public Class Main ffmpegInput = ffmpegInput + " -i " + Chr(34) + Mdata_File + Chr(34) + " -map_metadata 1" + " -metadata:s:a:0 language=" + CCtoMP4CC(CR_audio_locale) + " " + ffmpeg_command_temp End If End If - Else - If CR_MetadataUsage = False Then - ffmpegInput = ffmpegInput + " " + ffmpeg_command_temp - Else - ffmpegInput = ffmpegInput + " -i " + Chr(34) + Mdata_File + Chr(34) + " -map_metadata 1 " + ffmpeg_command_temp - End If - 'MsgBox(ffmpegInput) + End If ffmpegInput = RemoveExtraSpaces(ffmpegInput) @@ -1976,6 +2042,7 @@ Public Class Main Me.Invalidate() Return Nothing End Function)) + Catch ex As Exception Me.Invoke(New Action(Function() As Object Anime_Add.StatusLabel.Text = "Status: idle" @@ -1995,10 +2062,12 @@ Public Class Main MsgBox(ErrorNoPermisson + vbNewLine + ex.ToString, MsgBoxStyle.Information) 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) Else MsgBox(ex.ToString, MsgBoxStyle.Information) End If - End Try + End Try ' End Sub Function Convert_locale(ByVal locale As String) As String @@ -2585,10 +2654,7 @@ Public Class Main End If Try Dim ffmpeg_command_temp As String = ffmpeg_command - If VideoFormat = ".aac" Then - Dim ffmpeg_command_Builder() As String = ffmpeg_command.Split(New String() {"-c:a copy"}, System.StringSplitOptions.RemoveEmptyEntries) - ffmpeg_command_temp = "-c:a copy" + ffmpeg_command_Builder(1) - End If + Me.Invoke(New Action(Function() As Object Me.Text = "Status: looking for video file" Anime_Add.StatusLabel.Text = "Status: looking for video file" @@ -2931,7 +2997,7 @@ Public Class Main Dim Funimation_m3u8_final As String = Nothing Dim client0 As New WebClient client0.Encoding = Encoding.UTF8 - If SubsOnly = False Then + If DownloadScope = 1 Then For i As Integer = 0 To VideoStreams.Count - 1 If VideoStreams(i).Primary = True Then Funimation_m3u8_Primary = VideoStreams(i).Url @@ -3157,7 +3223,7 @@ Public Class Main End If Dim SoftSubMergeMetatata As String = Nothing If UsedSubs.Count > 0 Then - If MergeSubs = True And SubsOnly = False Then + If MergeSubs = True And DownloadScope = 0 Then Dim DispositionIndex As Integer = 999 Dim LastMerged As String = Nothing Dim MapCount As Integer = -1 @@ -3257,7 +3323,7 @@ Public Class Main #End Region 'MsgBox(Funimation_m3u8_final) 'DownloadPfad = DownloadPfad.Replace(" \", "\") - If SubsOnly = True Then + If DownloadScope = 1 Then Funimation_m3u8_final = "-i [Subtitles only]" End If Dim L1Name_Split As String() = WebbrowserURL.Split(New String() {"/"}, System.StringSplitOptions.RemoveEmptyEntries) @@ -4374,6 +4440,12 @@ Public Class Main LoadingUrl = Url LoadedUrls.Clear() Dim NoBrowser As Boolean = False + + If My.Settings.SaveMode = True Then + Browser.WebView2.CoreWebView2.Navigate(Url) + Exit Sub + End If + 'CR_v1Token = "Get" 'Browser.WebView2.Source = New Uri(Url) 'Exit Sub @@ -4540,27 +4612,21 @@ Public Class Main Dim StreamsUrl As String = Nothing Dim ObjectJson As String - Try - ObjectJson = CurlAuth(ObjectsUrl, Loc_CR_Cookies, Auth2) + ObjectJson = CurlAuth(ObjectsUrl, Loc_CR_Cookies, Auth2) - If CBool(InStr(ObjectJson, "curl:")) = True Then - Browser.WebView2.CoreWebView2.Navigate(ObjectsUrl) - LoadingUrl = ObjectsUrl - Exit Sub - ElseIf CBool(InStr(ObjectJson, "videos/")) = False Then - - 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") - - Exit Sub - End If - - Catch ex As Exception + If CBool(InStr(ObjectJson, "curl:")) = True Then Browser.WebView2.CoreWebView2.Navigate(url) + Exit Sub - End Try + ElseIf CBool(InStr(ObjectJson, "videos/")) = False Then + + 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") + + Exit Sub + End If Try Dim StreamsUrlBuilder() As String = ObjectJson.Split(New String() {"videos/"}, System.StringSplitOptions.RemoveEmptyEntries) @@ -4655,6 +4721,20 @@ Public Class Main End If End Sub + Private Sub SaveModeToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles SaveModeToolStripMenuItem.Click + If My.Settings.SaveMode = False Then + My.Settings.SaveMode = True + MsgBox("SaveMode enabled") + My.Settings.Save() + + Else + My.Settings.SaveMode = False + MsgBox("SaveMode disabled") + My.Settings.Save() + + End If + End Sub + #End Region End Class diff --git a/Crunchyroll Downloader/My Project/Settings.Designer.vb b/Crunchyroll Downloader/My Project/Settings.Designer.vb index 1bc58f8..8bb09e3 100644 --- a/Crunchyroll Downloader/My Project/Settings.Designer.vb +++ b/Crunchyroll Downloader/My Project/Settings.Designer.vb @@ -569,6 +569,18 @@ Namespace My Me("SaveThumbnail") = value End Set End Property + + _ + Public Property SaveMode() As Boolean + Get + Return CType(Me("SaveMode"),Boolean) + End Get + Set + Me("SaveMode") = value + End Set + End Property End Class End Namespace diff --git a/Crunchyroll Downloader/My Project/Settings.settings b/Crunchyroll Downloader/My Project/Settings.settings index 61dcfff..3fbf1d3 100644 --- a/Crunchyroll Downloader/My Project/Settings.settings +++ b/Crunchyroll Downloader/My Project/Settings.settings @@ -131,5 +131,8 @@ False + + False + \ No newline at end of file diff --git a/Crunchyroll Downloader/einstellungen.Designer.vb b/Crunchyroll Downloader/einstellungen.Designer.vb index fa18e5e..5472cc9 100644 --- a/Crunchyroll Downloader/einstellungen.Designer.vb +++ b/Crunchyroll Downloader/einstellungen.Designer.vb @@ -306,10 +306,10 @@ Partial Class Einstellungen Me.TabPage2.HorizontalScrollbarBarColor = True Me.TabPage2.HorizontalScrollbarHighlightOnWheel = False Me.TabPage2.HorizontalScrollbarSize = 10 - Me.TabPage2.Location = New System.Drawing.Point(4, 35) + Me.TabPage2.Location = New System.Drawing.Point(4, 44) Me.TabPage2.Name = "TabPage2" Me.TabPage2.Padding = New System.Windows.Forms.Padding(3) - Me.TabPage2.Size = New System.Drawing.Size(501, 528) + Me.TabPage2.Size = New System.Drawing.Size(501, 519) Me.TabPage2.TabIndex = 1 Me.TabPage2.Text = "Output" Me.TabPage2.VerticalScrollbarBarColor = True @@ -449,7 +449,7 @@ Partial Class Einstellungen Me.CB_Format.FormattingEnabled = True Me.CB_Format.IntegralHeight = False Me.CB_Format.ItemHeight = 23 - Me.CB_Format.Items.AddRange(New Object() {"MP4", "MKV", "AAC (Audio only)"}) + Me.CB_Format.Items.AddRange(New Object() {"MP4", "MKV"}) Me.CB_Format.Location = New System.Drawing.Point(50, 25) Me.CB_Format.Name = "CB_Format" Me.CB_Format.Size = New System.Drawing.Size(175, 29) @@ -1032,7 +1032,7 @@ Partial Class Einstellungen Me.TabControl1.FontWeight = MetroFramework.MetroTabControlWeight.Regular Me.TabControl1.Location = New System.Drawing.Point(22, 60) Me.TabControl1.Name = "TabControl1" - Me.TabControl1.SelectedIndex = 3 + Me.TabControl1.SelectedIndex = 1 Me.TabControl1.Size = New System.Drawing.Size(509, 567) Me.TabControl1.TabIndex = 0 Me.TabControl1.UseSelectable = True @@ -1046,9 +1046,9 @@ Partial Class Einstellungen Me.MetroTabPage2.HorizontalScrollbarBarColor = True Me.MetroTabPage2.HorizontalScrollbarHighlightOnWheel = False Me.MetroTabPage2.HorizontalScrollbarSize = 10 - Me.MetroTabPage2.Location = New System.Drawing.Point(4, 35) + Me.MetroTabPage2.Location = New System.Drawing.Point(4, 44) Me.MetroTabPage2.Name = "MetroTabPage2" - Me.MetroTabPage2.Size = New System.Drawing.Size(501, 528) + Me.MetroTabPage2.Size = New System.Drawing.Size(501, 519) Me.MetroTabPage2.TabIndex = 8 Me.MetroTabPage2.Text = "Naming" Me.MetroTabPage2.VerticalScrollbarBarColor = True