Downloading Content at Runtime in Packaged Unreal Build

I’m working on a project that downloads MP4 clips at runtime, uses them in a 3D render, then deletes the file when it’s done. In an unpackaged project, I have these files downloading into the \Content\Movies folder, and that’s working great. I’m hitting a bit of an issue with a packaged build, though (Development mode), and I’m hoping that you or someone on your team can advise on the best practice… where should content be downloaded at runtime in a packaged build so that it can be recognized by the Unreal project (I’m converting MP4 -> JPEG, then populating an Image Media Source)? Should I use the `AppData\Local` folder? A Saved folder? I’ve been scouring forums, but haven’t found a good recommendation for runtime downloads in a Development packaged build specifically. Here’s the current logic I’m using to determine the download location:

`#Note: in the code snipping below, “SourceID” is an identifier for the video – e.g, \Content\Movies\VideoSource1.

#if WITH_EDITOR
// Define the directory path to save the video
DirectoryPath = FPaths::ProjectContentDir() / “Movies” / SourceID;
#else
// Packaged project - use AppData\Local folder
FString AppDataPath = FPlatformProcess::ApplicationSettingsDir(); // Gets the AppData\Local path
FString ProjectName = FApp::GetProjectName(); // Dynamically retrieves the project name
DirectoryPath = FPaths::Combine(AppDataPath, ProjectName, TEXT(“Saved”), SourceID);
#endif`

Unfortunately the project Content/ folder gets baked into .pak files when building projects, so becomes read-only which is why it does not work as a runtime save location.

The project Saved/ folder, on the other hand, is a known and supported location for runtime content that can work across platforms. So you are on the right track, but there is a direct call to that path available that should work cross-platform depending on your use case:

FPaths::ProjectSavedDir()Were there any issues with the manually constructed path you are currently using though? That should work fine for Windows.

There is also a popular 3rd party plugin for cross-platform runtime file downloading that comes up often on the forums, but we have not tested directly so cannot vouch for its specific capabilities:

https://www.fab.com/listings/771d5e74-3d7d-49b9-a682-7a6f7f86b94c

(It was previously open source if you want to inspect the source code as of Feb 2025, though it is no longer maintained on Github)

Thank you!