diff --git a/.vs/Crunchyroll Downloader/v15/.suo b/.vs/Crunchyroll Downloader/v15/.suo
index 8b8271e..04743c0 100644
Binary files a/.vs/Crunchyroll Downloader/v15/.suo and b/.vs/Crunchyroll Downloader/v15/.suo differ
diff --git a/.vs/Crunchyroll Downloader/v15/Server/sqlite3/storage.ide b/.vs/Crunchyroll Downloader/v15/Server/sqlite3/storage.ide
index 9c1525c..f83f81f 100644
Binary files a/.vs/Crunchyroll Downloader/v15/Server/sqlite3/storage.ide and b/.vs/Crunchyroll Downloader/v15/Server/sqlite3/storage.ide differ
diff --git a/.vs/Crunchyroll Downloader/v15/Server/sqlite3/storage.ide-shm b/.vs/Crunchyroll Downloader/v15/Server/sqlite3/storage.ide-shm
index 3a7c585..b85c69d 100644
Binary files a/.vs/Crunchyroll Downloader/v15/Server/sqlite3/storage.ide-shm and b/.vs/Crunchyroll Downloader/v15/Server/sqlite3/storage.ide-shm differ
diff --git a/.vs/Crunchyroll Downloader/v15/Server/sqlite3/storage.ide-wal b/.vs/Crunchyroll Downloader/v15/Server/sqlite3/storage.ide-wal
index 33e1bf3..f443cf1 100644
Binary files a/.vs/Crunchyroll Downloader/v15/Server/sqlite3/storage.ide-wal and b/.vs/Crunchyroll Downloader/v15/Server/sqlite3/storage.ide-wal differ
diff --git a/Crunchyroll Downloader/App.config b/Crunchyroll Downloader/App.config
index 6afdd20..1e9d275 100644
--- a/Crunchyroll Downloader/App.config
+++ b/Crunchyroll Downloader/App.config
@@ -6,7 +6,7 @@
-
+
@@ -16,4 +16,10 @@
+
+
+
+
+
+
diff --git a/Crunchyroll Downloader/CefSharp_Browser.vb b/Crunchyroll Downloader/CefSharp_Browser.vb
index 80f2e96..9ed234f 100644
--- a/Crunchyroll Downloader/CefSharp_Browser.vb
+++ b/Crunchyroll Downloader/CefSharp_Browser.vb
@@ -134,7 +134,6 @@ Public Class CefSharp_Browser
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
-
Try
My.Computer.Clipboard.SetText(WebBrowser1.Address)
MsgBox("copied: " + Chr(34) + WebBrowser1.Address + Chr(34))
@@ -247,7 +246,12 @@ Public Class CefSharp_Browser
Exit Sub
End If
End If
+ '
+ If CBool(InStr(e.RequestUrl, "?deviceType=web")) Then
+ Dim parms As String() = e.RequestUrl.Split(New String() {"?deviceType="}, System.StringSplitOptions.RemoveEmptyEntries)
+ Main.FunimationDeviceRegion = "?deviceType=" + parms(1)
+ End If
If CBool(InStr(e.RequestUrl, "https://title-api.prd.funimationsvc.com")) Then
If (Me.InvokeRequired) Then
Me.Invoke(Sub() Main.LoadedUrls.Add(e.RequestUrl))
@@ -266,6 +270,16 @@ Public Class CefSharp_Browser
Exit Sub
End If
Debug.WriteLine(e.RequestUrl)
+ ElseIf CBool(InStr(e.RequestUrl, "/data/v1/episodes/")) Then
+ If (Me.InvokeRequired) Then
+ Me.Invoke(Sub() Main.LoadedUrls.Add(e.RequestUrl))
+ Exit Sub
+ Else
+ Main.LoadedUrls.Add(e.RequestUrl)
+ Exit Sub
+ End If
+ Debug.WriteLine(e.RequestUrl)
+
ElseIf CBool(InStr(e.RequestUrl, "https://beta-api.crunchyroll.com/")) And CBool(InStr(e.RequestUrl, "streams?")) Then
If (Me.InvokeRequired) Then
Me.Invoke(Sub() Main.LoadedUrls.Add(e.RequestUrl))
diff --git a/Crunchyroll Downloader/Main.vb b/Crunchyroll Downloader/Main.vb
index cb2ecd2..8606765 100644
--- a/Crunchyroll Downloader/Main.vb
+++ b/Crunchyroll Downloader/Main.vb
@@ -39,6 +39,8 @@ Public Class Main
Public FunimationAPIRegion As String = Nothing
Public FunimationRegion As String = Nothing
+ Public FunimationDeviceRegion As String = Nothing
+ Public FunimationToken As String = Nothing
Public FunimationShowPath As String = Nothing
Public FunimationEpisodeJSON As String = Nothing
Public FunimtaionAPISeasonID As New List(Of String)
@@ -46,6 +48,7 @@ Public Class Main
Public FunimationSeasonAPIUrl As String = Nothing
Public FunimationJsonBrowser As String = Nothing
+
Public Manager As New MetroStyleManager
Public DarkModeValue As Boolean = False
@@ -378,6 +381,8 @@ Public Class Main
End Sub
Private Sub Form8_Load(sender As Object, e As EventArgs) Handles MyBase.Load
+
+
Me.ContextMenuStrip = ContextMenuStrip1
Dim tbtl As TextBoxTraceListener = New TextBoxTraceListener(TheTextBox)
@@ -701,7 +706,8 @@ Public Class Main
End Try
Try
Dim rkg As RegistryKey = Registry.CurrentUser.OpenSubKey("Software\CRDownloader")
- HardSubFunimation = rkg.GetValue("FunimationHardsub").ToString
+ 'HardSubFunimation = rkg.GetValue("FunimationHardsub").ToString
+ HardSubFunimation = "Disabled"
Catch ex As Exception
End Try
@@ -4808,6 +4814,986 @@ Public Class Main
Return "Japanese"
End If
End Function
+ Private Function ConvertFunimationDubToJson(ByVal Dub As String) As String
+ If Dub = "english" Then
+ Return "en"
+ ElseIf Dub = "spanish(Mexico)" Then
+ Return "es"
+ ElseIf Dub = "portuguese(Brazil)" Then
+ Return "pt"
+ Else
+ Return "ja"
+ End If
+ End Function
+ Private Function ConvertJsonToFunimationDub(ByVal Dub As String) As String
+ If Dub = "en" Then
+ Return "english"
+ ElseIf Dub = "es" Then
+ Return "spanish(Mexico)"
+ ElseIf Dub = "pt" Then
+ Return "portuguese(Brazil)"
+ Else
+ Return "ja"
+ End If
+ End Function
+ Public Sub GetFunimationNewJS_VideoProxy(Optional ByVal v1JsonURL As String = Nothing, Optional ByVal v1JsonData As String = Nothing)
+
+
+ Dim Collector As New TaskCookieVisitor
+ Dim CM As ICookieManager = CefSharp_Browser.WebBrowser1.GetCookieManager
+ CM.VisitAllCookies(Collector)
+
+ Dim list As List(Of Global.CefSharp.Cookie) = Collector.Task.Result()
+ Dim Cookie As String = ""
+ For i As Integer = 0 To list.Count - 1
+
+ If CBool(InStr(list.Item(i).Domain, "funimation.com")) Then 'list.Item(i).Domain = "funimation.com" Then
+ 'MsgBox(list.Item(i).Name + vbNewLine + list.Item(i).Value)
+
+ Cookie = Cookie + list.Item(i).Name + "=" + list.Item(i).Value + ";"
+ End If
+
+ If CBool(InStr(list.Item(i).Domain, "funimation.com")) And CBool(InStr(list.Item(i).Name, "src_token")) Then 'list.Item(i).Domain = "funimation.com" Then
+ 'MsgBox(list.Item(i).Name + vbNewLine + list.Item(i).Value)
+
+ FunimationToken = "Token " + list.Item(i).Value
+ End If
+ If CBool(InStr(list.Item(i).Domain, "funimation.com")) And CBool(InStr(list.Item(i).Name, "region")) Then 'list.Item(i).Domain = "funimation.com" Then
+ 'MsgBox(list.Item(i).Name + vbNewLine + list.Item(i).Value)
+
+ FunimationDeviceRegion = "?deviceType=web&" + list.Item(i).Name + "=" + list.Item(i).Value
+ End If
+ Next
+ ' region=US;
+
+ LoadedUrls.Clear()
+ Dim Evaluator = New Thread(Sub() Me.GetFunimationNewJS_Video(v1JsonURL, v1JsonData))
+ Evaluator.Start()
+
+
+ End Sub
+ Public Sub GetFunimationNewJS_Video(ByVal v1JsonUrl As String, ByVal v1JsonData As String) ', ByVal WebsiteURL As String
+ Debug.WriteLine(v1JsonUrl)
+ Dim v1Json As String = Nothing
+
+ If v1JsonUrl = Nothing Then
+ v1Json = v1JsonData
+ Else
+ Try
+ 'Throw New Exception("TEst")
+ Using client As New WebClient()
+ client.Encoding = System.Text.Encoding.UTF8
+ client.Headers.Add(My.Resources.ffmpeg_user_agend.Replace(Chr(34), ""))
+ v1Json = client.DownloadString(v1JsonUrl)
+ End Using
+ Catch ex As Exception
+
+
+ Debug.WriteLine("error- getting v1Json data")
+ Debug.WriteLine(ex.ToString)
+
+ Me.Invoke(New Action(Function() As Object
+ 'Me.Text = "Status: error - getting v1Json data"
+
+ FunimationJsonBrowser = "v1Json"
+ Navigate(v1JsonUrl)
+ 'Anime_Add.StatusLabel.Text = "Status: error - getting v1Json data"
+ Me.Invalidate()
+ Return Nothing
+ End Function))
+ Exit Sub
+ End Try
+ End If
+ Debug.WriteLine("v1Json: " + v1Json)
+ If v1Json = Nothing Then
+
+ Me.Invoke(New Action(Function() As Object
+ Me.Text = "Status: error - getting v1Json data"
+
+ Anime_Add.StatusLabel.Text = "Status: error - getting v1Json data"
+ Me.Invalidate()
+ Return Nothing
+ End Function))
+ Exit Sub
+ 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"
+ Me.Invalidate()
+ Return Nothing
+ End Function))
+
+ Funimation_Grapp_RDY = False
+#Region "Name"
+
+ Dim DownloadPfad As String = Nothing
+ Dim FunimationSeason As String = Nothing
+ Dim FunimationEpisode As String = Nothing
+ Dim FunimationTitle As String = Nothing
+ Dim FunimationEpisodeTitle As String = Nothing
+ Dim FunimationDub As String = Nothing
+ Dim FunimationAudioMap As String = Nothing
+ Dim FunimationEpisodeJson As String = Nothing
+
+
+
+
+ Dim ser As JObject = JObject.Parse(v1Json)
+
+
+
+ Dim data As List(Of JToken) = ser.Children().ToList
+
+ For Each item As JProperty In data
+ item.CreateReader()
+ Select Case item.Name
+ Case "id" 'id.json for video
+
+ FunimationEpisodeJson = item.Value.ToString
+ Case "episodeNumber"
+
+ Dim FunimationEpisode3 As String = RemoveExtraSpaces(item.Value.ToString)
+ If Episode_Prefix = "[default episode prefix]" Then
+ FunimationEpisode = "Episode " + FunimationEpisode3
+ Else
+ FunimationEpisode = Episode_Prefix + FunimationEpisode3
+ End If
+
+ Case "name"
+
+ Dim NameData As List(Of JToken) = item.Values.ToList()
+
+
+ For Each Name As JProperty In NameData
+ Select Case Name.Name
+ Case "en"
+ FunimationEpisodeTitle = Name.Value.ToString
+ Debug.WriteLine("FunimationEpisodeTitle: " + FunimationEpisodeTitle)
+ End Select
+
+
+ Next
+
+
+
+
+ Case "season" 'each record is inside the entries array
+
+
+ Dim SubData As List(Of JToken) = item.Values.ToList()
+
+
+ For Each SubItem As JProperty In SubData
+
+ Select Case SubItem.Name
+ Case "name"
+
+ If Season_Prefix = "[default season prefix]" Then
+ Dim SeasonNameData As List(Of JToken) = SubItem.Values.ToList()
+
+
+ For Each SeasonName As JProperty In SeasonNameData
+ Select Case SeasonName.Name
+ Case "en"
+ FunimationSeason = SeasonName.Value.ToString
+ Debug.WriteLine("FunimationSeason: " + FunimationSeason)
+ End Select
+
+
+ Next
+
+
+ End If
+ Case "number"
+
+ If Season_Prefix = "[default season prefix]" Then
+ 'FunimationSeason = Entry("name")
+ Else
+ Dim EpisodeNumer As String = SubItem.Value.ToString
+ FunimationSeason = Season_Prefix + " " + EpisodeNumer
+ Debug.WriteLine("FunimationSeason: " + FunimationSeason)
+
+ End If
+
+
+ End Select
+ Next
+
+
+
+
+ Case "show" 'each record is inside the entries array
+
+
+ Dim SubData As List(Of JToken) = item.Values.ToList()
+
+
+ For Each SubItem As JProperty In SubData
+
+ Select Case SubItem.Name
+ Case "name"
+ Dim SeasonNameData As List(Of JToken) = SubItem.Values.ToList()
+
+
+ For Each SeasonName As JProperty In SeasonNameData
+ Select Case SeasonName.Name
+ Case "en"
+ FunimationTitle = SeasonName.Value.ToString
+ Debug.WriteLine("FunimationTitle: " + FunimationTitle)
+ End Select
+
+
+ Next
+
+
+ End Select
+ Next
+
+
+
+
+
+
+
+ End Select
+ Next
+
+ FunimationTitle = String.Join(" ", FunimationTitle.Split(invalids, StringSplitOptions.RemoveEmptyEntries)).TrimEnd("."c)
+ FunimationEpisodeTitle = String.Join(" ", FunimationEpisodeTitle.Split(invalids, StringSplitOptions.RemoveEmptyEntries)).TrimEnd("."c)
+
+ FunimationDub = ConvertFunimationDub(DubFunimation) 'FunimationDub2(0)
+
+ Dim DefaultName As String = RemoveExtraSpaces(FunimationTitle + " " + FunimationSeason + " " + FunimationEpisode)
+
+ If CR_NameMethode = 1 Then
+ DefaultName = RemoveExtraSpaces(FunimationTitle + " " + FunimationSeason + " " + FunimationEpisodeTitle)
+ ElseIf CR_NameMethode = 2 Then
+ DefaultName = RemoveExtraSpaces(FunimationTitle + " " + FunimationSeason + " " + FunimationEpisode + " " + FunimationEpisodeTitle)
+ ElseIf CR_NameMethode = 3 Then
+ DefaultName = RemoveExtraSpaces(FunimationTitle + " " + FunimationEpisodeTitle + " " + FunimationSeason + " " + FunimationEpisode)
+ End If
+
+ DefaultName = DefaultName.Replace("'", "'")
+
+
+
+
+ 'Dim DefaultPath As String = Pfad + "\" + DefaultName + VideoFormat
+ 'DefaultPath = DefaultPath.Replace("\\", "\")
+#End Region
+
+#Region "Pfad"
+ Dim TextBox2_Text As String = Nothing
+
+ Me.Invoke(New Action(Function() As Object
+ TextBox2_Text = Anime_Add.TextBox2.Text
+
+ Return Nothing
+ End Function))
+
+ If TextBox2_Text = Nothing Or TextBox2_Text = "Use Custom Name" Then
+
+ Else
+ Me.Invoke(New Action(Function() As Object
+
+ Return Nothing
+ End Function))
+ End If
+
+ DefaultName = DefaultName.Replace(":", "")
+
+ DownloadPfad = UseSubfolder(FunimationTitle, FunimationSeason, Pfad)
+
+ If Not Directory.Exists(Path.GetDirectoryName(DownloadPfad)) Then
+ ' Nein! Jetzt erstellen...
+ Try
+ Directory.CreateDirectory(Path.GetDirectoryName(DownloadPfad))
+ DownloadPfad = Chr(34) + DownloadPfad + DefaultName + VideoFormat + Chr(34)
+
+ Catch ex As Exception
+ ' Ordner wurde nich erstellt
+ DownloadPfad = Chr(34) + Pfad + DefaultName + VideoFormat + Chr(34)
+ End Try
+ Else
+ DownloadPfad = Chr(34) + DownloadPfad + DefaultName + VideoFormat + Chr(34)
+ End If
+
+
+#Region "lösche doppel download"
+
+ Dim Pfad5 As String = DownloadPfad.Replace(Chr(34), "")
+ If My.Computer.FileSystem.FileExists(Pfad5) Then 'Pfad = Kompeltter Pfad mit Dateinamen + ENdung
+ Me.Invoke(New Action(Function() As Object
+ Me.Text = "Status: File already exists."
+ Me.Invalidate()
+ Return Nothing
+ End Function))
+
+ If MessageBox.Show("The file " + Pfad5 + " already exists." + vbNewLine + "You want to override it?", "File exists!", MessageBoxButtons.OKCancel) = DialogResult.OK Then
+ Try
+ My.Computer.FileSystem.DeleteFile(Pfad5)
+ Me.Invoke(New Action(Function() As Object
+ Me.Text = "Status: Old file overwritten."
+ Me.Invalidate()
+ Return Nothing
+ End Function))
+
+ Catch ex As Exception
+ End Try
+ Else
+ Me.Invoke(New Action(Function() As Object
+ Me.Text = "Crunchyroll Downloader"
+ Me.Invalidate()
+ Return Nothing
+ End Function))
+
+ Funimation_Grapp_RDY = True
+ Exit Sub
+ End If
+
+ End If
+#End Region
+
+#End Region
+
+#Region "json"
+ Dim EpisodeJsonString As String = Nothing
+
+
+ Dim PlayerClient As New WebClient
+
+ PlayerClient.Encoding = Encoding.UTF8
+ PlayerClient.Headers.Add(My.Resources.ffmpeg_user_agend.Replace(Chr(34), ""))
+ PlayerClient.Headers.Add(HttpRequestHeader.Accept, "application/json, text/plain, */*")
+ PlayerClient.Headers.Add("origin: https://www.funimation.com")
+ PlayerClient.Headers.Add(HttpRequestHeader.Referer, "https://www.funimation.com/")
+
+ Dim BaseUrl As String = "https://playback.prd.funimationsvc.com/v1/play/"
+ If FunimationToken = Nothing Then
+ BaseUrl = "https://playback.prd.funimationsvc.com/v1/play/anonymous/"
+ Else
+ PlayerClient.Headers.Add(HttpRequestHeader.Authorization, FunimationToken)
+ End If
+
+ 'FunimationToken
+ 'MsgBox(WebbrowserCookie)
+ Debug.WriteLine(PlayerClient.Headers.ToString)
+ If WebbrowserCookie = Nothing Then
+ Else
+ PlayerClient.Headers.Add(HttpRequestHeader.Cookie, WebbrowserCookie)
+ End If
+
+ If SystemWebBrowserCookie = Nothing Then
+ Else
+ PlayerClient.Headers.Add(HttpRequestHeader.Cookie, SystemWebBrowserCookie)
+ End If
+ ' Dim PlayerPage As String = SubsClient.DownloadString("https://www.funimation.com/player/" + ExperienceID + "/?bdub=0&qid=")
+
+ Try
+ 'Throw New System.Exception("Test")
+ 'MsgBox(BaseUrl + FunimationEpisodeJson + FunimationDeviceRegion)
+ EpisodeJsonString = PlayerClient.DownloadString(BaseUrl + FunimationEpisodeJson + FunimationDeviceRegion)
+
+ Catch ex As Exception
+ Debug.WriteLine(ex.ToString)
+ Pause(2)
+ Debug.WriteLine("showexperience data via browser")
+ 'Me.Invoke(New Action(Function() As Object
+ PlayerClient.Headers.Add(HttpRequestHeader.AcceptEncoding, "gzip")
+
+ EpisodeJsonString = DecompressString(PlayerClient.DownloadData(BaseUrl + FunimationEpisodeJson + FunimationDeviceRegion))
+
+ 'Debug.WriteLine("Thread Name: " + Thread.CurrentThread.Name)
+
+ 'ErrorBrowserString = "Funimation_showexperience"
+ 'ErrorBrowserUrl = "https://www.funimation.com/api/showexperience/" + ExperienceID + "/?pinst_id=fzQc9p9f"
+ 'Debug.WriteLine("2-showexperience data via browser")
+ 'ErrorBrowser.ShowDialog()
+ 'Debug.WriteLine("3-showexperience data via browser")
+ 'showexperience = ErrorBrowserBackString
+
+
+ End Try
+
+ 'MsgBox(EpisodeJsonString)
+
+
+ Dim SubsFiles As New List(Of FunimationSubs)
+ Dim VideoStreams As New List(Of FunimationStream)
+
+ Dim EpisodeJson As JObject = JObject.Parse(EpisodeJsonString)
+ Dim EpisodeJsonData As List(Of JToken) = EpisodeJson.Children().ToList
+
+ For Each item As JProperty In EpisodeJsonData
+ item.CreateReader()
+ Select Case item.Name
+
+ Case "fallback"
+
+
+ ' MsgBox(SubItem.Value.ToString())
+
+ Dim SubData2 As List(Of JToken) = item.Values.ToList
+ 'MsgBox(SubData2.Count.ToString)
+ For i As Integer = 0 To SubData2.Count - 1
+ Try
+ Dim Version As String = SubData2(i).Item("version").ToString
+ Dim audioLanguage As String = SubData2(i).Item("audioLanguage").ToString
+ Dim Url As String = SubData2(i).Item("manifestPath").ToString
+ Debug.WriteLine(Version)
+ Debug.WriteLine(audioLanguage)
+ Debug.WriteLine(Url)
+ Dim Format As String = SubData2(i).Item("fileExt").ToString
+
+ If Format = "m3u8" Then
+ VideoStreams.Add(New FunimationStream(audioLanguage, Version, Url, False))
+ End If
+
+ Catch ex As Exception
+
+ End Try
+
+
+
+ Next
+
+
+
+
+ Case "primary" 'each record is inside the entries array
+
+ Dim Version As String = Nothing ' item.Item("version").ToString
+ Dim audioLanguage As String = Nothing ' item.Item("audioLanguage").ToString
+ Dim manifesUrl As String = Nothing 'item.Item("manifestPath").ToString
+ 'Dim Format As String = SubData2(i).Item("fileExt").ToString
+
+
+ Dim SubData As List(Of JToken) = item.Values.ToList()
+
+
+ For Each SubItem As JProperty In SubData
+
+ Select Case SubItem.Name
+ ' Case "manifestPath"
+ ' Funimation_m3u8_Main = SubItem.Value.ToString
+ '' MsgBox()
+ Case "version"
+ Version = SubItem.Value.ToString
+ Case "audioLanguage"
+ audioLanguage = SubItem.Value.ToString
+ Case "manifestPath"
+ manifesUrl = SubItem.Value.ToString
+ Case "subtitles"
+ ' MsgBox(SubItem.Value.ToString())
+
+ Dim SubData2 As List(Of JToken) = SubItem.Values.ToList
+ 'MsgBox(SubData2.Count.ToString)
+ For i As Integer = 0 To SubData2.Count - 1
+ Try
+ Dim LangCode As String = SubData2(i).Item("languageCode").ToString
+ Dim Format As String = SubData2(i).Item("fileExt").ToString
+ Dim Url As String = SubData2(i).Item("filePath").ToString
+
+ SubsFiles.Add(New FunimationSubs(LangCode, Format, Url))
+ Catch ex As Exception
+
+ End Try
+
+
+
+ Next
+
+ End Select
+ Next
+
+ Debug.WriteLine("primary version: " + Version)
+ Debug.WriteLine("primary audioLanguage: " + audioLanguage)
+ Debug.WriteLine("primary manifesUrl: " + manifesUrl)
+ ' If Format = "m3u8" Then
+ VideoStreams.Add(New FunimationStream(audioLanguage, Version, manifesUrl, True))
+ ' End If
+
+ End Select
+ Next
+
+#End Region
+
+
+
+
+
+#Region "m3u8 URL"
+ Dim Funimation_m3u8_Main As String = Nothing
+
+ Dim Funimation_m3u8_final As String = Nothing
+ Dim client0 As New WebClient
+ client0.Encoding = Encoding.UTF8
+
+ If SubsOnly = False Then
+
+ For i As Integer = 0 To VideoStreams.Count - 1
+ If DubFunimation = "Disabled" Then
+ If VideoStreams(i).Primary = True Then
+ Funimation_m3u8_Main = VideoStreams(i).Url
+ Exit For
+ End If
+ Else
+ If VideoStreams(i).audioLanguage = ConvertFunimationDubToJson(DubFunimation) Then
+ Funimation_m3u8_Main = VideoStreams(i).Url
+ Exit For
+ End If
+ End If
+ Next
+
+ 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
+
+ Try
+ My.Computer.Clipboard.SetText(EpisodeJsonString)
+ Catch ex As Exception
+ End Try
+ Return Nothing
+ End Function))
+ Exit Sub
+ Else
+ Funimation_Grapp_RDY = True
+ Exit Sub
+ End If
+
+ End If
+ Me.Invoke(New Action(Function() As Object
+ Me.Text = "Status: Video found!"
+ Me.Invalidate()
+ Return Nothing
+ End Function))
+
+ Dim str1 As String = client0.DownloadString(Funimation_m3u8_Main.Replace(Chr(34), ""))
+
+ If CBool(InStr(str1, "# AUDIO groups")) Then
+ Dim FunimationAudio() As String = str1.Split(New String() {"# AUDIO groups"}, System.StringSplitOptions.RemoveEmptyEntries)
+ Dim FunimationAudio2() As String = FunimationAudio(1).Split(New String() {"URI=" + Chr(34)}, System.StringSplitOptions.RemoveEmptyEntries)
+ Dim FunimationAudio3() As String = FunimationAudio2(1).Split(New String() {Chr(34)}, System.StringSplitOptions.RemoveEmptyEntries)
+ FunimationAudioMap = " -headers " + My.Resources.ffmpeg_user_agend + " -i " + Chr(34) + FunimationAudio3(0) + Chr(34)
+ End If
+
+ Dim Streams() As String = str1.Split(New String() {"RESOLUTION="}, System.StringSplitOptions.RemoveEmptyEntries)
+
+
+ 'MsgBox(Funimation_m3u8_Main)
+ Dim FunimationBackupm3u8 As String = Nothing
+ For i As Integer = 0 To Streams.Length - 1
+
+ Try
+
+ If CBool(InStr(Streams(i), "x" + Reso.ToString)) Then
+ Dim Streams2() As String = Streams(i).Split(New String() {"https://"}, System.StringSplitOptions.RemoveEmptyEntries)
+ Dim Streams3() As String = Streams2(1).Split(New String() {"#EXT-"}, System.StringSplitOptions.RemoveEmptyEntries)
+ Dim StreamURL As String = "https://" + Streams3(0).Trim
+
+ Dim CheckClient As New WebClient
+ CheckClient.Encoding = Encoding.UTF8
+ If Not WebbrowserCookie = Nothing Then
+ CheckClient.Headers.Add(HttpRequestHeader.Cookie, WebbrowserCookie)
+ ElseIf Not SystemWebBrowserCookie = Nothing Then
+ CheckClient.Headers.Add(HttpRequestHeader.Cookie, SystemWebBrowserCookie)
+ End If
+
+ Dim m3u8String As String = CheckClient.DownloadString(StreamURL)
+ 'MsgBox(m3u8String)
+ Dim keyfileurl() As String = m3u8String.Split(New String() {"URI=" + Chr(34)}, System.StringSplitOptions.RemoveEmptyEntries)
+ Dim keyfileurl2() As String = keyfileurl(1).Split(New String() {Chr(34)}, System.StringSplitOptions.RemoveEmptyEntries)
+ Dim keyfileurl3 As String = keyfileurl2(0)
+
+ If CBool(InStr(keyfileurl2(0), "https://")) Then
+
+ Else
+ Dim c() As String = New Uri(StreamURL).Segments
+ Dim path As String = "https://" + New Uri(StreamURL).Host
+
+ For i3 As Integer = 0 To c.Count - 2
+ path = path + c(i3)
+ Next
+ keyfileurl3 = path + keyfileurl2(0) 'New Uri(textLenght(i)).LocalPath + keyfileurl2(0)
+ End If
+
+ 'MsgBox(keyfileurl3)
+ Try
+ Dim CheckClient2 As New WebClient
+ CheckClient2.Encoding = System.Text.Encoding.UTF8
+ Dim testdl As String = CheckClient2.DownloadString(keyfileurl3)
+ Funimation_m3u8_final = StreamURL
+ FunimationBackupm3u8 = StreamURL
+ Exit For
+ Catch ex As Exception
+ Debug.WriteLine(keyfileurl3 + vbNewLine + vbNewLine + ex.ToString)
+ End Try
+ ElseIf CBool(InStr(Streams(i), ResoFunBackup)) Then
+ Dim Streams2() As String = Streams(i).Split(New String() {"https://"}, System.StringSplitOptions.RemoveEmptyEntries)
+ Dim Streams3() As String = Streams2(1).Split(New String() {"#EXT-"}, System.StringSplitOptions.RemoveEmptyEntries)
+ Dim StreamURL As String = "https://" + Streams3(0).Trim
+
+ Dim CheckClient As New WebClient
+ CheckClient.Encoding = Encoding.UTF8
+ If Not WebbrowserCookie = Nothing Then
+ CheckClient.Headers.Add(HttpRequestHeader.Cookie, WebbrowserCookie)
+ ElseIf Not SystemWebBrowserCookie = Nothing Then
+ CheckClient.Headers.Add(HttpRequestHeader.Cookie, SystemWebBrowserCookie)
+ End If
+ Dim m3u8String As String = CheckClient.DownloadString(StreamURL)
+ Dim keyfileurl() As String = m3u8String.Split(New String() {"URI=" + Chr(34)}, System.StringSplitOptions.RemoveEmptyEntries)
+ Dim keyfileurl2() As String = keyfileurl(1).Split(New String() {Chr(34)}, System.StringSplitOptions.RemoveEmptyEntries)
+ Dim keyfileurl3 As String = keyfileurl2(0)
+
+ If CBool(InStr(keyfileurl2(0), "https://")) Then
+
+ Else
+ Dim c() As String = New Uri(StreamURL).Segments
+ Dim path As String = "https://" + New Uri(StreamURL).Host
+
+ For i3 As Integer = 0 To c.Count - 2
+ path = path + c(i3)
+ Next
+ keyfileurl3 = path + keyfileurl2(0) 'New Uri(textLenght(i)).LocalPath + keyfileurl2(0)
+ End If
+
+ 'MsgBox(keyfileurl3)
+ Try
+ Dim CheckClient2 As New WebClient
+ CheckClient2.Encoding = System.Text.Encoding.UTF8
+ Dim testdl As String = CheckClient2.DownloadString(keyfileurl3)
+ FunimationBackupm3u8 = StreamURL
+ Exit For
+ Catch ex As Exception
+ Debug.WriteLine(keyfileurl3 + vbNewLine + vbNewLine + ex.ToString)
+ End Try
+
+ End If
+
+ Catch ex As Exception
+
+ End Try
+ Next
+
+
+ If Funimation_m3u8_final = Nothing And FunimationBackupm3u8 = Nothing Then
+
+ Me.Invoke(New Action(Function() As Object
+ Me.Text = "Status: Resolution not found!"
+ Me.Invalidate()
+ DialogTaskString = "Funimation_Resolution"
+ ResoNotFoundString = str1
+ ErrorDialog.ShowDialog()
+ Return Nothing
+ End Function))
+ ResoFunBackup = ResoBackString
+ For i As Integer = 0 To Streams.Length - 1
+ If CBool(InStr(Streams(i), ResoBackString)) Then
+ Dim Streams2() As String = Streams(i).Split(New String() {"https://"}, System.StringSplitOptions.RemoveEmptyEntries)
+ Dim Streams3() As String = Streams2(1).Split(New String() {"#EXT-"}, System.StringSplitOptions.RemoveEmptyEntries)
+ Dim StreamURL As String = "https://" + Streams3(0).Trim
+ Dim CheckClient As New WebClient
+ CheckClient.Encoding = Encoding.UTF8
+
+ If Not WebbrowserCookie = Nothing Then
+ CheckClient.Headers.Add(HttpRequestHeader.Cookie, WebbrowserCookie)
+ ElseIf Not SystemWebBrowserCookie = Nothing Then
+ CheckClient.Headers.Add(HttpRequestHeader.Cookie, SystemWebBrowserCookie)
+ End If
+
+ Dim m3u8String As String = CheckClient.DownloadString(StreamURL)
+ 'MsgBox(textLenght(i))
+ Dim keyfileurl() As String = m3u8String.Split(New String() {"URI=" + Chr(34)}, System.StringSplitOptions.RemoveEmptyEntries)
+ Dim keyfileurl2() As String = keyfileurl(1).Split(New String() {Chr(34) + ","}, System.StringSplitOptions.RemoveEmptyEntries)
+ Dim keyfileurl3 As String = keyfileurl2(0)
+ If CBool(InStr(keyfileurl2(0), "https://")) Then
+ Else
+ Dim c() As String = New Uri(StreamURL).Segments
+ Dim path As String = "https://" + New Uri(StreamURL).Host
+
+ For i3 As Integer = 0 To c.Count - 2
+ path = path + c(i3)
+ Next
+ keyfileurl3 = path + keyfileurl2(0) 'New Uri(textLenght(i)).LocalPath + keyfileurl2(0)
+ End If
+ Try
+ Dim CheckClient2 As New WebClient
+ CheckClient2.Encoding = System.Text.Encoding.UTF8
+ Dim testdl As String = CheckClient2.DownloadString(keyfileurl3)
+ Funimation_m3u8_final = StreamURL
+ Exit For
+ Catch ex As Exception
+ Debug.WriteLine(keyfileurl3 + vbNewLine + ex.ToString)
+ End Try
+
+
+ 'Funimation_m3u8_final = textLenght(i)
+ 'Exit For
+
+ End If
+ Next
+ ElseIf Funimation_m3u8_final = Nothing Then
+ Funimation_m3u8_final = FunimationBackupm3u8
+ Else
+ Me.Invoke(New Action(Function() As Object
+ Me.Text = "Status: Resolution found!"
+ Me.Invalidate()
+ Return Nothing
+ End Function))
+
+ End If
+ Else
+ Me.Invoke(New Action(Function() As Object
+ Me.Text = "Status: Substitles only mode - skipped video"
+ Me.Invalidate()
+ Return Nothing
+ End Function))
+ End If
+ 'MsgBox(FunimationName3)
+ 'MsgBox(Funimation_m3u8_final)
+#Region "thumbnail"
+
+ 'Dim thumbnail As String() = v1Json.Split(New String() {"episodeThumbnail"}, System.StringSplitOptions.RemoveEmptyEntries)
+ 'Dim thumbnail2 As String() = thumbnail(1).Split(New String() {"https://"}, System.StringSplitOptions.RemoveEmptyEntries) '(New [Char]() {"-"})
+ 'Dim thumbnail3 As String() = thumbnail2(1).Split(New String() {Chr(34)}, System.StringSplitOptions.RemoveEmptyEntries) '(New [Char]() {"-"})
+ Dim thumbnail4 As String = ""
+ For Each item As JProperty In data
+ item.CreateReader()
+ Select Case item.Name
+ Case "images" 'each record is inside the entries array
+ For Each Entry As JObject In item.Values
+
+ Dim key As String = Entry("key").ToString
+
+ If key = "episodeThumbnail" Then
+ Dim path As String = Entry("path").ToString
+ thumbnail4 = path
+ Exit Select
+ End If
+
+
+ 'Dim factor As String = Entry("factor").ToList.Item(0)
+ ' you can continue listing the array items untill you reach the end of you array
+
+ Next
+
+
+
+ End Select
+ Next
+
+
+#End Region
+ Dim ResoHTMLDisplay As String = Reso.ToString + "p"
+
+#Region "Subs"
+
+
+ Dim HardSubFound As Boolean = False
+ Dim HardSubSplittString As String = Nothing
+ Dim UsedSub As String = Nothing
+ Dim UsedSubs As New List(Of String)
+ Dim ffmpeg_hardsub As String = Nothing
+
+ For i As Integer = 0 To SubsFiles.Count - 1
+ If SubFunimation.Count = 0 Then
+ Exit For
+ End If
+
+ If Funimation_dfxp = True And SubsFiles(i).Format = "dfxp" And CBool(InStr(SubFunimationString, SubsFiles(i).LangugageCode)) Then
+ UsedSubs.Add(SubsFiles(i).Url + " , " + SubsFiles(i).LangugageCode)
+
+ ElseIf Funimation_vtt = True And SubsFiles(i).Format = "vtt" And CBool(InStr(SubFunimationString, SubsFiles(i).LangugageCode)) Then
+ UsedSubs.Add(SubsFiles(i).Url + " , " + SubsFiles(i).LangugageCode)
+
+ ElseIf Funimation_srt = True And SubsFiles(i).Format = "srt" And CBool(InStr(SubFunimationString, SubsFiles(i).LangugageCode)) Then
+ UsedSubs.Add(SubsFiles(i).Url + " , " + SubsFiles(i).LangugageCode)
+ End If
+
+ Next
+
+
+ '
+ Dim SoftSubMergeURLs As String = Nothing
+ Dim SoftSubMergeMaps As String = " -map 0:v -map 0:a"
+ If Not FunimationAudioMap = Nothing Then
+ SoftSubMergeMaps = " -map 0:v -map 1:a"
+ End If
+ Dim SoftSubMergeMetatata As String = Nothing
+
+ If UsedSubs.Count > 0 Then
+ If MergeSubs = True And SubsOnly = False Then
+ Dim DispositionIndex As Integer = 999
+ Dim LastMerged As String = Nothing
+ Dim MapCount As Integer = -1
+ For i As Integer = 0 To UsedSubs.Count - 1
+ Dim SoftSub As String() = UsedSubs.Item(i).Split(New String() {" , "}, System.StringSplitOptions.RemoveEmptyEntries)
+ If CCtoMP4CC(SoftSub(1)) = LastMerged Then
+ Continue For
+ Else
+ LastMerged = CCtoMP4CC(SoftSub(1))
+ End If
+ MapCount = MapCount + 1
+ If DefaultSubFunimation = SoftSub(1) Then
+ 'Debug.WriteLine(SoftSub(1))
+ DispositionIndex = MapCount
+ End If
+ If SoftSubMergeURLs = Nothing Then
+ SoftSubMergeURLs = " -headers " + My.Resources.ffmpeg_user_agend + " -i " + Chr(34) + SoftSub(0) + Chr(34)
+ Else
+ SoftSubMergeURLs = SoftSubMergeURLs + " -headers " + My.Resources.ffmpeg_user_agend + " -i " + Chr(34) + SoftSub(0) + Chr(34)
+ End If
+
+ If FunimationAudioMap = Nothing Then
+ SoftSubMergeMaps = SoftSubMergeMaps + " -map " + (MapCount + 1).ToString
+ Else
+ SoftSubMergeMaps = SoftSubMergeMaps + " -map " + (MapCount + 2).ToString
+ End If
+
+ If SoftSubMergeMetatata = Nothing Then
+ 'SoftSubMergeMetatata = " -metadata:s:s:" + i.ToString + " language=" + CCtoMP4CC(SoftSub(1))
+ SoftSubMergeMetatata = " -metadata:s:s:" + MapCount.ToString + " language=" + CCtoMP4CC(SoftSub(1)) + " -metadata:s:s:" + MapCount.ToString + " title=" + Chr(34) + HardSubValuesToDisplay(Chr(34) + SoftSub(1) + Chr(34)) + Chr(34) + " -metadata:s:s:" + MapCount.ToString + " handler_name=" + Chr(34) + HardSubValuesToDisplay(Chr(34) + SoftSub(1) + Chr(34)) + Chr(34)
+ Else
+ SoftSubMergeMetatata = SoftSubMergeMetatata + " -metadata:s:s:" + MapCount.ToString + " language=" + CCtoMP4CC(SoftSub(1)) + " -metadata:s:s:" + MapCount.ToString + " title=" + Chr(34) + HardSubValuesToDisplay(Chr(34) + SoftSub(1) + Chr(34)) + Chr(34) + " -metadata:s:s:" + MapCount.ToString + " handler_name=" + Chr(34) + HardSubValuesToDisplay(Chr(34) + SoftSub(1) + Chr(34)) + Chr(34)
+ 'SoftSubMergeMetatata + " -metadata:s:s:" + i.ToString + " language=" + CCtoMP4CC(SoftSubs2(i))
+
+
+ End If
+
+ Next
+ If DispositionIndex < 999 Then
+ SoftSubMergeMetatata = SoftSubMergeMetatata + " -disposition:s:" + DispositionIndex.ToString + " default"
+ End If
+ Else
+ Dim SubsClient As New WebClient
+ SubsClient.Encoding = Encoding.UTF8
+ If Not WebbrowserCookie = Nothing Then
+ SubsClient.Headers.Add(HttpRequestHeader.Cookie, WebbrowserCookie)
+ ElseIf Not SystemWebBrowserCookie = Nothing Then
+ SubsClient.Headers.Add(HttpRequestHeader.Cookie, SystemWebBrowserCookie)
+ End If
+ For i As Integer = 0 To UsedSubs.Count - 1
+ LabelUpdate = "Status: downloading subtitle file"
+ LabelEpisode = UsedSubs(i)
+ Dim SoftSub As String() = UsedSubs.Item(i).Split(New String() {" , "}, System.StringSplitOptions.RemoveEmptyEntries)
+ Dim SoftSub_3 As String = SoftSub(0).Replace("\/", "/")
+ Dim Subfile As String = SubsClient.DownloadString(SoftSub_3)
+ Dim Pfad3 As String = DownloadPfad.Replace(Chr(34), "")
+ 'MsgBox(FN)
+ Dim SubtitelFormat As String = "srt"
+ If CBool(InStr(SoftSub_3, ".vtt")) Then
+ SubtitelFormat = "vtt"
+ ElseIf CBool(InStr(SoftSub_3, ".dfxp")) Then
+ SubtitelFormat = "dfxp"
+ End If
+ Dim FN As String = Path.ChangeExtension(Path.Combine(Path.GetFileNameWithoutExtension(Pfad3) + " " + SoftSub(1) + Path.GetExtension(Pfad3)), SubtitelFormat)
+
+ If i = 0 Then
+ FN = Path.ChangeExtension(Path.GetFileName(Pfad3), SubtitelFormat)
+ 'MsgBox(FN)
+ End If
+ Dim Pfad4 As String = Path.Combine(Path.GetDirectoryName(Pfad3), FN)
+ 'MsgBox(Pfad4)
+ Debug.WriteLine(Pfad4)
+ File.WriteAllText(Pfad4, Subfile, Encoding.UTF8)
+ Pause(1)
+ Next
+
+ End If
+ End If
+
+#End Region
+
+#Region "ffmpeg command"
+
+ Dim DubMetatata As String = Nothing
+ If FunimationDub = "Japanese" Then
+ DubMetatata = " -metadata:s:a:0 language=jpn"
+
+ ElseIf FunimationDub = "Portuguese (Brazil)" Then
+ DubMetatata = " -metadata:s:a:0 language=por"
+
+ ElseIf FunimationDub = "Spanish (Latin Am)" Then
+ DubMetatata = " -metadata:s:a:0 language=spa"
+
+ Else '
+ DubMetatata = " -metadata:s:a:0 language=eng"
+
+ End If
+
+ If HardSubFound = True And CBool(InStr(VideoFormat, ".aac")) = False Then
+ Funimation_m3u8_final = "-i " + Chr(34) + Funimation_m3u8_final + Chr(34) + FunimationAudioMap + " -vf subtitles=" + Chr(34) + UsedSub + Chr(34) + " " + ffmpeg_hardsub
+
+ ElseIf MergeSubs = True Then
+
+ Funimation_m3u8_final = "-i " + Chr(34) + Funimation_m3u8_final + Chr(34) + FunimationAudioMap + SoftSubMergeURLs + SoftSubMergeMaps + " " + ffmpeg_command + " -c:s " + MergeSubsFormat + SoftSubMergeMetatata + DubMetatata
+
+ ElseIf CBool(InStr(VideoFormat, ".aac")) = True Then
+ If FunimationAudioMap = Nothing Then
+ Funimation_m3u8_final = "-i " + Chr(34) + Funimation_m3u8_final + Chr(34) + DubMetatata + " " + ffmpeg_command_temp
+ Else
+ Funimation_m3u8_final = FunimationAudioMap.Replace(" -headers " + My.Resources.ffmpeg_user_agend + " ", "") + DubMetatata + " " + ffmpeg_command_temp
+ End If
+
+ Else
+
+ Funimation_m3u8_final = "-i " + Chr(34) + Funimation_m3u8_final + Chr(34) + FunimationAudioMap + DubMetatata + " " + ffmpeg_command
+
+ End If
+
+ Funimation_m3u8_final = Funimation_m3u8_final + " -metadata:g encoding_tool=CrD_Funimation_JS"
+
+
+#End Region
+ 'MsgBox(Funimation_m3u8_final)
+ 'DownloadPfad = DownloadPfad.Replace(" \", "\")
+ If SubsOnly = True Then
+ Funimation_m3u8_final = "-i [Subtitles only]"
+ End If
+ DownloadPfad = RemoveExtraSpaces(DownloadPfad)
+ Dim L1Name_Split As String() = WebbrowserURL.Split(New String() {"/"}, System.StringSplitOptions.RemoveEmptyEntries)
+ Dim L1Name As String = L1Name_Split(1).Replace("www.", "") + " | Dub : " + FunimationDub
+ Me.Invoke(New Action(Function() As Object
+ ListItemAdd(Pfad_DL, L1Name, DefaultName, ResoHTMLDisplay, "Unknown", SubValuesToDisplay(), thumbnail4, Funimation_m3u8_final, DownloadPfad, "FM")
+ Return Nothing
+ End Function))
+ liList.Add(My.Resources.htmlvorThumbnail + thumbnail4 + My.Resources.htmlnachTumbnail + FunimationTitle + "
" + FunimationSeason + " " + FunimationEpisode + My.Resources.htmlvorAufloesung + ResoHTMLDisplay + My.Resources.htmlvorSoftSubs + vbNewLine + SubValuesToDisplay() + My.Resources.htmlvorHardSubs + "null" + My.Resources.htmlnachHardSubs + "")
+
+#End Region
+ Me.Invoke(New Action(Function() As Object
+ Me.Text = "Crunchyroll Downloader"
+ Me.Invalidate()
+ Return Nothing
+ End Function))
+
+ Catch ex As Exception
+ Me.Invoke(New Action(Function() As Object
+ Me.Text = "Crunchyroll Downloader!"
+ Me.Invalidate()
+ Return Nothing
+ End Function))
+
+ MsgBox(ex.ToString)
+ End Try
+ Funimation_Grapp_RDY = True
+
+ End Sub
+
+#Region "Old JS??"
+
+
Public Sub GetFunimationJS_VideoProxy(Optional ByVal v1JsonURL As String = Nothing, Optional ByVal v1JsonData As String = Nothing)
LoadedUrls.Clear()
Dim Evaluator = New Thread(Sub() Me.GetFunimationJS_Video(v1JsonURL, v1JsonData))
@@ -4820,6 +5806,7 @@ Public Class Main
' End Function))
End Sub
+
Public Sub GetFunimationJS_Video(ByVal v1JsonUrl As String, ByVal v1JsonData As String) ', ByVal WebsiteURL As String
Debug.WriteLine(v1JsonUrl)
Dim v1Json As String = Nothing
@@ -4864,10 +5851,7 @@ Public Class Main
End Function))
Exit Sub
End If
- Me.Invoke(New Action(Function() As Object
- 'My.Computer.Clipboard.SetText(v1Json)
- Return Nothing
- End Function))
+
Try
Dim ffmpeg_command_temp As String = ffmpeg_command
If VideoFormat = ".aac" Then
@@ -5400,62 +6384,62 @@ Public Class Main
End If
Else
Me.Invoke(New Action(Function() As Object
- Me.Text = "Status: Substitles only mode - skipped video"
- Me.Invalidate()
- Return Nothing
- End Function))
- End If
- 'MsgBox(FunimationName3)
- 'MsgBox(Funimation_m3u8_final)
+ Me.Text = "Status: Substitles only mode - skipped video"
+ Me.Invalidate()
+ Return Nothing
+ End Function))
+ End If
+ 'MsgBox(FunimationName3)
+ 'MsgBox(Funimation_m3u8_final)
#Region "thumbnail"
- 'Dim thumbnail As String() = v1Json.Split(New String() {"episodeThumbnail"}, System.StringSplitOptions.RemoveEmptyEntries)
- 'Dim thumbnail2 As String() = thumbnail(1).Split(New String() {"https://"}, System.StringSplitOptions.RemoveEmptyEntries) '(New [Char]() {"-"})
- 'Dim thumbnail3 As String() = thumbnail2(1).Split(New String() {Chr(34)}, System.StringSplitOptions.RemoveEmptyEntries) '(New [Char]() {"-"})
- Dim thumbnail4 As String = ""
- For Each item As JProperty In Data
- item.CreateReader()
- Select Case item.Name
- Case "images" 'each record is inside the entries array
- For Each Entry As JObject In item.Values
+ 'Dim thumbnail As String() = v1Json.Split(New String() {"episodeThumbnail"}, System.StringSplitOptions.RemoveEmptyEntries)
+ 'Dim thumbnail2 As String() = thumbnail(1).Split(New String() {"https://"}, System.StringSplitOptions.RemoveEmptyEntries) '(New [Char]() {"-"})
+ 'Dim thumbnail3 As String() = thumbnail2(1).Split(New String() {Chr(34)}, System.StringSplitOptions.RemoveEmptyEntries) '(New [Char]() {"-"})
+ Dim thumbnail4 As String = ""
+ For Each item As JProperty In Data
+ item.CreateReader()
+ Select Case item.Name
+ Case "images" 'each record is inside the entries array
+ For Each Entry As JObject In item.Values
- Dim key As String = Entry("key").ToString
+ Dim key As String = Entry("key").ToString
- If key = "episodeThumbnail" Then
- Dim path As String = Entry("path").ToString
- thumbnail4 = path
- Exit Select
- End If
+ If key = "episodeThumbnail" Then
+ Dim path As String = Entry("path").ToString
+ thumbnail4 = path
+ Exit Select
+ End If
- 'Dim factor As String = Entry("factor").ToList.Item(0)
- ' you can continue listing the array items untill you reach the end of you array
+ 'Dim factor As String = Entry("factor").ToList.Item(0)
+ ' you can continue listing the array items untill you reach the end of you array
- Next
+ Next
- End Select
- Next
+ End Select
+ Next
#End Region
- Dim ResoHTMLDisplay As String = Reso.ToString + "p"
+ Dim ResoHTMLDisplay As String = Reso.ToString + "p"
#Region "Subs"
- Dim SubsClient As New WebClient
- SubsClient.Encoding = Encoding.UTF8
- If Not WebbrowserCookie = Nothing Then
- SubsClient.Headers.Add(HttpRequestHeader.Cookie, WebbrowserCookie)
- ElseIf Not SystemWebBrowserCookie = Nothing Then
- SubsClient.Headers.Add(HttpRequestHeader.Cookie, SystemWebBrowserCookie)
- End If
- ' Dim PlayerPage As String = SubsClient.DownloadString("https://www.funimation.com/player/" + ExperienceID + "/?bdub=0&qid=")
+ Dim SubsClient As New WebClient
+ SubsClient.Encoding = Encoding.UTF8
+ If Not WebbrowserCookie = Nothing Then
+ SubsClient.Headers.Add(HttpRequestHeader.Cookie, WebbrowserCookie)
+ ElseIf Not SystemWebBrowserCookie = Nothing Then
+ SubsClient.Headers.Add(HttpRequestHeader.Cookie, SystemWebBrowserCookie)
+ End If
+ ' Dim PlayerPage As String = SubsClient.DownloadString("https://www.funimation.com/player/" + ExperienceID + "/?bdub=0&qid=")
- Dim PlayerPage As String = Nothing
- Try
+ Dim PlayerPage As String = Nothing
+ Try
'Throw New System.Exception("Test")
PlayerPage = SubsClient.DownloadString("https://www.funimation.com/player/" + ExperienceID + "/?bdub=0&qid=")
@@ -5478,246 +6462,246 @@ Public Class Main
- Dim Subs_in_srt As New List(Of String)
- Dim Subs_in_vtt As New List(Of String)
- Dim Subs_in_dfxp As New List(Of String)
+ Dim Subs_in_srt As New List(Of String)
+ Dim Subs_in_vtt As New List(Of String)
+ Dim Subs_in_dfxp As New List(Of String)
- Dim SoftSubs2 As New List(Of String)
+ Dim SoftSubs2 As New List(Of String)
- If SubFunimation.Count > 0 Then
- For i As Integer = 0 To SubFunimation.Count - 1
- If CBool(InStr(PlayerPage, My.Resources.Funimation_Subtitle_String + SubFunimation(i))) Then
- SoftSubs2.Add(My.Resources.Funimation_Subtitle_String + SubFunimation(i))
- Continue For
- ElseIf CBool(InStr(PlayerPage, My.Resources.Funimation_Subtitle_String2 + SubFunimation(i))) Then
- SoftSubs2.Add(My.Resources.Funimation_Subtitle_String2 + SubFunimation(i))
- ElseIf CBool(InStr(PlayerPage, My.Resources.Funimation_Subtitle_String3 + SubFunimation(i))) Then
- SoftSubs2.Add(My.Resources.Funimation_Subtitle_String3 + SubFunimation(i))
+ If SubFunimation.Count > 0 Then
+ For i As Integer = 0 To SubFunimation.Count - 1
+ If CBool(InStr(PlayerPage, My.Resources.Funimation_Subtitle_String + SubFunimation(i))) Then
+ SoftSubs2.Add(My.Resources.Funimation_Subtitle_String + SubFunimation(i))
+ Continue For
+ ElseIf CBool(InStr(PlayerPage, My.Resources.Funimation_Subtitle_String2 + SubFunimation(i))) Then
+ SoftSubs2.Add(My.Resources.Funimation_Subtitle_String2 + SubFunimation(i))
+ ElseIf CBool(InStr(PlayerPage, My.Resources.Funimation_Subtitle_String3 + SubFunimation(i))) Then
+ SoftSubs2.Add(My.Resources.Funimation_Subtitle_String3 + SubFunimation(i))
+ End If
+
+ Next
+ If SoftSubs2.Count = 0 Then
+
+ Me.Invoke(New Action(Function() As Object
+ Me.Text = "No Subtitles found..."
+ Me.Invalidate()
+ Return Nothing
+ End Function))
+ Try
+ File.WriteAllText(DownloadPfad.Replace(Chr(34), "").Replace(VideoFormat, "-subtitle_error.log"), PlayerPage, Encoding.UTF8)
+ Catch ex As Exception
+ Debug.WriteLine("Error writing 'subtitle_error.log'")
+ End Try
End If
- Next
- If SoftSubs2.Count = 0 Then
-
- Me.Invoke(New Action(Function() As Object
- Me.Text = "No Subtitles found..."
- Me.Invalidate()
- Return Nothing
- End Function))
- Try
- File.WriteAllText(DownloadPfad.Replace(Chr(34), "").Replace(VideoFormat, "-subtitle_error.log"), PlayerPage, Encoding.UTF8)
- Catch ex As Exception
- Debug.WriteLine("Error writing 'subtitle_error.log'")
- End Try
End If
- End If
+ Dim HardSubFound As Boolean = False
+ Dim HardSubSplittString As String = Nothing
+ Dim UsedSub As String = Nothing
+ Dim UsedSubs As New List(Of String)
+ Dim ffmpeg_hardsub As String = Nothing
- Dim HardSubFound As Boolean = False
- Dim HardSubSplittString As String = Nothing
- Dim UsedSub As String = Nothing
- Dim UsedSubs As New List(Of String)
- Dim ffmpeg_hardsub As String = Nothing
-
- If CBool(InStr(PlayerPage, My.Resources.Funimation_Subtitle_String + HardSubFunimation)) Then
- HardSubFound = True
- HardSubSplittString = My.Resources.Funimation_Subtitle_String + HardSubFunimation
- ElseIf CBool(InStr(PlayerPage, My.Resources.Funimation_Subtitle_String2 + HardSubFunimation)) Then
- HardSubFound = True
- HardSubSplittString = My.Resources.Funimation_Subtitle_String2 + HardSubFunimation
- ElseIf CBool(InStr(PlayerPage, My.Resources.Funimation_Subtitle_String3 + HardSubFunimation)) Then
- HardSubFound = True
- HardSubSplittString = My.Resources.Funimation_Subtitle_String3 + HardSubFunimation
- End If
-
- If HardSubFound = True Then 'anyways not true if hardsub is "Disabled"
-
-
- If CBool(InStr(ffmpeg_command, "-c copy")) Then
- ffmpeg_hardsub = "-bsf:a aac_adtstoasc"
- Else
- ffmpeg_hardsub = ffmpeg_command
+ If CBool(InStr(PlayerPage, My.Resources.Funimation_Subtitle_String + HardSubFunimation)) Then
+ HardSubFound = True
+ HardSubSplittString = My.Resources.Funimation_Subtitle_String + HardSubFunimation
+ ElseIf CBool(InStr(PlayerPage, My.Resources.Funimation_Subtitle_String2 + HardSubFunimation)) Then
+ HardSubFound = True
+ HardSubSplittString = My.Resources.Funimation_Subtitle_String2 + HardSubFunimation
+ ElseIf CBool(InStr(PlayerPage, My.Resources.Funimation_Subtitle_String3 + HardSubFunimation)) Then
+ HardSubFound = True
+ HardSubSplittString = My.Resources.Funimation_Subtitle_String3 + HardSubFunimation
End If
- 'MsgBox(HardSubSplittString)
- Dim HardSubTitle() As String = PlayerPage.Split(New String() {HardSubSplittString}, System.StringSplitOptions.RemoveEmptyEntries)
- For i As Integer = 0 To HardSubTitle.Count - 1
- Dim HardSubTitle2() As String = HardSubTitle(i).Split(New String() {Chr(34)}, System.StringSplitOptions.RemoveEmptyEntries)
+ If HardSubFound = True Then 'anyways not true if hardsub is "Disabled"
- If CBool(InStr(HardSubTitle2(HardSubTitle2.Count - 1), ".srt")) Then
- UsedSub = HardSubTitle2(HardSubTitle2.Count - 1)
- Exit For
- ElseIf CBool(InStr(HardSubTitle2(HardSubTitle2.Count - 1), ".vtt")) Then
- UsedSub = HardSubTitle2(HardSubTitle2.Count - 1)
- Exit For
+
+ If CBool(InStr(ffmpeg_command, "-c copy")) Then
+ ffmpeg_hardsub = "-bsf:a aac_adtstoasc"
+ Else
+ ffmpeg_hardsub = ffmpeg_command
End If
+ 'MsgBox(HardSubSplittString)
+ Dim HardSubTitle() As String = PlayerPage.Split(New String() {HardSubSplittString}, System.StringSplitOptions.RemoveEmptyEntries)
- Next
+ For i As Integer = 0 To HardSubTitle.Count - 1
+ Dim HardSubTitle2() As String = HardSubTitle(i).Split(New String() {Chr(34)}, System.StringSplitOptions.RemoveEmptyEntries)
- If UsedSub = Nothing Then
- Throw New System.Exception("Error - No valid Subtitle for hard-subtiles found")
+ If CBool(InStr(HardSubTitle2(HardSubTitle2.Count - 1), ".srt")) Then
+ UsedSub = HardSubTitle2(HardSubTitle2.Count - 1)
+ Exit For
+ ElseIf CBool(InStr(HardSubTitle2(HardSubTitle2.Count - 1), ".vtt")) Then
+ UsedSub = HardSubTitle2(HardSubTitle2.Count - 1)
+ Exit For
+ End If
+
+ Next
+
+ If UsedSub = Nothing Then
+ Throw New System.Exception("Error - No valid Subtitle for hard-subtiles found")
+ End If
+ 'MsgBox(UsedSub)
+ Dim SubText As String = client0.DownloadString(UsedSub)
+ Dim SubtitelFormat As String = ".srt"
+ If CBool(InStr(UsedSub, ".vtt")) Then
+ SubtitelFormat = ".vtt"
+ 'ElseIf CBool(InStr(UsedSub, ".dfxp") Then
+ ' SubtitelFormat = ".dfxp"
+ End If
+ UsedSub = GeräteID() + SubtitelFormat
+ File.WriteAllText(Application.StartupPath + "\" + UsedSub, SubText, Encoding.UTF8)
+ ElseIf SoftSubs2.Count > 0 Then
+ For i As Integer = 0 To SoftSubs2.Count - 1
+ Dim SubTitle() As String = PlayerPage.Split(New String() {SoftSubs2.Item(i)}, System.StringSplitOptions.RemoveEmptyEntries)
+ Dim FoundCount As Integer = 0
+ For ii As Integer = 0 To SubTitle.Count - 1
+ Dim SubTitle2() As String = SubTitle(ii).Split(New String() {My.Resources.Funimation_subs_src}, System.StringSplitOptions.RemoveEmptyEntries)
+ For iii As Integer = 0 To SubTitle2.Count - 1
+ If CBool(InStr(SubTitle2(iii), ".srt" + Chr(34))) Then
+ ElseIf CBool(InStr(SubTitle2(iii), ".vtt" + Chr(34))) Then
+ ElseIf CBool(InStr(SubTitle2(iii), ".dfxp" + Chr(34))) Then
+ ElseIf CBool(InStr(SubTitle2(iii), ".srt")) Then
+ If Subs_in_srt.Contains(SubTitle2(iii)) Then
+ Else
+ Subs_in_srt.Add(SubTitle2(iii))
+ End If
+ ElseIf CBool(InStr(SubTitle2(iii), ".vtt")) Then
+ If Subs_in_vtt.Contains(SubTitle2(iii)) Then
+ Else
+ Subs_in_vtt.Add(SubTitle2(iii))
+ End If
+ ElseIf CBool(InStr(SubTitle2(iii), ".dfxp")) Then
+ If Subs_in_dfxp.Contains(SubTitle2(iii)) Then
+ Else
+ Subs_in_dfxp.Add(SubTitle2(iii))
+ End If
+
+ End If
+ Next
+
+ Next
+ Dim TempCount As Integer = UsedSubs.Count
+ Try
+ If Funimation_srt = True Then
+ UsedSubs.Add(Subs_in_srt.Item(0) + " , " + SoftSubs2.Item(i).Replace(My.Resources.Funimation_Subtitle_String, "").Replace(My.Resources.Funimation_Subtitle_String2, "").Replace(My.Resources.Funimation_Subtitle_String3, ""))
+ End If
+ Catch ex As Exception
+ End Try
+
+ Try
+ If Funimation_vtt = True Then
+ UsedSubs.Add(Subs_in_vtt.Item(0) + " , " + SoftSubs2.Item(i).Replace(My.Resources.Funimation_Subtitle_String, "").Replace(My.Resources.Funimation_Subtitle_String2, "").Replace(My.Resources.Funimation_Subtitle_String3, ""))
+ End If
+ Catch ex As Exception
+ End Try
+
+ Try
+ If Funimation_dfxp = True Then
+ UsedSubs.Add(Subs_in_dfxp.Item(0) + " , " + SoftSubs2.Item(i).Replace(My.Resources.Funimation_Subtitle_String, "").Replace(My.Resources.Funimation_Subtitle_String2, "").Replace(My.Resources.Funimation_Subtitle_String3, ""))
+ End If
+ Catch ex As Exception
+ End Try
+
+
+ If TempCount = UsedSubs.Count Then
+ If Subs_in_srt.Count > 0 Then
+ UsedSubs.Add(Subs_in_srt.Item(0) + " , " + SoftSubs2.Item(i).Replace(My.Resources.Funimation_Subtitle_String, "").Replace(My.Resources.Funimation_Subtitle_String2, "").Replace(My.Resources.Funimation_Subtitle_String3, ""))
+ ElseIf Subs_in_vtt.Count > 0 Then
+ UsedSubs.Add(Subs_in_vtt.Item(0) + " , " + SoftSubs2.Item(i).Replace(My.Resources.Funimation_Subtitle_String, "").Replace(My.Resources.Funimation_Subtitle_String2, "").Replace(My.Resources.Funimation_Subtitle_String3, ""))
+ ElseIf Subs_in_dfxp.Count > 0 Then
+ UsedSubs.Add(Subs_in_dfxp.Item(0) + " , " + SoftSubs2.Item(i).Replace(My.Resources.Funimation_Subtitle_String, "").Replace(My.Resources.Funimation_Subtitle_String2, "").Replace(My.Resources.Funimation_Subtitle_String3, ""))
+ End If
+ End If
+
+ Subs_in_srt.Clear()
+ Subs_in_vtt.Clear()
+ Subs_in_dfxp.Clear()
+
+ Next
End If
- 'MsgBox(UsedSub)
- Dim SubText As String = client0.DownloadString(UsedSub)
- Dim SubtitelFormat As String = ".srt"
- If CBool(InStr(UsedSub, ".vtt")) Then
- SubtitelFormat = ".vtt"
- 'ElseIf CBool(InStr(UsedSub, ".dfxp") Then
- ' SubtitelFormat = ".dfxp"
+
+ '
+ Dim SoftSubMergeURLs As String = Nothing
+ Dim SoftSubMergeMaps As String = " -map 0:v -map 0:a"
+ If Not FunimationAudioMap = Nothing Then
+ SoftSubMergeMaps = " -map 0:v -map 1:a"
End If
- UsedSub = GeräteID() + SubtitelFormat
- File.WriteAllText(Application.StartupPath + "\" + UsedSub, SubText, Encoding.UTF8)
- ElseIf SoftSubs2.Count > 0 Then
- For i As Integer = 0 To SoftSubs2.Count - 1
- Dim SubTitle() As String = PlayerPage.Split(New String() {SoftSubs2.Item(i)}, System.StringSplitOptions.RemoveEmptyEntries)
- Dim FoundCount As Integer = 0
- For ii As Integer = 0 To SubTitle.Count - 1
- Dim SubTitle2() As String = SubTitle(ii).Split(New String() {My.Resources.Funimation_subs_src}, System.StringSplitOptions.RemoveEmptyEntries)
- For iii As Integer = 0 To SubTitle2.Count - 1
- If CBool(InStr(SubTitle2(iii), ".srt" + Chr(34))) Then
- ElseIf CBool(InStr(SubTitle2(iii), ".vtt" + Chr(34))) Then
- ElseIf CBool(InStr(SubTitle2(iii), ".dfxp" + Chr(34))) Then
- ElseIf CBool(InStr(SubTitle2(iii), ".srt")) Then
- If Subs_in_srt.Contains(SubTitle2(iii)) Then
- Else
- Subs_in_srt.Add(SubTitle2(iii))
- End If
- ElseIf CBool(InStr(SubTitle2(iii), ".vtt")) Then
- If Subs_in_vtt.Contains(SubTitle2(iii)) Then
- Else
- Subs_in_vtt.Add(SubTitle2(iii))
- End If
- ElseIf CBool(InStr(SubTitle2(iii), ".dfxp")) Then
- If Subs_in_dfxp.Contains(SubTitle2(iii)) Then
- Else
- Subs_in_dfxp.Add(SubTitle2(iii))
- End If
+ Dim SoftSubMergeMetatata As String = Nothing
+
+ If UsedSubs.Count > 0 Then
+ If MergeSubs = True And SubsOnly = False Then
+ Dim DispositionIndex As Integer = 999
+ Dim LastMerged As String = Nothing
+ Dim MapCount As Integer = -1
+ For i As Integer = 0 To UsedSubs.Count - 1
+ Dim SoftSub As String() = UsedSubs.Item(i).Split(New String() {" , "}, System.StringSplitOptions.RemoveEmptyEntries)
+ If CCtoMP4CC(SoftSub(1)) = LastMerged Then
+ Continue For
+ Else
+ LastMerged = CCtoMP4CC(SoftSub(1))
+ End If
+ MapCount = MapCount + 1
+ If DefaultSubFunimation = SoftSub(1) Then
+ 'Debug.WriteLine(SoftSub(1))
+ DispositionIndex = MapCount
+ End If
+ If SoftSubMergeURLs = Nothing Then
+ SoftSubMergeURLs = " -headers " + My.Resources.ffmpeg_user_agend + " -i " + Chr(34) + SoftSub(0) + Chr(34)
+ Else
+ SoftSubMergeURLs = SoftSubMergeURLs + " -headers " + My.Resources.ffmpeg_user_agend + " -i " + Chr(34) + SoftSub(0) + Chr(34)
+ End If
+
+ If FunimationAudioMap = Nothing Then
+ SoftSubMergeMaps = SoftSubMergeMaps + " -map " + (MapCount + 1).ToString
+ Else
+ SoftSubMergeMaps = SoftSubMergeMaps + " -map " + (MapCount + 2).ToString
+ End If
+
+ If SoftSubMergeMetatata = Nothing Then
+ 'SoftSubMergeMetatata = " -metadata:s:s:" + i.ToString + " language=" + CCtoMP4CC(SoftSub(1))
+ SoftSubMergeMetatata = " -metadata:s:s:" + MapCount.ToString + " language=" + CCtoMP4CC(SoftSub(1)) + " -metadata:s:s:" + MapCount.ToString + " title=" + Chr(34) + HardSubValuesToDisplay(Chr(34) + SoftSub(1) + Chr(34)) + Chr(34) + " -metadata:s:s:" + MapCount.ToString + " handler_name=" + Chr(34) + HardSubValuesToDisplay(Chr(34) + SoftSub(1) + Chr(34)) + Chr(34)
+ Else
+ SoftSubMergeMetatata = SoftSubMergeMetatata + " -metadata:s:s:" + MapCount.ToString + " language=" + CCtoMP4CC(SoftSub(1)) + " -metadata:s:s:" + MapCount.ToString + " title=" + Chr(34) + HardSubValuesToDisplay(Chr(34) + SoftSub(1) + Chr(34)) + Chr(34) + " -metadata:s:s:" + MapCount.ToString + " handler_name=" + Chr(34) + HardSubValuesToDisplay(Chr(34) + SoftSub(1) + Chr(34)) + Chr(34)
+ 'SoftSubMergeMetatata + " -metadata:s:s:" + i.ToString + " language=" + CCtoMP4CC(SoftSubs2(i))
+
End If
+
Next
-
- Next
- Dim TempCount As Integer = UsedSubs.Count
- Try
- If Funimation_srt = True Then
- UsedSubs.Add(Subs_in_srt.Item(0) + " , " + SoftSubs2.Item(i).Replace(My.Resources.Funimation_Subtitle_String, "").Replace(My.Resources.Funimation_Subtitle_String2, "").Replace(My.Resources.Funimation_Subtitle_String3, ""))
+ If DispositionIndex < 999 Then
+ SoftSubMergeMetatata = SoftSubMergeMetatata + " -disposition:s:" + DispositionIndex.ToString + " default"
End If
- Catch ex As Exception
- End Try
-
- Try
- If Funimation_vtt = True Then
- UsedSubs.Add(Subs_in_vtt.Item(0) + " , " + SoftSubs2.Item(i).Replace(My.Resources.Funimation_Subtitle_String, "").Replace(My.Resources.Funimation_Subtitle_String2, "").Replace(My.Resources.Funimation_Subtitle_String3, ""))
- End If
- Catch ex As Exception
- End Try
-
- Try
- If Funimation_dfxp = True Then
- UsedSubs.Add(Subs_in_dfxp.Item(0) + " , " + SoftSubs2.Item(i).Replace(My.Resources.Funimation_Subtitle_String, "").Replace(My.Resources.Funimation_Subtitle_String2, "").Replace(My.Resources.Funimation_Subtitle_String3, ""))
- End If
- Catch ex As Exception
- End Try
-
-
- If TempCount = UsedSubs.Count Then
- If Subs_in_srt.Count > 0 Then
- UsedSubs.Add(Subs_in_srt.Item(0) + " , " + SoftSubs2.Item(i).Replace(My.Resources.Funimation_Subtitle_String, "").Replace(My.Resources.Funimation_Subtitle_String2, "").Replace(My.Resources.Funimation_Subtitle_String3, ""))
- ElseIf Subs_in_vtt.Count > 0 Then
- UsedSubs.Add(Subs_in_vtt.Item(0) + " , " + SoftSubs2.Item(i).Replace(My.Resources.Funimation_Subtitle_String, "").Replace(My.Resources.Funimation_Subtitle_String2, "").Replace(My.Resources.Funimation_Subtitle_String3, ""))
- ElseIf Subs_in_dfxp.Count > 0 Then
- UsedSubs.Add(Subs_in_dfxp.Item(0) + " , " + SoftSubs2.Item(i).Replace(My.Resources.Funimation_Subtitle_String, "").Replace(My.Resources.Funimation_Subtitle_String2, "").Replace(My.Resources.Funimation_Subtitle_String3, ""))
- End If
- End If
-
- Subs_in_srt.Clear()
- Subs_in_vtt.Clear()
- Subs_in_dfxp.Clear()
-
- Next
- End If
-
- '
- Dim SoftSubMergeURLs As String = Nothing
- Dim SoftSubMergeMaps As String = " -map 0:v -map 0:a"
- If Not FunimationAudioMap = Nothing Then
- SoftSubMergeMaps = " -map 0:v -map 1:a"
- End If
- Dim SoftSubMergeMetatata As String = Nothing
-
- If UsedSubs.Count > 0 Then
- If MergeSubs = True And SubsOnly = False Then
- Dim DispositionIndex As Integer = 999
- Dim LastMerged As String = Nothing
- Dim MapCount As Integer = -1
- For i As Integer = 0 To UsedSubs.Count - 1
- Dim SoftSub As String() = UsedSubs.Item(i).Split(New String() {" , "}, System.StringSplitOptions.RemoveEmptyEntries)
- If CCtoMP4CC(SoftSub(1)) = LastMerged Then
- Continue For
- Else
- LastMerged = CCtoMP4CC(SoftSub(1))
- End If
- MapCount = MapCount + 1
- If DefaultSubFunimation = SoftSub(1) Then
- 'Debug.WriteLine(SoftSub(1))
- DispositionIndex = MapCount
- End If
- If SoftSubMergeURLs = Nothing Then
- SoftSubMergeURLs = " -headers " + My.Resources.ffmpeg_user_agend + " -i " + Chr(34) + SoftSub(0) + Chr(34)
- Else
- SoftSubMergeURLs = SoftSubMergeURLs + " -headers " + My.Resources.ffmpeg_user_agend + " -i " + Chr(34) + SoftSub(0) + Chr(34)
- End If
-
- If FunimationAudioMap = Nothing Then
- SoftSubMergeMaps = SoftSubMergeMaps + " -map " + (MapCount + 1).ToString
- Else
- SoftSubMergeMaps = SoftSubMergeMaps + " -map " + (MapCount + 2).ToString
- End If
-
- If SoftSubMergeMetatata = Nothing Then
- 'SoftSubMergeMetatata = " -metadata:s:s:" + i.ToString + " language=" + CCtoMP4CC(SoftSub(1))
- SoftSubMergeMetatata = " -metadata:s:s:" + MapCount.ToString + " language=" + CCtoMP4CC(SoftSub(1)) + " -metadata:s:s:" + MapCount.ToString + " title=" + Chr(34) + HardSubValuesToDisplay(Chr(34) + SoftSub(1) + Chr(34)) + Chr(34) + " -metadata:s:s:" + MapCount.ToString + " handler_name=" + Chr(34) + HardSubValuesToDisplay(Chr(34) + SoftSub(1) + Chr(34)) + Chr(34)
- Else
- SoftSubMergeMetatata = SoftSubMergeMetatata + " -metadata:s:s:" + MapCount.ToString + " language=" + CCtoMP4CC(SoftSub(1)) + " -metadata:s:s:" + MapCount.ToString + " title=" + Chr(34) + HardSubValuesToDisplay(Chr(34) + SoftSub(1) + Chr(34)) + Chr(34) + " -metadata:s:s:" + MapCount.ToString + " handler_name=" + Chr(34) + HardSubValuesToDisplay(Chr(34) + SoftSub(1) + Chr(34)) + Chr(34)
- 'SoftSubMergeMetatata + " -metadata:s:s:" + i.ToString + " language=" + CCtoMP4CC(SoftSubs2(i))
-
-
- End If
-
- Next
- If DispositionIndex < 999 Then
- SoftSubMergeMetatata = SoftSubMergeMetatata + " -disposition:s:" + DispositionIndex.ToString + " default"
- End If
- Else
- For i As Integer = 0 To UsedSubs.Count - 1
- LabelUpdate = "Status: downloading subtitle file"
- LabelEpisode = UsedSubs(i)
- Dim SoftSub As String() = UsedSubs.Item(i).Split(New String() {" , "}, System.StringSplitOptions.RemoveEmptyEntries)
- Dim SoftSub_3 As String = SoftSub(0).Replace("\/", "/")
- Dim Subfile As String = SubsClient.DownloadString(SoftSub_3)
- Dim Pfad3 As String = DownloadPfad.Replace(Chr(34), "")
- 'MsgBox(FN)
- Dim SubtitelFormat As String = "srt"
- If CBool(InStr(SoftSub_3, ".vtt")) Then
- SubtitelFormat = "vtt"
- ElseIf CBool(InStr(SoftSub_3, ".dfxp")) Then
- SubtitelFormat = "dfxp"
- End If
- Dim FN As String = Path.ChangeExtension(Path.Combine(Path.GetFileNameWithoutExtension(Pfad3) + " " + SoftSub(1) + Path.GetExtension(Pfad3)), SubtitelFormat)
-
- If i = 0 Then
- FN = Path.ChangeExtension(Path.GetFileName(Pfad3), SubtitelFormat)
+ Else
+ For i As Integer = 0 To UsedSubs.Count - 1
+ LabelUpdate = "Status: downloading subtitle file"
+ LabelEpisode = UsedSubs(i)
+ Dim SoftSub As String() = UsedSubs.Item(i).Split(New String() {" , "}, System.StringSplitOptions.RemoveEmptyEntries)
+ Dim SoftSub_3 As String = SoftSub(0).Replace("\/", "/")
+ Dim Subfile As String = SubsClient.DownloadString(SoftSub_3)
+ Dim Pfad3 As String = DownloadPfad.Replace(Chr(34), "")
'MsgBox(FN)
- End If
- Dim Pfad4 As String = Path.Combine(Path.GetDirectoryName(Pfad3), FN)
+ Dim SubtitelFormat As String = "srt"
+ If CBool(InStr(SoftSub_3, ".vtt")) Then
+ SubtitelFormat = "vtt"
+ ElseIf CBool(InStr(SoftSub_3, ".dfxp")) Then
+ SubtitelFormat = "dfxp"
+ End If
+ Dim FN As String = Path.ChangeExtension(Path.Combine(Path.GetFileNameWithoutExtension(Pfad3) + " " + SoftSub(1) + Path.GetExtension(Pfad3)), SubtitelFormat)
+
+ If i = 0 Then
+ FN = Path.ChangeExtension(Path.GetFileName(Pfad3), SubtitelFormat)
+ 'MsgBox(FN)
+ End If
+ Dim Pfad4 As String = Path.Combine(Path.GetDirectoryName(Pfad3), FN)
'MsgBox(Pfad4)
Debug.WriteLine(Pfad4)
File.WriteAllText(Pfad4, Subfile, Encoding.UTF8)
- Pause(1)
- Next
+ Pause(1)
+ Next
+ End If
End If
- End If
#End Region
@@ -5739,62 +6723,63 @@ Public Class Main
End If
If HardSubFound = True And CBool(InStr(VideoFormat, ".aac")) = False Then
- Funimation_m3u8_final = "-i " + Chr(34) + Funimation_m3u8_final + Chr(34) + FunimationAudioMap + " -vf subtitles=" + Chr(34) + UsedSub + Chr(34) + " " + ffmpeg_hardsub
+ Funimation_m3u8_final = "-i " + Chr(34) + Funimation_m3u8_final + Chr(34) + FunimationAudioMap + " -vf subtitles=" + Chr(34) + UsedSub + Chr(34) + " " + ffmpeg_hardsub
- ElseIf MergeSubs = True Then
+ ElseIf MergeSubs = True Then
- Funimation_m3u8_final = "-i " + Chr(34) + Funimation_m3u8_final + Chr(34) + FunimationAudioMap + SoftSubMergeURLs + SoftSubMergeMaps + " " + ffmpeg_command + " -c:s " + MergeSubsFormat + SoftSubMergeMetatata + DubMetatata
+ Funimation_m3u8_final = "-i " + Chr(34) + Funimation_m3u8_final + Chr(34) + FunimationAudioMap + SoftSubMergeURLs + SoftSubMergeMaps + " " + ffmpeg_command + " -c:s " + MergeSubsFormat + SoftSubMergeMetatata + DubMetatata
+
+ ElseIf CBool(InStr(VideoFormat, ".aac")) = True Then
+ If FunimationAudioMap = Nothing Then
+ Funimation_m3u8_final = "-i " + Chr(34) + Funimation_m3u8_final + Chr(34) + DubMetatata + " " + ffmpeg_command_temp
+ Else
+ Funimation_m3u8_final = FunimationAudioMap.Replace(" -headers " + My.Resources.ffmpeg_user_agend + " ", "") + DubMetatata + " " + ffmpeg_command_temp
+ End If
- ElseIf CBool(InStr(VideoFormat, ".aac")) = True Then
- If FunimationAudioMap = Nothing Then
- Funimation_m3u8_final = "-i " + Chr(34) + Funimation_m3u8_final + Chr(34) + DubMetatata + " " + ffmpeg_command_temp
Else
- Funimation_m3u8_final = FunimationAudioMap.Replace(" -headers " + My.Resources.ffmpeg_user_agend + " ", "") + DubMetatata + " " + ffmpeg_command_temp
+
+ Funimation_m3u8_final = "-i " + Chr(34) + Funimation_m3u8_final + Chr(34) + FunimationAudioMap + DubMetatata + " " + ffmpeg_command
+
End If
- Else
-
- Funimation_m3u8_final = "-i " + Chr(34) + Funimation_m3u8_final + Chr(34) + FunimationAudioMap + DubMetatata + " " + ffmpeg_command
-
- End If
-
+ Funimation_m3u8_final = Funimation_m3u8_final + " -metadata:g encoding_tool=CrD_Funimation_JS"
#End Region
- 'MsgBox(Funimation_m3u8_final)
- 'DownloadPfad = DownloadPfad.Replace(" \", "\")
- If SubsOnly = True Then
- Funimation_m3u8_final = "-i [Subtitles only]"
- End If
- DownloadPfad = RemoveExtraSpaces(DownloadPfad)
- Dim L1Name_Split As String() = WebbrowserURL.Split(New String() {"/"}, System.StringSplitOptions.RemoveEmptyEntries)
- Dim L1Name As String = L1Name_Split(1).Replace("www.", "") + " | Dub : " + FunimationDub
- Me.Invoke(New Action(Function() As Object
- ListItemAdd(Pfad_DL, L1Name, DefaultName, ResoHTMLDisplay, "Unknown", SubValuesToDisplay(), thumbnail4, Funimation_m3u8_final, DownloadPfad, "FM")
- Return Nothing
- End Function))
- liList.Add(My.Resources.htmlvorThumbnail + thumbnail4 + My.Resources.htmlnachTumbnail + FunimationTitle + "
" + FunimationSeason + " " + FunimationEpisode + My.Resources.htmlvorAufloesung + ResoHTMLDisplay + My.Resources.htmlvorSoftSubs + vbNewLine + SubValuesToDisplay() + My.Resources.htmlvorHardSubs + "null" + My.Resources.htmlnachHardSubs + "")
+ 'MsgBox(Funimation_m3u8_final)
+ 'DownloadPfad = DownloadPfad.Replace(" \", "\")
+ If SubsOnly = True Then
+ Funimation_m3u8_final = "-i [Subtitles only]"
+ End If
+ DownloadPfad = RemoveExtraSpaces(DownloadPfad)
+ Dim L1Name_Split As String() = WebbrowserURL.Split(New String() {"/"}, System.StringSplitOptions.RemoveEmptyEntries)
+ Dim L1Name As String = L1Name_Split(1).Replace("www.", "") + " | Dub : " + FunimationDub
+ Me.Invoke(New Action(Function() As Object
+ ListItemAdd(Pfad_DL, L1Name, DefaultName, ResoHTMLDisplay, "Unknown", SubValuesToDisplay(), thumbnail4, Funimation_m3u8_final, DownloadPfad, "FM")
+ Return Nothing
+ End Function))
+ liList.Add(My.Resources.htmlvorThumbnail + thumbnail4 + My.Resources.htmlnachTumbnail + FunimationTitle + "
" + FunimationSeason + " " + FunimationEpisode + My.Resources.htmlvorAufloesung + ResoHTMLDisplay + My.Resources.htmlvorSoftSubs + vbNewLine + SubValuesToDisplay() + My.Resources.htmlvorHardSubs + "null" + My.Resources.htmlnachHardSubs + "")
#End Region
- Me.Invoke(New Action(Function() As Object
- Me.Text = "Crunchyroll Downloader"
- Me.Invalidate()
- Return Nothing
- End Function))
+ Me.Invoke(New Action(Function() As Object
+ Me.Text = "Crunchyroll Downloader"
+ Me.Invalidate()
+ Return Nothing
+ End Function))
Catch ex As Exception
- Me.Invoke(New Action(Function() As Object
- Me.Text = "Crunchyroll Downloader!"
- Me.Invalidate()
- Return Nothing
- End Function))
+ Me.Invoke(New Action(Function() As Object
+ Me.Text = "Crunchyroll Downloader!"
+ Me.Invalidate()
+ Return Nothing
+ End Function))
- MsgBox(ex.ToString)
+ MsgBox(ex.ToString)
End Try
Funimation_Grapp_RDY = True
End Sub
-
+#End Region
@@ -6026,8 +7011,15 @@ Public Class Main
If CBool(InStr(list.Item(i).Domain, "funimation.com")) Then 'list.Item(i).Domain = "funimation.com" Then
'MsgBox(list.Item(i).Name + vbNewLine + list.Item(i).Value)
+
Cookie = Cookie + list.Item(i).Name + "=" + list.Item(i).Value + ";"
End If
+
+ If CBool(InStr(list.Item(i).Domain, "funimation.com")) And CBool(InStr(list.Item(i).Name, "src_token")) Then 'list.Item(i).Domain = "funimation.com" Then
+ 'MsgBox(list.Item(i).Name + vbNewLine + list.Item(i).Value)
+
+ FunimationToken = "Token " + list.Item(i).Value
+ End If
Next
If b = False Then
@@ -6197,6 +7189,25 @@ Public Class Main
+ End If
+ If CBool(InStr(requesturl, "data/v1/episodes/")) Then
+ b = True
+ 'MsgBox("The new Funimation Overview is not supportet yet!", MsgBoxStyle.Information)
+
+
+ Me.Invoke(New Action(Function() As Object
+ 'My.Computer.Clipboard.SetText(localHTML)
+ GetFunimationNewJS_VideoProxy(requesturl)
+ WebbrowserURL = "https://funimation.com/js"
+ Return Nothing
+ End Function))
+
+
+
+
+ LoadedUrls.Clear()
+ Exit Sub
+
End If
If CBool(InStr(requesturl, "https://title-api.prd.funimationsvc.com")) And CBool(InStr(requesturl, "?region=")) Then
Try
@@ -7009,6 +8020,43 @@ Public Class FunimationOverview
End Class
+Public Class FunimationSubs
+ Public LangugageCode As String
+ Public Url As String
+ Public Format As String
+
+ Public Sub New(ByVal LangugageCode As String, ByVal Format As String, ByVal Url As String)
+ Me.Url = Url
+ Me.LangugageCode = LangugageCode
+ Me.Format = Format
+ End Sub
+
+ Public Overrides Function ToString() As String
+ Return String.Format("{0}, {1}, {2}", Me.LangugageCode, Me.Format, Me.Url)
+ End Function
+
+
+End Class
+
+Public Class FunimationStream
+ Public audioLanguage As String
+ Public Url As String
+ Public version As String
+ Public Primary As Boolean
+ Public Sub New(ByVal audioLanguage As String, ByVal version As String, ByVal Url As String, ByVal Primary As Boolean)
+ Me.Primary = Primary
+ Me.Url = Url
+ Me.audioLanguage = audioLanguage
+ Me.version = version
+ End Sub
+
+ Public Overrides Function ToString() As String
+ Return String.Format("{0}, {1}, {2}", Me.audioLanguage, Me.version, Me.Url)
+ End Function
+
+
+End Class
+
diff --git a/Crunchyroll Downloader/My Project/Resources.Designer.vb b/Crunchyroll Downloader/My Project/Resources.Designer.vb
index a0b7e94..ff9dd7a 100644
--- a/Crunchyroll Downloader/My Project/Resources.Designer.vb
+++ b/Crunchyroll Downloader/My Project/Resources.Designer.vb
@@ -319,7 +319,7 @@ Namespace My.Resources
End Property
'''
- ''' Sucht eine lokalisierte Zeichenfolge, die "User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:87.0) Gecko/20100101 Firefox/87.0" ähnelt.
+ ''' Sucht eine lokalisierte Zeichenfolge, die "User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36" ähnelt.
'''
Friend ReadOnly Property ffmpeg_user_agend() As String
Get
diff --git a/Crunchyroll Downloader/My Project/Resources.resx b/Crunchyroll Downloader/My Project/Resources.resx
index 1fe8db0..9b161dc 100644
--- a/Crunchyroll Downloader/My Project/Resources.resx
+++ b/Crunchyroll Downloader/My Project/Resources.resx
@@ -401,7 +401,7 @@ Dialogue: 0,0:00:00.00,0:00:00.00,Default,,0000,0000,0000,,some ideas on how tem
..\Resources\crdSettings_Button_SafeExit_hover.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
- "User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:87.0) Gecko/20100101 Firefox/87.0"
+ "User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36"
..\Resources\crdSettings_Button_SafeExit.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
diff --git a/Crunchyroll Downloader/bin/x64/Debug/Crunchyroll Downloader.exe b/Crunchyroll Downloader/bin/x64/Debug/Crunchyroll Downloader.exe
index d25a8a8..e03d96e 100644
Binary files a/Crunchyroll Downloader/bin/x64/Debug/Crunchyroll Downloader.exe and b/Crunchyroll Downloader/bin/x64/Debug/Crunchyroll Downloader.exe differ
diff --git a/Crunchyroll Downloader/bin/x64/Debug/Crunchyroll Downloader.exe.config b/Crunchyroll Downloader/bin/x64/Debug/Crunchyroll Downloader.exe.config
index 6afdd20..1e9d275 100644
--- a/Crunchyroll Downloader/bin/x64/Debug/Crunchyroll Downloader.exe.config
+++ b/Crunchyroll Downloader/bin/x64/Debug/Crunchyroll Downloader.exe.config
@@ -6,7 +6,7 @@
-
+
@@ -16,4 +16,10 @@
+
+
+
+
+
+
diff --git a/Crunchyroll Downloader/bin/x64/Debug/Crunchyroll Downloader.pdb b/Crunchyroll Downloader/bin/x64/Debug/Crunchyroll Downloader.pdb
index 630bcd9..89f27ce 100644
Binary files a/Crunchyroll Downloader/bin/x64/Debug/Crunchyroll Downloader.pdb and b/Crunchyroll Downloader/bin/x64/Debug/Crunchyroll Downloader.pdb differ
diff --git a/Crunchyroll Downloader/einstellungen.Designer.vb b/Crunchyroll Downloader/einstellungen.Designer.vb
index 1058e84..e753229 100644
--- a/Crunchyroll Downloader/einstellungen.Designer.vb
+++ b/Crunchyroll Downloader/einstellungen.Designer.vb
@@ -69,10 +69,15 @@ Partial Class Einstellungen
Me.ListP3 = New System.Windows.Forms.ToolStripMenuItem()
Me.FFMPEG_CommandP3 = New System.Windows.Forms.ToolStripMenuItem()
Me.ListBit_7000 = New System.Windows.Forms.ToolStripMenuItem()
+ Me.ListBit_6500 = New System.Windows.Forms.ToolStripMenuItem()
Me.ListBit_6000 = New System.Windows.Forms.ToolStripMenuItem()
+ Me.ListBit_5500 = New System.Windows.Forms.ToolStripMenuItem()
Me.ListBit_5000 = New System.Windows.Forms.ToolStripMenuItem()
+ Me.ListBit_4500 = New System.Windows.Forms.ToolStripMenuItem()
Me.ListBit_4000 = New System.Windows.Forms.ToolStripMenuItem()
+ Me.ListBit_3500 = New System.Windows.Forms.ToolStripMenuItem()
Me.ListBit_3000 = New System.Windows.Forms.ToolStripMenuItem()
+ Me.ListBit_2500 = New System.Windows.Forms.ToolStripMenuItem()
Me.ListBit_2000 = New System.Windows.Forms.ToolStripMenuItem()
Me.ListBit_1500 = New System.Windows.Forms.ToolStripMenuItem()
Me.ListBit_1000 = New System.Windows.Forms.ToolStripMenuItem()
@@ -137,11 +142,6 @@ Partial Class Einstellungen
Me.Label5 = New MetroFramework.Controls.MetroLabel()
Me.BackgroundWorker1 = New System.ComponentModel.BackgroundWorker()
Me.Btn_Save = New System.Windows.Forms.Button()
- Me.ListBit_6500 = New System.Windows.Forms.ToolStripMenuItem()
- Me.ListBit_5500 = New System.Windows.Forms.ToolStripMenuItem()
- Me.ListBit_4500 = New System.Windows.Forms.ToolStripMenuItem()
- Me.ListBit_3500 = New System.Windows.Forms.ToolStripMenuItem()
- Me.ListBit_2500 = New System.Windows.Forms.ToolStripMenuItem()
CType(Me.pictureBox1, System.ComponentModel.ISupportInitialize).BeginInit()
Me.GroupBox14.SuspendLayout()
Me.SoftSubs.SuspendLayout()
@@ -666,49 +666,79 @@ Partial Class Einstellungen
'ListBit_7000
'
Me.ListBit_7000.Name = "ListBit_7000"
- Me.ListBit_7000.Size = New System.Drawing.Size(196, 22)
+ Me.ListBit_7000.Size = New System.Drawing.Size(136, 22)
Me.ListBit_7000.Text = "-b:v 7000k"
'
+ 'ListBit_6500
+ '
+ Me.ListBit_6500.Name = "ListBit_6500"
+ Me.ListBit_6500.Size = New System.Drawing.Size(136, 22)
+ Me.ListBit_6500.Text = "-b:v 6500k"
+ '
'ListBit_6000
'
Me.ListBit_6000.Name = "ListBit_6000"
- Me.ListBit_6000.Size = New System.Drawing.Size(196, 22)
+ Me.ListBit_6000.Size = New System.Drawing.Size(136, 22)
Me.ListBit_6000.Text = "-b:v 6000k"
'
+ 'ListBit_5500
+ '
+ Me.ListBit_5500.Name = "ListBit_5500"
+ Me.ListBit_5500.Size = New System.Drawing.Size(136, 22)
+ Me.ListBit_5500.Text = "-b:v 5500k"
+ '
'ListBit_5000
'
Me.ListBit_5000.Name = "ListBit_5000"
- Me.ListBit_5000.Size = New System.Drawing.Size(196, 22)
+ Me.ListBit_5000.Size = New System.Drawing.Size(136, 22)
Me.ListBit_5000.Text = "-b:v 5000k"
'
+ 'ListBit_4500
+ '
+ Me.ListBit_4500.Name = "ListBit_4500"
+ Me.ListBit_4500.Size = New System.Drawing.Size(136, 22)
+ Me.ListBit_4500.Text = "-b:v 4500k"
+ '
'ListBit_4000
'
Me.ListBit_4000.Name = "ListBit_4000"
- Me.ListBit_4000.Size = New System.Drawing.Size(196, 22)
+ Me.ListBit_4000.Size = New System.Drawing.Size(136, 22)
Me.ListBit_4000.Text = "-b:v 4000k"
'
+ 'ListBit_3500
+ '
+ Me.ListBit_3500.Name = "ListBit_3500"
+ Me.ListBit_3500.Size = New System.Drawing.Size(136, 22)
+ Me.ListBit_3500.Text = "-b:v 3500k"
+ '
'ListBit_3000
'
Me.ListBit_3000.Name = "ListBit_3000"
- Me.ListBit_3000.Size = New System.Drawing.Size(196, 22)
+ Me.ListBit_3000.Size = New System.Drawing.Size(136, 22)
Me.ListBit_3000.Text = "-b:v 3000k"
'
+ 'ListBit_2500
+ '
+ Me.ListBit_2500.Name = "ListBit_2500"
+ Me.ListBit_2500.Size = New System.Drawing.Size(136, 22)
+ Me.ListBit_2500.Text = "-b:v 2500k"
+ '
'ListBit_2000
'
Me.ListBit_2000.Name = "ListBit_2000"
- Me.ListBit_2000.Size = New System.Drawing.Size(196, 22)
+ Me.ListBit_2000.Size = New System.Drawing.Size(136, 22)
Me.ListBit_2000.Text = "-b:v 2000k"
'
'ListBit_1500
'
Me.ListBit_1500.Name = "ListBit_1500"
- Me.ListBit_1500.Size = New System.Drawing.Size(196, 22)
+ Me.ListBit_1500.Size = New System.Drawing.Size(136, 22)
Me.ListBit_1500.Text = "-b:v 1500k"
'
'ListBit_1000
'
Me.ListBit_1000.Name = "ListBit_1000"
- Me.ListBit_1000.Size = New System.Drawing.Size(196, 22)
+ Me.ListBit_1000.Size = New System.Drawing.Size(136, 22)
Me.ListBit_1000.Text = "-b:v 1000k"
'
'FFMPEG_CommandP4
@@ -1082,7 +1112,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 = 1
+ Me.TabControl1.SelectedIndex = 3
Me.TabControl1.Size = New System.Drawing.Size(509, 567)
Me.TabControl1.TabIndex = 0
Me.TabControl1.UseSelectable = True
@@ -1096,9 +1126,9 @@ Partial Class Einstellungen
Me.MetroTabPage1.HorizontalScrollbarBarColor = True
Me.MetroTabPage1.HorizontalScrollbarHighlightOnWheel = False
Me.MetroTabPage1.HorizontalScrollbarSize = 10
- Me.MetroTabPage1.Location = New System.Drawing.Point(4, 35)
+ Me.MetroTabPage1.Location = New System.Drawing.Point(4, 44)
Me.MetroTabPage1.Name = "MetroTabPage1"
- Me.MetroTabPage1.Size = New System.Drawing.Size(501, 528)
+ Me.MetroTabPage1.Size = New System.Drawing.Size(501, 519)
Me.MetroTabPage1.TabIndex = 7
Me.MetroTabPage1.Text = "Crunchyroll"
Me.MetroTabPage1.VerticalScrollbarBarColor = True
@@ -1144,10 +1174,10 @@ Partial Class Einstellungen
Me.TabPage6.HorizontalScrollbarBarColor = True
Me.TabPage6.HorizontalScrollbarHighlightOnWheel = False
Me.TabPage6.HorizontalScrollbarSize = 10
- Me.TabPage6.Location = New System.Drawing.Point(4, 35)
+ Me.TabPage6.Location = New System.Drawing.Point(4, 44)
Me.TabPage6.Name = "TabPage6"
Me.TabPage6.Padding = New System.Windows.Forms.Padding(3)
- Me.TabPage6.Size = New System.Drawing.Size(501, 528)
+ Me.TabPage6.Size = New System.Drawing.Size(501, 519)
Me.TabPage6.TabIndex = 4
Me.TabPage6.Text = "Funimation"
Me.TabPage6.VerticalScrollbarBarColor = True
@@ -1277,6 +1307,7 @@ Partial Class Einstellungen
'CB_Fun_HardSubs
'
Me.CB_Fun_HardSubs.DropDownHeight = 250
+ Me.CB_Fun_HardSubs.Enabled = False
Me.CB_Fun_HardSubs.Font = New System.Drawing.Font("Microsoft Sans Serif", 9.75!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
Me.CB_Fun_HardSubs.FormattingEnabled = True
Me.CB_Fun_HardSubs.IntegralHeight = False
@@ -1549,36 +1580,6 @@ Partial Class Einstellungen
Me.Btn_Save.TabIndex = 9
Me.Btn_Save.UseVisualStyleBackColor = False
'
- 'ListBit_6500
- '
- Me.ListBit_6500.Name = "ListBit_6500"
- Me.ListBit_6500.Size = New System.Drawing.Size(180, 22)
- Me.ListBit_6500.Text = "-b:v 6500k"
- '
- 'ListBit_5500
- '
- Me.ListBit_5500.Name = "ListBit_5500"
- Me.ListBit_5500.Size = New System.Drawing.Size(180, 22)
- Me.ListBit_5500.Text = "-b:v 5500k"
- '
- 'ListBit_4500
- '
- Me.ListBit_4500.Name = "ListBit_4500"
- Me.ListBit_4500.Size = New System.Drawing.Size(180, 22)
- Me.ListBit_4500.Text = "-b:v 4500k"
- '
- 'ListBit_3500
- '
- Me.ListBit_3500.Name = "ListBit_3500"
- Me.ListBit_3500.Size = New System.Drawing.Size(180, 22)
- Me.ListBit_3500.Text = "-b:v 3500k"
- '
- 'ListBit_2500
- '
- Me.ListBit_2500.Name = "ListBit_2500"
- Me.ListBit_2500.Size = New System.Drawing.Size(180, 22)
- Me.ListBit_2500.Text = "-b:v 2500k"
- '
'Einstellungen
'
Me.ApplyImageInvert = True
diff --git a/Crunchyroll Downloader/obj/x64/Debug/Crunchyroll Downloader.exe b/Crunchyroll Downloader/obj/x64/Debug/Crunchyroll Downloader.exe
index d25a8a8..e03d96e 100644
Binary files a/Crunchyroll Downloader/obj/x64/Debug/Crunchyroll Downloader.exe and b/Crunchyroll Downloader/obj/x64/Debug/Crunchyroll Downloader.exe differ
diff --git a/Crunchyroll Downloader/obj/x64/Debug/Crunchyroll Downloader.pdb b/Crunchyroll Downloader/obj/x64/Debug/Crunchyroll Downloader.pdb
index 630bcd9..89f27ce 100644
Binary files a/Crunchyroll Downloader/obj/x64/Debug/Crunchyroll Downloader.pdb and b/Crunchyroll Downloader/obj/x64/Debug/Crunchyroll Downloader.pdb differ
diff --git a/Crunchyroll Downloader/obj/x64/Debug/Crunchyroll Downloader.vbproj.GenerateResource.cache b/Crunchyroll Downloader/obj/x64/Debug/Crunchyroll Downloader.vbproj.GenerateResource.cache
index 2908f78..774b75b 100644
Binary files a/Crunchyroll Downloader/obj/x64/Debug/Crunchyroll Downloader.vbproj.GenerateResource.cache and b/Crunchyroll Downloader/obj/x64/Debug/Crunchyroll Downloader.vbproj.GenerateResource.cache differ
diff --git a/Crunchyroll Downloader/obj/x64/Debug/Crunchyroll_Downloader.Resources.resources b/Crunchyroll Downloader/obj/x64/Debug/Crunchyroll_Downloader.Resources.resources
index 0d4b541..8e1b708 100644
Binary files a/Crunchyroll Downloader/obj/x64/Debug/Crunchyroll_Downloader.Resources.resources and b/Crunchyroll Downloader/obj/x64/Debug/Crunchyroll_Downloader.Resources.resources differ
diff --git a/Crunchyroll Downloader/obj/x64/Debug/TempPE/My Project.Resources.Designer.vb.dll b/Crunchyroll Downloader/obj/x64/Debug/TempPE/My Project.Resources.Designer.vb.dll
index be86774..44c42fd 100644
Binary files a/Crunchyroll Downloader/obj/x64/Debug/TempPE/My Project.Resources.Designer.vb.dll and b/Crunchyroll Downloader/obj/x64/Debug/TempPE/My Project.Resources.Designer.vb.dll differ