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) } } }