octimot / StoryToolkitAI

An editing tool that uses AI to transcribe, understand content and search for anything in your footage, integrated with ChatGPT and other AI models
GNU General Public License v3.0
724 stars 60 forks source link

Story timeline export not working #151

Closed barzoock closed 10 months ago

barzoock commented 10 months ago

last git pulled today 2024/10/01.

when exporting Story to EDL/XML :

Exception in Tkinter callback Traceback (most recent call last): File "C:\Users\User\AppData\Local\Programs\Python\Python310\lib\tkinter__init.py", line 1921, in call return self.func(*args) File "C:\Users\User\Desktop\StoryToolkitAI\StoryToolkitAI\storytoolkitai..\storytoolkitai\ui\menu.py", line 265, in command=lambda: self.toolkit_UI_obj.StoryEdit.button_export_as_timeline( File "C:\Users\User\Desktop\StoryToolkitAI\StoryToolkitAI\storytoolkitai..\storytoolkitai\ui\toolkit_ui.py", line 12927, in button_export_as_timeline export_result = StoryUtils.write_fcp7xml( File "C:\Users\User\Desktop\StoryToolkitAI\StoryToolkitAI\storytoolkitai..\storytoolkitai\core\toolkit_ops\story.py", line 1390, in write_fcp7xml lines_to_export, files, edit_start_tc, edit_end_tc = cls.prepare_export( File "C:\Users\User\Desktop\StoryToolkitAI\StoryToolkitAI\storytoolkitai..\storytoolkitai\core\toolkit_ops\story.py", line 1220, in prepare_export edit_end_tc = edit_end_tc + (line_start_tc - last_line_end_tc) File "C:\Users\User\Desktop\StoryToolkitAI\venv\lib\site-packages\timecode__init.py", line 465, in sub__ return Timecode(self.framerate, frames=abs(subtracted_frames)) File "C:\Users\User\Desktop\StoryToolkitAI\venv\lib\site-packages\timecode\init.py", line 80, in init self.frames = frames File "C:\Users\User\Desktop\StoryToolkitAI\venv\lib\site-packages\timecode\init__.py", line 111, in frames raise ValueError( ValueError: Timecode.frames should be a positive integer bigger than zero, not 0

octimot commented 10 months ago

Hey!

This happens when you have things in the story/timeline/transcription that deal with timecode 00:00:00:00 or frame 0, or possibly anything that has 0 frames.

I'll push a fix in a few days!

Cheers

barzoock commented 10 months ago

Hey!

This happens when you have things in the story/timeline/transcription that deal with timecode 00:00:00:00 or frame 0, or possibly anything that has 0 frames.

I'll push a fix in a few days!

Cheers

Thank you! Is it possible to revert to the previous version temporarily until the issue is resolved?

octimot commented 10 months ago

Is it possible to revert to the previous version temporarily until the issue is resolved?

In general, if you want to go back to a previous commit, just do.

git reset --hard <COMMIT_HASH>

You can find the COMMIT_HASH here (right side, copy Full SHA) https://github.com/octimot/StoryToolkitAI/commits/main

You might need to re-install the environment since the requirements.txt might have changed, depending on which version you go back to...

But I don't think this ever worked properly since the Story Editor feature is quite new. This issue is the exact problem as reported here: https://github.com/octimot/StoryToolkitAI/issues/132 - but for AVID Text exports.

As I mentioned, it only affects 0 frame timecodes, so simply taking out that problematic segment from the story and making sure you don't use 00:00:00:00 as start timecodes should do the trick.

This will be taken care of very soon!

barzoock commented 10 months ago

@octimot

As I mentioned, it only affects 0 frame timecodes, so simply taking out that problematic segment from the story and making sure you don't use 00:00:00:00 as start timecodes should do the trick.

Thanks. Nothing deal with 0 or timecode 0... in my case... that's the point. and Story feature worked for me when last time i used it a month ago. just let you know. if you need more info or test helping i'm here :)

Update: After countless attempts to investigate the bug, I've explored various methods. It's exporting with English only (Language), but with following issues: the XML file is corrupted and unopenable, and the EDL file opens but appears to be fragmented and not aligned with the intended story edit, containing random segments instead.

octimot commented 10 months ago

Nothing deal with 0 or timecode 0... in my case... that's the point.

I think in your case there's a story line that has the duration 0. If you right click on the story lines, you can see their start and end times. If one of them has the same start and end time, it means duration is 0...

and Story feature worked for me when last time i used it a month ago.

Did you import XML into Premiere, or?

Update: After countless attempts to investigate the bug, I've explored various methods. It's exporting with English only (Language), but with following issues: the XML file is corrupted and unopenable, and the EDL file opens but appears to be fragmented and not aligned with the intended story edit, containing random segments instead.

If you get the error on export, it's very likely that the files will be corrupted too.

BTW, what frame rates do your source transcriptions use and what frame rate are you using to export from the story editor?

Non-English characters should not affect the export, since the tool is not exporting any text to XML/EDL. (unless you "Export Notes").

Cheers!

barzoock commented 10 months ago

I think in your case there's a story line that has the duration 0. If you right click on the story lines, you can see their start and end times. If one of them has the same start and end time, it means duration is 0... Did you import XML into Premiere, or?

OK.
To locate that specific troublesome 0-frame block, I would go and edit the video manually faster. (Joking). In a 10min video i deleted most of the blocks (for testing) and it's working. only EDL. and Yes Premiere. We need an update that locate the specific 0 frames block and deal with it.

Update: EDL make the audio of the video MONO in Premiere which is bad. EDL is an old method and I always use XML in Premiere workflow.

octimot commented 10 months ago

In a 10min video i deleted most of the blocks (for testing) and it's working. only EDL. and Yes Premiere.

But did you manage to also export the XML after deleting the blocks? If yes, did Premiere give you an error on import, or why did you choose to use EDL?

Update: EDL make the audio of the video MONO in Premiere which is bad. EDL is an old method and I always use XML in Premiere workflow. Using the EDL requires more footage conforming operations compared to XML since it's not referring properly to the source footage.

Are you using the same media file to transcribe, or are you exporting a separate, mono file to use in the tool?

barzoock commented 10 months ago

BIG update: not only a specific block. it happens on many of blocks (in my 10min video case its at least 70% of the blocks). when one ends the next starts. for example:

  1. 00:00:01:00 - 00:00:02:00
  2. 00:00:02:00 - 00:00:03:00 - BUGED becuase 00:00:02:00-00:00:02:00=0

but it would work if

  1. 00:00:02:01 - 00:00:03:00

But did you manage to also export the XML after deleting the blocks? If yes, did Premiere give you an error on import, or why did you choose to use EDL?

sure tried XML also. It fails to import the xml.

Are you using the same media file to transcribe, or are you exporting a separate, mono file to use in the tool?

same file.

octimot commented 10 months ago

I just pushed version 0.23.0 with significant better timecode calculation.

Besides the 0 frame timecode issue, there were also a bunch of other things that were mis-calculating things on export.

Plus, the tool now should be able to calculate accurately timecodes at frame rates that go into timelines/sequences at different frame rates.

@barzoock Please let me know if this works on your end!

Cheers!