You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I want to download private videos after having the Youtube cookie file.
I tried to check with the yt-dlp tool and the video can still be downloaded normally. yt-dlp --cookies "youtube.com_cookies.txt" url
I solved it by reading the content from the cookie file and initializing the Youtube Client to download the video but got an error
Details
Details
Parse cookie file
private static List<Cookie> ParseCookieFile(string cookieFilePath)
{
var lines = File.ReadAllLines(cookieFilePath);
return (from line in lines
where !string.IsNullOrWhiteSpace(line) && !line.StartsWith('#')
select line.Split('\t')
into parts
where parts.Length >= 7
select new Cookie
{
Domain = parts[0],
Path = parts[2],
Secure = bool.Parse(parts[3]),
Name = parts[5],
Value = parts[6]
}).ToList();
}
Initialize youtube client with cookies
public async Task DownloadPrivateVideoAsync(string videoUrl, FileFormat fileFormat, string cookieFilePath, CancellationToken cancellationToken = default)
{
var cookies = ParseCookieFile(cookieFilePath);
var youtube = new YoutubeClient(cookies);
var request = new YtdlpRequest
{
ClassName = "Private",
FileFormat = fileFormat,
LessonName = "Private",
LessonNo = 0,
StartTrim = 0,
EndTrim = 0,
Url = videoUrl
};
var audioFileName = await DownloadMediaV2Async(youtube, request, Constants.Folder.Videos, cancellationToken).ConfigureAwait(false);
if (fileFormat == FileFormat.OnlyVideo) audioFileName.DeleteFile();
}
Get video information
private async Task<string> DownloadMediaV2Async(YoutubeClient youtube, YtdlpRequest request, string outputPath, CancellationToken cancellationToken = default)
{
Video video = null!;
StreamManifest streamManifest = null!;
await AnsiConsoleHelper.LiveStatusAsync(async _ =>
{
var videoUrl = VideoId.Parse(request.Url);
video = await youtube.Videos.GetAsync(videoUrl, cancellationToken).ConfigureAwait(false);
streamManifest = await youtube.Videos.Streams.GetManifestAsync(videoUrl, cancellationToken);
}, "[darkorange]Getting video info...[/]");
...
return audioFileName;
}
After getting the video information, the following code gives an error. streamManifest = await youtube.Videos.Streams.GetManifestAsync(videoUrl, cancellationToken);
Checklist
I have looked through existing issues to make sure that this bug has not been reported before
I have provided a descriptive title for this issue
I have made sure that this bug is reproducible on the latest version of the package
I have provided all the information needed to reproduce this bug as efficiently as possible
I have sponsored this project
I have not read any of the above and just checked all the boxes to submit the issue
The text was updated successfully, but these errors were encountered:
Version
6.5
Platform
.NET 9 / Windows 11
Steps to reproduce
Summary
I want to download private videos after having the Youtube cookie file.
I tried to check with the yt-dlp tool and the video can still be downloaded normally.
yt-dlp --cookies "youtube.com_cookies.txt" url
I solved it by reading the content from the cookie file and initializing the Youtube Client to download the video but got an error
Details
Details
After getting the video information, the following code gives an error.
streamManifest = await youtube.Videos.Streams.GetManifestAsync(videoUrl, cancellationToken);
Checklist
The text was updated successfully, but these errors were encountered: