Skip to content

Commit

Permalink
Merge pull request #284 from whimsical-c4lic0/feature/autodetect-ffmpeg
Browse files Browse the repository at this point in the history
Auto-detect ffmpeg path with additional configuration in config.json
  • Loading branch information
sim0n00ps authored Feb 18, 2024
2 parents 0652c9f + c63f119 commit 66874c1
Show file tree
Hide file tree
Showing 5 changed files with 102 additions and 44 deletions.
1 change: 1 addition & 0 deletions OF DL/Entities/Config.cs
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,7 @@ public class Config
public bool ShowScrapeSize { get; set; } = true;

public bool DownloadPostsIncrementally { get; set; } = false;
public string? FFmpegPath { get; set; } = string.Empty;
}

}
32 changes: 16 additions & 16 deletions OF DL/Helpers/DownloadHelper.cs
Original file line number Diff line number Diff line change
Expand Up @@ -579,7 +579,7 @@ public async Task<long> CalculateTotalFileSize(List<string> urls, Auth auth)

#region drm common

private static async Task<bool> DownloadDrmMedia(string ffmpegpath, string user_agent, string policy, string signature, string kvp, string sess, string url, string decryptionKey, string folder, DateTime lastModified, long media_id, ProgressTask task, string customFileName, string filename, string path, bool showScrapeSize)
private static async Task<bool> DownloadDrmMedia(string user_agent, string policy, string signature, string kvp, string sess, string url, string decryptionKey, string folder, DateTime lastModified, long media_id, ProgressTask task, string customFileName, string filename, string path, bool showScrapeSize, Config config)
{
int pos1 = decryptionKey.IndexOf(':');
string decKey = "";
Expand All @@ -592,7 +592,7 @@ private static async Task<bool> DownloadDrmMedia(string ffmpegpath, string user_

ProcessStartInfo ffmpegStartInfo = new()
{
FileName = ffmpegpath,
FileName = config.FFmpegPath,
Arguments = $"-cenc_decryption_key {decKey} -headers \"Cookie:CloudFront-Policy={policy}; CloudFront-Signature={signature}; CloudFront-Key-Pair-Id={kvp}; {sess}\r\nOrigin: https://onlyfans.com\r\nReferer: https://onlyfans.com\r\nUser-Agent: {user_agent}\r\n\r\n\" -i \"{url}\" -codec copy \"{tempFilename}\"",
CreateNoWindow = true,
UseShellExecute = false,
Expand Down Expand Up @@ -882,7 +882,7 @@ public async Task DownloadAvatarHeader(string? avatarUrl, string? headerUrl, str
}

#region drm posts
public async Task<bool> DownloadMessageDRMVideo(string ffmpegpath, string user_agent, string policy, string signature, string kvp, string sess, string url, string decryptionKey, string folder, DateTime lastModified, long media_id, ProgressTask task, string filenameFormat, Messages.List messageInfo, Messages.Medium messageMedia, Messages.FromUser fromUser, Dictionary<string, int> users, Config config, bool showScrapeSize)
public async Task<bool> DownloadMessageDRMVideo(string user_agent, string policy, string signature, string kvp, string sess, string url, string decryptionKey, string folder, DateTime lastModified, long media_id, ProgressTask task, string filenameFormat, Messages.List messageInfo, Messages.Medium messageMedia, Messages.FromUser fromUser, Dictionary<string, int> users, Config config, bool showScrapeSize)
{
try
{
Expand Down Expand Up @@ -921,7 +921,7 @@ public async Task<bool> DownloadMessageDRMVideo(string ffmpegpath, string user_a
{
if (!string.IsNullOrEmpty(customFileName) ? !File.Exists(folder + path + "/" + customFileName + ".mp4") : !File.Exists(folder + path + "/" + filename + "_source.mp4"))
{
return await DownloadDrmMedia(ffmpegpath, user_agent, policy, signature, kvp, sess, url, decryptionKey, folder, lastModified, media_id, task, customFileName, filename, path, showScrapeSize);
return await DownloadDrmMedia(user_agent, policy, signature, kvp, sess, url, decryptionKey, folder, lastModified, media_id, task, customFileName, filename, path, showScrapeSize, config);
}
else
{
Expand Down Expand Up @@ -966,7 +966,7 @@ public async Task<bool> DownloadMessageDRMVideo(string ffmpegpath, string user_a
}


public async Task<bool> DownloadPurchasedMessageDRMVideo(string ffmpegpath, string user_agent, string policy, string signature, string kvp, string sess, string url, string decryptionKey, string folder, DateTime lastModified, long media_id, ProgressTask task, string filenameFormat, Purchased.List messageInfo, Purchased.Medium messageMedia, Purchased.FromUser fromUser, Dictionary<string, int> users, Config config, bool showScrapeSize)
public async Task<bool> DownloadPurchasedMessageDRMVideo(string user_agent, string policy, string signature, string kvp, string sess, string url, string decryptionKey, string folder, DateTime lastModified, long media_id, ProgressTask task, string filenameFormat, Purchased.List messageInfo, Purchased.Medium messageMedia, Purchased.FromUser fromUser, Dictionary<string, int> users, Config config, bool showScrapeSize)
{
try
{
Expand Down Expand Up @@ -1004,7 +1004,7 @@ public async Task<bool> DownloadPurchasedMessageDRMVideo(string ffmpegpath, stri
{
if (!string.IsNullOrEmpty(customFileName) ? !File.Exists(folder + path + "/" + customFileName + ".mp4") : !File.Exists(folder + path + "/" + filename + "_source.mp4"))
{
return await DownloadDrmMedia(ffmpegpath, user_agent, policy, signature, kvp, sess, url, decryptionKey, folder, lastModified, media_id, task, customFileName, filename, path, showScrapeSize);
return await DownloadDrmMedia(user_agent, policy, signature, kvp, sess, url, decryptionKey, folder, lastModified, media_id, task, customFileName, filename, path, showScrapeSize, config);
}
else
{
Expand Down Expand Up @@ -1049,7 +1049,7 @@ public async Task<bool> DownloadPurchasedMessageDRMVideo(string ffmpegpath, stri
}


public async Task<bool> DownloadPostDRMVideo(string ffmpegpath, string user_agent, string policy, string signature, string kvp, string sess, string url, string decryptionKey, string folder, DateTime lastModified, long media_id, ProgressTask task, string filenameFormat, Post.List postInfo, Post.Medium postMedia, Post.Author author, Dictionary<string, int> users, Config config, bool showScrapeSize)
public async Task<bool> DownloadPostDRMVideo(string user_agent, string policy, string signature, string kvp, string sess, string url, string decryptionKey, string folder, DateTime lastModified, long media_id, ProgressTask task, string filenameFormat, Post.List postInfo, Post.Medium postMedia, Post.Author author, Dictionary<string, int> users, Config config, bool showScrapeSize)
{
try
{
Expand Down Expand Up @@ -1087,7 +1087,7 @@ public async Task<bool> DownloadPostDRMVideo(string ffmpegpath, string user_agen
{
if (!string.IsNullOrEmpty(customFileName) ? !File.Exists(folder + path + "/" + customFileName + ".mp4") : !File.Exists(folder + path + "/" + filename + "_source.mp4"))
{
return await DownloadDrmMedia(ffmpegpath, user_agent, policy, signature, kvp, sess, url, decryptionKey, folder, lastModified, media_id, task, customFileName, filename, path, showScrapeSize);
return await DownloadDrmMedia(user_agent, policy, signature, kvp, sess, url, decryptionKey, folder, lastModified, media_id, task, customFileName, filename, path, showScrapeSize, config);
}
else
{
Expand Down Expand Up @@ -1130,7 +1130,7 @@ public async Task<bool> DownloadPostDRMVideo(string ffmpegpath, string user_agen
}
return false;
}
public async Task<bool> DownloadPostDRMVideo(string ffmpegpath, string user_agent, string policy, string signature, string kvp, string sess, string url, string decryptionKey, string folder, DateTime lastModified, long media_id, ProgressTask task, string filenameFormat, SinglePost postInfo, SinglePost.Medium postMedia, SinglePost.Author author, Dictionary<string, int> users, Config config, bool showScrapeSize)
public async Task<bool> DownloadPostDRMVideo(string user_agent, string policy, string signature, string kvp, string sess, string url, string decryptionKey, string folder, DateTime lastModified, long media_id, ProgressTask task, string filenameFormat, SinglePost postInfo, SinglePost.Medium postMedia, SinglePost.Author author, Dictionary<string, int> users, Config config, bool showScrapeSize)
{
try
{
Expand Down Expand Up @@ -1168,7 +1168,7 @@ public async Task<bool> DownloadPostDRMVideo(string ffmpegpath, string user_agen
{
if (!string.IsNullOrEmpty(customFileName) ? !File.Exists(folder + path + "/" + customFileName + ".mp4") : !File.Exists(folder + path + "/" + filename + "_source.mp4"))
{
return await DownloadDrmMedia(ffmpegpath, user_agent, policy, signature, kvp, sess, url, decryptionKey, folder, lastModified, media_id, task, customFileName, filename, path, showScrapeSize);
return await DownloadDrmMedia(user_agent, policy, signature, kvp, sess, url, decryptionKey, folder, lastModified, media_id, task, customFileName, filename, path, showScrapeSize, config);
}
else
{
Expand Down Expand Up @@ -1211,7 +1211,7 @@ public async Task<bool> DownloadPostDRMVideo(string ffmpegpath, string user_agen
}
return false;
}
public async Task<bool> DownloadStreamsDRMVideo(string ffmpegpath, string user_agent, string policy, string signature, string kvp, string sess, string url, string decryptionKey, string folder, DateTime lastModified, long media_id, ProgressTask task, string filenameFormat, Streams.List streamInfo, Streams.Medium streamMedia, Streams.Author author, Dictionary<string, int> users, Config config, bool showScrapeSize)
public async Task<bool> DownloadStreamsDRMVideo(string user_agent, string policy, string signature, string kvp, string sess, string url, string decryptionKey, string folder, DateTime lastModified, long media_id, ProgressTask task, string filenameFormat, Streams.List streamInfo, Streams.Medium streamMedia, Streams.Author author, Dictionary<string, int> users, Config config, bool showScrapeSize)
{
try
{
Expand Down Expand Up @@ -1249,7 +1249,7 @@ public async Task<bool> DownloadStreamsDRMVideo(string ffmpegpath, string user_a
{
if (!string.IsNullOrEmpty(customFileName) ? !File.Exists(folder + path + "/" + customFileName + ".mp4") : !File.Exists(folder + path + "/" + filename + "_source.mp4"))
{
return await DownloadDrmMedia(ffmpegpath, user_agent, policy, signature, kvp, sess, url, decryptionKey, folder, lastModified, media_id, task, customFileName, filename, path, showScrapeSize);
return await DownloadDrmMedia(user_agent, policy, signature, kvp, sess, url, decryptionKey, folder, lastModified, media_id, task, customFileName, filename, path, showScrapeSize, config);
}
else
{
Expand Down Expand Up @@ -1293,7 +1293,7 @@ public async Task<bool> DownloadStreamsDRMVideo(string ffmpegpath, string user_a
return false;
}

public async Task<bool> DownloadPurchasedPostDRMVideo(string ffmpegpath, string user_agent, string policy, string signature, string kvp, string sess, string url, string decryptionKey, string folder, DateTime lastModified, long media_id, ProgressTask task, string filenameFormat, Purchased.List postInfo, Purchased.Medium postMedia, Purchased.FromUser fromUser, Dictionary<string, int> users, Config config, bool showScrapeSize)
public async Task<bool> DownloadPurchasedPostDRMVideo(string user_agent, string policy, string signature, string kvp, string sess, string url, string decryptionKey, string folder, DateTime lastModified, long media_id, ProgressTask task, string filenameFormat, Purchased.List postInfo, Purchased.Medium postMedia, Purchased.FromUser fromUser, Dictionary<string, int> users, Config config, bool showScrapeSize)
{
try
{
Expand Down Expand Up @@ -1332,7 +1332,7 @@ public async Task<bool> DownloadPurchasedPostDRMVideo(string ffmpegpath, string
{
if (!string.IsNullOrEmpty(customFileName) ? !File.Exists(folder + path + "/" + customFileName + ".mp4") : !File.Exists(folder + path + "/" + filename + "_source.mp4"))
{
return await DownloadDrmMedia(ffmpegpath, user_agent, policy, signature, kvp, sess, url, decryptionKey, folder, lastModified, media_id, task, customFileName, filename, path, showScrapeSize);
return await DownloadDrmMedia(user_agent, policy, signature, kvp, sess, url, decryptionKey, folder, lastModified, media_id, task, customFileName, filename, path, showScrapeSize, config);
}
else
{
Expand Down Expand Up @@ -1377,7 +1377,7 @@ public async Task<bool> DownloadPurchasedPostDRMVideo(string ffmpegpath, string
}


public async Task<bool> DownloadArchivedPostDRMVideo(string ffmpegpath, string user_agent, string policy, string signature, string kvp, string sess, string url, string decryptionKey, string folder, DateTime lastModified, long media_id, ProgressTask task, string filenameFormat, Archived.List postInfo, Archived.Medium postMedia, Archived.Author author, Dictionary<string, int> users, Config config, bool showScrapeSize)
public async Task<bool> DownloadArchivedPostDRMVideo(string user_agent, string policy, string signature, string kvp, string sess, string url, string decryptionKey, string folder, DateTime lastModified, long media_id, ProgressTask task, string filenameFormat, Archived.List postInfo, Archived.Medium postMedia, Archived.Author author, Dictionary<string, int> users, Config config, bool showScrapeSize)
{
try
{
Expand Down Expand Up @@ -1407,7 +1407,7 @@ public async Task<bool> DownloadArchivedPostDRMVideo(string ffmpegpath, string u
{
if (!string.IsNullOrEmpty(customFileName) ? !File.Exists(folder + path + "/" + customFileName + ".mp4") : !File.Exists(folder + path + "/" + filename + "_source.mp4"))
{
return await DownloadDrmMedia(ffmpegpath, user_agent, policy, signature, kvp, sess, url, decryptionKey, folder, lastModified, media_id, task, customFileName, filename, path, showScrapeSize);
return await DownloadDrmMedia(user_agent, policy, signature, kvp, sess, url, decryptionKey, folder, lastModified, media_id, task, customFileName, filename, path, showScrapeSize, config);
}
else
{
Expand Down
Loading

0 comments on commit 66874c1

Please sign in to comment.