Fix the captions downloading

This commit is contained in:
2026-03-02 02:39:33 -06:00
parent 44c87e1e50
commit 29fdf6a2f3
3 changed files with 28 additions and 19 deletions

View File

@@ -14,6 +14,6 @@
"project_dependencies": [ "project_dependencies": [
"..\/Tesses.YouTubeDownloader" "..\/Tesses.YouTubeDownloader"
], ],
"version": "1.0.0.3-prod", "version": "1.0.0.4-prod",
"compTime": "secure" "compTime": "secure"
} }

View File

@@ -14,6 +14,6 @@
} }
], ],
"name": "Tesses.YouTubeDownloader", "name": "Tesses.YouTubeDownloader",
"version": "1.0.0.3-prod", "version": "1.0.0.4-prod",
"icon": "icon.png" "icon": "icon.png"
} }

View File

@@ -1349,7 +1349,7 @@ class TYTD.Downloader {
} }
private DownloadCaptions(req) private DownloadCaptions(req)
{ {
const tracks = req.playerResponse.playerCaptionsTracklistRenderer.captionTracks; const tracks = req.playerResponse.captions.playerCaptionsTracklistRenderer.captionTracks;
if(TypeIsList(tracks)) if(TypeIsList(tracks))
{ {
each(var item : tracks) each(var item : tracks)
@@ -1358,6 +1358,8 @@ class TYTD.Downloader {
if(!TypeIsString(item.baseUrl)) continue; if(!TypeIsString(item.baseUrl)) continue;
try { try {
var path = /"Streams"/id.Substring(0,4) / id.Substring(4) / item.languageCode; var path = /"Streams"/id.Substring(0,4) / id.Substring(4) / item.languageCode;
if(!this.Storage.FileExists(path+".xml"))
{
var resp = Net.Http.MakeRequest(url,{FollowRedirects=true}); var resp = Net.Http.MakeRequest(url,{FollowRedirects=true});
if(resp.StatusCode >= 200 && resp.StatusCode <= 299) if(resp.StatusCode >= 200 && resp.StatusCode <= 299)
{ {
@@ -1365,20 +1367,28 @@ class TYTD.Downloader {
resp.CopyToStream(strm); resp.CopyToStream(strm);
strm.Close(); strm.Close();
} }
resp = Net.Http.MakeRequest(url.Replace("fmt=srv3","fmt=vtt"),{FollowRedirects=true}); }
if(!this.Storage.FileExists(path+".vtt"))
{
var resp = Net.Http.MakeRequest(url.Replace("fmt=srv3","fmt=vtt"),{FollowRedirects=true});
if(resp.StatusCode >= 200 && resp.StatusCode <= 299) if(resp.StatusCode >= 200 && resp.StatusCode <= 299)
{ {
const strm=this.Storage.OpenFile(path+".vtt","wb"); const strm=this.Storage.OpenFile(path+".vtt","wb");
resp.CopyToStream(strm); resp.CopyToStream(strm);
strm.Close(); strm.Close();
} }
resp = Net.Http.MakeRequest(url.Replace("fmt=srv3","fmt=srt"),{FollowRedirects=true}); }
if(!this.Storage.FileExists(path+".srt"))
{
var resp = Net.Http.MakeRequest(url.Replace("fmt=srv3","fmt=srt"),{FollowRedirects=true});
if(resp.StatusCode >= 200 && resp.StatusCode <= 299) if(resp.StatusCode >= 200 && resp.StatusCode <= 299)
{ {
const strm=this.Storage.OpenFile(path+".srt","wb"); const strm=this.Storage.OpenFile(path+".srt","wb");
resp.CopyToStream(strm); resp.CopyToStream(strm);
strm.Close(); strm.Close();
} }
}
} catch(ex) { } catch(ex) {
@@ -1692,7 +1702,6 @@ class TYTD.Downloader {
}; };
this.RateLimit(); this.RateLimit();
var response = Net.Http.MakeRequest(url,requestData); var response = Net.Http.MakeRequest(url,requestData);
Console.WriteLine(response.StatusCode);
if(response.StatusCode < 200 || response.StatusCode > 299) continue; if(response.StatusCode < 200 || response.StatusCode > 299) continue;
const respText = response.ReadAsString(); const respText = response.ReadAsString();