Collect Your Media With Ease!
-
-
-
@bonemap
I would be curious to here from you if you have a chance to use this one some 3D heavy projects. The 3D files can have associated texture files, and collecting these was the only special case that had to be handled to get this working. I had cases where my textures didn't have file extensions, so I made sure that case was covered. Let me know if you have any feedback. Thanks -
Thanks for the prompt, will give it a try soon. Your Pythoner Add-On example also nudged me to think about how to manage the Media Bins more broadly as I move towards assimilating larger libraries of - say - Midi files, like these open source examples: free-midi-chords
A programmable option to import and remove path items from the media bins is what I am thinking right now - but early days in creating interactive experiences with such large suites of media options. It may be more about opening and closing Isadora files with segmented regions based on - for example - musical major and minor keys.
Best Wishes,
Russell
-
@bonemap said:
opening and closing Isadora files
I keep meaning to do something neat with this little guy. Some day, some day...
-
Hi Ryan,
Apologies for the slow response. I did try your 'Collect Media Files' Pythoner on a couple of projects and it collected files from cloud storage and locally compiled a folder as described - great stuff! I did note that the pathnames to the assets did not change in the newly saved version. I think you indicate that the assets might be reassigned in the created archive? I haven't had a chance to try to port a 'collected' project to a different network computer yet.
Isadora also allows several files to be associated with a scene through various actors, like Data Array etc. and even .oni skeleton files so these get left out of the 'collect all process' or do yiu think there is another way to scrape a project for associated files?
Your offer will definitely help to clean up archives etc.
Best Wishes,
Russell
-
@bonemap said:
sadora also allows several files to be associated with a scene through various actors, like Data Array etc. and even .oni skeleton files so these get left out of the 'collect all process' or do yiu think there is another way to scrape a project for associated files?
I might have a solution to this.. I am working on something.
-
@bonemap said:
I did note that the pathnames to the assets did not change in the newly saved version
No, The project file and Isadora need to be re-opened, facilitating the Media Search. After this search (it should find the local files) it will save the new paths when saved. I was just suggesting, making a backup of the file before re-opening the project with Isadora, since it would be easy to save and lose the remote filepaths. I'm working on another process right now for filepaths embedded in the project file. It won't be possible to get everything, especially for advanced Pythoner projects (shouldn't need to, if they follow best practices). Right now I can find, DataArray files, Top Level Python linked files, Files linked in Javascript via read() and include(), and I am able to expand this still. I will add .oni next and try to get a complete scan. I think I will have this script output a report, that is human readable, and can be edited by hand. Specifically, per found file, an 'Include' setting, so that specific files can be excluded from the next step of collecting, which will be handled by another script.
-
Hi there,
I would prefere a solution like Reaper: when you save the first time Isadora should create a folder, and inside a media folder (Or two for folms and picture), the Isadora show, an undo file or folder and a backup folder. In the prefs you could allow to move, or copy the files.
All this should be easy to put into Isadora, and I wonder why it is not yet implemented?!?
many greetings Matth
many greetings
Matthias
-
The main reason is that you cannot cover all circumstances. If your goal is to collect only the media that is actually used — and not everything stored in the media bin — Isadora can be used differently compared to other software. See this post:
https://community.troikatronix.com/topic/8601/moving-media/10?_=1767347158370Best Michel
-
you can collect all media first, and when the project is finished you can maybe delete all unused media items.
many greetings
Matthias
-
I will have a tool to share shortly that parses your IZZ files and returns a report of all the filepaths found.
It is VERY experimental but provides very useful information already.
It is broken into three parts:
-1 Collect data from IZZ file (find all linked files)
-2 Make Local copies of all link files.
-3 Update a copy of your IZZ binary with new local filepaths
The JSON report from step 1 is for all Scenes in your project, and includes things like read/include() calls inside any javascript you have.
The report provides a few settings you can adjust before running step two.
{ "source_path": "C:\\pyFile2.py", "target_name": "pyFile2.py", "action": "localize", "localized_relpath": "pyFile2.py", "occurrences": 2, "exists": false, "scenes_found": [ "scene1", "scene3" ] }, "notes": { "summary": "Structural scene detection + Deterministic Value Header extraction (Index 0).", "action_codes": { "localize": "Standard project dependency. Should be moved/collected for portability.", "ignore": "eg: Internal Isadora/Pythoner resource. Should remain in place.", "[custom-path]": "User-defined destination path (e.g. '/data'). Localizes the file into this subfolder relative to the project root." }, "exists_codes": { "true": "Absolute path found on this system.", "false": "Absolute path NOT found on this system.", "null": "Relative path. Existence depends on project root location." } }The above JSON outlines what is collected for each filepath. In this case, the filepath was found in two scenes, and so both are listed for reference. The filepath entry is unique so it is listed once.
The Notes provide details on what options are available. Mostly the action_code is what you might change. This can allow you to create a custom path. Custom Paths MUST be equal or shorter than the source_path if you want to use step three.
Part 1 and 2 will be available for testing soon.
Part 3 is more delicate, and will need more testing before I can release anything.
