From a8ee5e964874d13bda74115772759b29061b300f Mon Sep 17 00:00:00 2001 From: User24kld Date: Wed, 21 May 2025 11:32:24 +0000 Subject: [PATCH] Upload files to "/" needs changing, very basic shell atm --- ofdl dl.go | 77 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 77 insertions(+) create mode 100644 ofdl dl.go diff --git a/ofdl dl.go b/ofdl dl.go new file mode 100644 index 0000000..890df7c --- /dev/null +++ b/ofdl dl.go @@ -0,0 +1,77 @@ +package main + +import ( + "fmt" + "os" + "strings" +) + +func fileExists(path string) bool { + _, err := os.Stat(path) + return err == nil +} + +func main() { + //needs changing to actual + paidMessageValue := "https://cdn3.onlyfans.com/dash/files,..." + paidMessageKey := "mediaId123" + path := "/path/to/download" + task := "download-task" + deviceFolder := "/path/to/device" + deviceName := "default" + hasSelectedUsers := true + + clientIdBlobMissing := !fileExists(fmt.Sprintf("%s/%s/device_client_id_blob", deviceFolder, deviceName)) + devicePrivateKeyMissing := !fileExists(fmt.Sprintf("%s/%s/device_private_key", deviceFolder, deviceName)) + + if strings.Contains(paidMessageValue, "cdn3.onlyfans.com/dash/files") { + parts := strings.Split(paidMessageValue, ",") + if len(parts) < 6 { + fmt.Println("Invalid media info string.") + return + } + + mpdURL := parts[0] + policy := parts[1] + signature := parts[2] + kvp := parts[3] + mediaId := parts[4] + messageId := parts[5] + + pssh, err := GetDRMMPDPSSH(mpdURL, policy, signature, kvp) + if err != nil || pssh == "" { + fmt.Println("Failed to get PSSH") + return + } + + lastModified, _ := GetDRMMPDLastModified(mpdURL, policy, signature, kvp) + + drmHeaders := GetDynamicHeaders(fmt.Sprintf("/api2/v2/users/media/%s/drm/message/%s", mediaId, messageId), "?type=widevine") + + var decryptionKey string + if clientIdBlobMissing || devicePrivateKeyMissing { + decryptionKey, err = GetDecryptionKeyOFDL(drmHeaders, fmt.Sprintf("https://onlyfans.com/api2/v2/users/media/%s/drm/message/%s?type=widevine", mediaId, messageId), pssh) + } else { + decryptionKey, err = GetDecryptionKeyCDM(drmHeaders, fmt.Sprintf("https://onlyfans.com/api2/v2/users/media/%s/drm/message/%s?type=widevine", mediaId, messageId), pssh) + } + + if err != nil { + fmt.Println("Failed to get decryption key:", err) + return + } + + err = DownloadPurchasedMessageDRMVideo(mpdURL, decryptionKey, path) + if err != nil { + fmt.Println("Failed to download DRM video:", err) + } + } else { + // Simulated. needs changing for our needs + mediaInfo := "media-metadata" + messageInfo := "message-metadata" + + err := DownloadPurchasedMedia(paidMessageValue, path, paidMessageKey, "Messages", task, "filenameFormat", messageInfo, mediaInfo, hasSelectedUsers) + if err != nil { + fmt.Println("Failed to download regular media:", err) + } + } +}