yeliudev commited on
Commit
6073e55
·
verified ·
1 Parent(s): e462b88

Upload folder using huggingface_hub

Browse files
Files changed (49) hide show
  1. app.py +4 -4
  2. videomind/constants.py +1 -1
  3. videomind/conversation.py +1 -1
  4. videomind/dataset/collator.py +1 -1
  5. videomind/dataset/hybrid.py +1 -1
  6. videomind/dataset/sub_classes/activitynet_captions.py +1 -1
  7. videomind/dataset/sub_classes/activitynet_rtl.py +1 -1
  8. videomind/dataset/sub_classes/cgbench.py +1 -1
  9. videomind/dataset/sub_classes/charades_sta.py +1 -1
  10. videomind/dataset/sub_classes/cosmo_cap.py +1 -1
  11. videomind/dataset/sub_classes/didemo.py +1 -1
  12. videomind/dataset/sub_classes/ego4d_naq.py +1 -1
  13. videomind/dataset/sub_classes/ego4d_nlq.py +1 -1
  14. videomind/dataset/sub_classes/ego_timeqa.py +1 -1
  15. videomind/dataset/sub_classes/hirest.py +1 -1
  16. videomind/dataset/sub_classes/internvit_vtime.py +1 -1
  17. videomind/dataset/sub_classes/longvideobench.py +1 -1
  18. videomind/dataset/sub_classes/lvbench.py +1 -1
  19. videomind/dataset/sub_classes/mlvu.py +1 -1
  20. videomind/dataset/sub_classes/mvbench.py +1 -1
  21. videomind/dataset/sub_classes/nextgqa.py +1 -1
  22. videomind/dataset/sub_classes/nextqa.py +1 -1
  23. videomind/dataset/sub_classes/qa_ego4d.py +1 -1
  24. videomind/dataset/sub_classes/queryd.py +1 -1
  25. videomind/dataset/sub_classes/qvhighlights.py +1 -1
  26. videomind/dataset/sub_classes/rextime.py +1 -1
  27. videomind/dataset/sub_classes/star.py +1 -1
  28. videomind/dataset/sub_classes/tacos.py +1 -1
  29. videomind/dataset/sub_classes/vid_morp.py +1 -1
  30. videomind/dataset/sub_classes/videomme.py +1 -1
  31. videomind/dataset/sub_classes/videoxum.py +1 -1
  32. videomind/dataset/sub_classes/youcook2.py +1 -1
  33. videomind/dataset/utils.py +2 -5
  34. videomind/dataset/wrappers/answering.py +1 -1
  35. videomind/dataset/wrappers/grounding.py +1 -1
  36. videomind/dataset/wrappers/planning.py +1 -1
  37. videomind/dataset/wrappers/verifying.py +1 -1
  38. videomind/eval/eval_auto.py +1 -1
  39. videomind/eval/infer_auto.py +1 -1
  40. videomind/eval/infer_qvhighlights.py +1 -1
  41. videomind/model/blocks.py +1 -1
  42. videomind/model/builder.py +1 -1
  43. videomind/model/generator.py +1 -1
  44. videomind/model/loss.py +1 -1
  45. videomind/model/model.py +1 -1
  46. videomind/train/custom_trainer.py +1 -1
  47. videomind/train/train.py +1 -1
  48. videomind/utils/io.py +1 -1
  49. videomind/utils/parser.py +1 -1
app.py CHANGED
@@ -1,4 +1,4 @@
1
- # Copyright (c) 2024 Ye Liu. Licensed under the BSD-3-Clause license.
2
 
3
  import html
4
  import json
@@ -28,7 +28,7 @@ MODEL_HF = 'yeliudev/VideoMind-2B'
28
 
29
  TITLE = 'VideoMind: A Chain-of-LoRA Agent for Long Video Reasoning'
30
 
31
- TITLE_MD = f'<h1 align="center">💡 {TITLE}</h1>'
32
  DESCRIPTION_MD = """VideoMind is a multi-modal agent framework that enhances video reasoning by emulating *human-like* processes, such as *breaking down tasks*, *localizing and verifying moments*, and *synthesizing answers*. This approach addresses the unique challenges of temporal-grounded reasoning in a progressive strategy. Please find more details at our <a href="https://videomind.github.io/" target="_blank">Project Page</a>, <a href="https://arxiv.org/abs/2503.13444" target="_blank">Tech Report</a> and <a href="https://github.com/yeliudev/VideoMind" target="_blank">GitHub Repo</a>.""" # noqa
33
 
34
  # yapf:disable
@@ -580,7 +580,7 @@ if __name__ == '__main__':
580
  prompt = gr.Textbox(label='Text Prompt', placeholder='Ask a question about the video...')
581
 
582
  with gr.Blocks(title=TITLE, css=CSS, js=JS) as demo:
583
- gr.Markdown(TITLE_MD)
584
  gr.Markdown(DESCRIPTION_MD)
585
 
586
  with gr.Row():
@@ -633,4 +633,4 @@ if __name__ == '__main__':
633
  with gr.Column(scale=5):
634
  chat.render()
635
 
636
- demo.launch()
 
1
+ # Copyright (c) 2025 Ye Liu. Licensed under the BSD-3-Clause license.
2
 
3
  import html
4
  import json
 
28
 
29
  TITLE = 'VideoMind: A Chain-of-LoRA Agent for Long Video Reasoning'
30
 
31
+ LOGO_MD = '<p align="center"><img width="350" src="https://raw.githubusercontent.com/yeliudev/VideoMind/refs/heads/main/.github/logo.png"></p>'
32
  DESCRIPTION_MD = """VideoMind is a multi-modal agent framework that enhances video reasoning by emulating *human-like* processes, such as *breaking down tasks*, *localizing and verifying moments*, and *synthesizing answers*. This approach addresses the unique challenges of temporal-grounded reasoning in a progressive strategy. Please find more details at our <a href="https://videomind.github.io/" target="_blank">Project Page</a>, <a href="https://arxiv.org/abs/2503.13444" target="_blank">Tech Report</a> and <a href="https://github.com/yeliudev/VideoMind" target="_blank">GitHub Repo</a>.""" # noqa
33
 
34
  # yapf:disable
 
580
  prompt = gr.Textbox(label='Text Prompt', placeholder='Ask a question about the video...')
581
 
582
  with gr.Blocks(title=TITLE, css=CSS, js=JS) as demo:
583
+ gr.Markdown(LOGO_MD)
584
  gr.Markdown(DESCRIPTION_MD)
585
 
586
  with gr.Row():
 
633
  with gr.Column(scale=5):
634
  chat.render()
635
 
636
+ demo.launch(server_name='0.0.0.0')
videomind/constants.py CHANGED
@@ -1,4 +1,4 @@
1
- # Copyright (c) Ye Liu. Licensed under the BSD 3-Clause License.
2
 
3
  IGNORE_INDEX = -100
4
 
 
1
+ # Copyright (c) 2025 Ye Liu. Licensed under the BSD-3-Clause License.
2
 
3
  IGNORE_INDEX = -100
4
 
videomind/conversation.py CHANGED
@@ -1,4 +1,4 @@
1
- # Copyright (c) Ye Liu. Licensed under the BSD 3-Clause License.
2
 
3
  from dataclasses import dataclass
4
  from typing import List
 
1
+ # Copyright (c) 2025 Ye Liu. Licensed under the BSD-3-Clause License.
2
 
3
  from dataclasses import dataclass
4
  from typing import List
videomind/dataset/collator.py CHANGED
@@ -1,4 +1,4 @@
1
- # Copyright (c) Ye Liu. Licensed under the BSD 3-Clause License.
2
 
3
  import warnings
4
 
 
1
+ # Copyright (c) 2025 Ye Liu. Licensed under the BSD-3-Clause License.
2
 
3
  import warnings
4
 
videomind/dataset/hybrid.py CHANGED
@@ -1,4 +1,4 @@
1
- # Copyright (c) Ye Liu. Licensed under the BSD 3-Clause License.
2
 
3
  import math
4
  import random
 
1
+ # Copyright (c) 2025 Ye Liu. Licensed under the BSD-3-Clause License.
2
 
3
  import math
4
  import random
videomind/dataset/sub_classes/activitynet_captions.py CHANGED
@@ -1,4 +1,4 @@
1
- # Copyright (c) Ye Liu. Licensed under the BSD 3-Clause License.
2
 
3
  from collections import OrderedDict
4
 
 
1
+ # Copyright (c) 2025 Ye Liu. Licensed under the BSD-3-Clause License.
2
 
3
  from collections import OrderedDict
4
 
videomind/dataset/sub_classes/activitynet_rtl.py CHANGED
@@ -1,4 +1,4 @@
1
- # Copyright (c) Ye Liu. Licensed under the BSD 3-Clause License.
2
 
3
  import re
4
  from collections import OrderedDict
 
1
+ # Copyright (c) 2025 Ye Liu. Licensed under the BSD-3-Clause License.
2
 
3
  import re
4
  from collections import OrderedDict
videomind/dataset/sub_classes/cgbench.py CHANGED
@@ -1,4 +1,4 @@
1
- # Copyright (c) Ye Liu. Licensed under the BSD 3-Clause License.
2
 
3
  import nncore
4
  from torch.utils.data import Dataset
 
1
+ # Copyright (c) 2025 Ye Liu. Licensed under the BSD-3-Clause License.
2
 
3
  import nncore
4
  from torch.utils.data import Dataset
videomind/dataset/sub_classes/charades_sta.py CHANGED
@@ -1,4 +1,4 @@
1
- # Copyright (c) Ye Liu. Licensed under the BSD 3-Clause License.
2
 
3
  import nncore
4
 
 
1
+ # Copyright (c) 2025 Ye Liu. Licensed under the BSD-3-Clause License.
2
 
3
  import nncore
4
 
videomind/dataset/sub_classes/cosmo_cap.py CHANGED
@@ -1,4 +1,4 @@
1
- # Copyright (c) Ye Liu. Licensed under the BSD 3-Clause License.
2
 
3
  import nncore
4
 
 
1
+ # Copyright (c) 2025 Ye Liu. Licensed under the BSD-3-Clause License.
2
 
3
  import nncore
4
 
videomind/dataset/sub_classes/didemo.py CHANGED
@@ -1,4 +1,4 @@
1
- # Copyright (c) Ye Liu. Licensed under the BSD 3-Clause License.
2
 
3
  import random
4
 
 
1
+ # Copyright (c) 2025 Ye Liu. Licensed under the BSD-3-Clause License.
2
 
3
  import random
4
 
videomind/dataset/sub_classes/ego4d_naq.py CHANGED
@@ -1,4 +1,4 @@
1
- # Copyright (c) Ye Liu. Licensed under the BSD 3-Clause License.
2
 
3
  from collections import OrderedDict
4
 
 
1
+ # Copyright (c) 2025 Ye Liu. Licensed under the BSD-3-Clause License.
2
 
3
  from collections import OrderedDict
4
 
videomind/dataset/sub_classes/ego4d_nlq.py CHANGED
@@ -1,4 +1,4 @@
1
- # Copyright (c) Ye Liu. Licensed under the BSD 3-Clause License.
2
 
3
  import nncore
4
 
 
1
+ # Copyright (c) 2025 Ye Liu. Licensed under the BSD-3-Clause License.
2
 
3
  import nncore
4
 
videomind/dataset/sub_classes/ego_timeqa.py CHANGED
@@ -1,4 +1,4 @@
1
- # Copyright (c) Ye Liu. Licensed under the BSD 3-Clause License.
2
 
3
  import random
4
 
 
1
+ # Copyright (c) 2025 Ye Liu. Licensed under the BSD-3-Clause License.
2
 
3
  import random
4
 
videomind/dataset/sub_classes/hirest.py CHANGED
@@ -1,4 +1,4 @@
1
- # Copyright (c) Ye Liu. Licensed under the BSD 3-Clause License.
2
 
3
  from collections import OrderedDict
4
 
 
1
+ # Copyright (c) 2025 Ye Liu. Licensed under the BSD-3-Clause License.
2
 
3
  from collections import OrderedDict
4
 
videomind/dataset/sub_classes/internvit_vtime.py CHANGED
@@ -1,4 +1,4 @@
1
- # Copyright (c) Ye Liu. Licensed under the BSD 3-Clause License.
2
 
3
  import nncore
4
 
 
1
+ # Copyright (c) 2025 Ye Liu. Licensed under the BSD-3-Clause License.
2
 
3
  import nncore
4
 
videomind/dataset/sub_classes/longvideobench.py CHANGED
@@ -1,4 +1,4 @@
1
- # Copyright (c) Ye Liu. Licensed under the BSD 3-Clause License.
2
 
3
  import nncore
4
  from torch.utils.data import Dataset
 
1
+ # Copyright (c) 2025 Ye Liu. Licensed under the BSD-3-Clause License.
2
 
3
  import nncore
4
  from torch.utils.data import Dataset
videomind/dataset/sub_classes/lvbench.py CHANGED
@@ -1,4 +1,4 @@
1
- # Copyright (c) Ye Liu. Licensed under the BSD 3-Clause License.
2
 
3
  import nncore
4
  from torch.utils.data import Dataset
 
1
+ # Copyright (c) 2025 Ye Liu. Licensed under the BSD-3-Clause License.
2
 
3
  import nncore
4
  from torch.utils.data import Dataset
videomind/dataset/sub_classes/mlvu.py CHANGED
@@ -1,4 +1,4 @@
1
- # Copyright (c) Ye Liu. Licensed under the BSD 3-Clause License.
2
 
3
  import nncore
4
  from torch.utils.data import Dataset
 
1
+ # Copyright (c) 2025 Ye Liu. Licensed under the BSD-3-Clause License.
2
 
3
  import nncore
4
  from torch.utils.data import Dataset
videomind/dataset/sub_classes/mvbench.py CHANGED
@@ -1,4 +1,4 @@
1
- # Copyright (c) Ye Liu. Licensed under the BSD 3-Clause License.
2
 
3
  import nncore
4
  from torch.utils.data import Dataset
 
1
+ # Copyright (c) 2025 Ye Liu. Licensed under the BSD-3-Clause License.
2
 
3
  import nncore
4
  from torch.utils.data import Dataset
videomind/dataset/sub_classes/nextgqa.py CHANGED
@@ -1,4 +1,4 @@
1
- # Copyright (c) Ye Liu. Licensed under the BSD 3-Clause License.
2
 
3
  import csv
4
 
 
1
+ # Copyright (c) 2025 Ye Liu. Licensed under the BSD-3-Clause License.
2
 
3
  import csv
4
 
videomind/dataset/sub_classes/nextqa.py CHANGED
@@ -1,4 +1,4 @@
1
- # Copyright (c) Ye Liu. Licensed under the BSD 3-Clause License.
2
 
3
  import csv
4
 
 
1
+ # Copyright (c) 2025 Ye Liu. Licensed under the BSD-3-Clause License.
2
 
3
  import csv
4
 
videomind/dataset/sub_classes/qa_ego4d.py CHANGED
@@ -1,4 +1,4 @@
1
- # Copyright (c) Ye Liu. Licensed under the BSD 3-Clause License.
2
 
3
  import random
4
 
 
1
+ # Copyright (c) 2025 Ye Liu. Licensed under the BSD-3-Clause License.
2
 
3
  import random
4
 
videomind/dataset/sub_classes/queryd.py CHANGED
@@ -1,4 +1,4 @@
1
- # Copyright (c) Ye Liu. Licensed under the BSD 3-Clause License.
2
 
3
  import nncore
4
 
 
1
+ # Copyright (c) 2025 Ye Liu. Licensed under the BSD-3-Clause License.
2
 
3
  import nncore
4
 
videomind/dataset/sub_classes/qvhighlights.py CHANGED
@@ -1,4 +1,4 @@
1
- # Copyright (c) Ye Liu. Licensed under the BSD 3-Clause License.
2
 
3
  import nncore
4
 
 
1
+ # Copyright (c) 2025 Ye Liu. Licensed under the BSD-3-Clause License.
2
 
3
  import nncore
4
 
videomind/dataset/sub_classes/rextime.py CHANGED
@@ -1,4 +1,4 @@
1
- # Copyright (c) Ye Liu. Licensed under the BSD 3-Clause License.
2
 
3
  import nncore
4
 
 
1
+ # Copyright (c) 2025 Ye Liu. Licensed under the BSD-3-Clause License.
2
 
3
  import nncore
4
 
videomind/dataset/sub_classes/star.py CHANGED
@@ -1,4 +1,4 @@
1
- # Copyright (c) Ye Liu. Licensed under the BSD 3-Clause License.
2
 
3
  import nncore
4
 
 
1
+ # Copyright (c) 2025 Ye Liu. Licensed under the BSD-3-Clause License.
2
 
3
  import nncore
4
 
videomind/dataset/sub_classes/tacos.py CHANGED
@@ -1,4 +1,4 @@
1
- # Copyright (c) Ye Liu. Licensed under the BSD 3-Clause License.
2
 
3
  import nncore
4
 
 
1
+ # Copyright (c) 2025 Ye Liu. Licensed under the BSD-3-Clause License.
2
 
3
  import nncore
4
 
videomind/dataset/sub_classes/vid_morp.py CHANGED
@@ -1,4 +1,4 @@
1
- # Copyright (c) Ye Liu. Licensed under the BSD 3-Clause License.
2
 
3
  import nncore
4
 
 
1
+ # Copyright (c) 2025 Ye Liu. Licensed under the BSD-3-Clause License.
2
 
3
  import nncore
4
 
videomind/dataset/sub_classes/videomme.py CHANGED
@@ -1,4 +1,4 @@
1
- # Copyright (c) Ye Liu. Licensed under the BSD 3-Clause License.
2
 
3
  import nncore
4
  from torch.utils.data import Dataset
 
1
+ # Copyright (c) 2025 Ye Liu. Licensed under the BSD-3-Clause License.
2
 
3
  import nncore
4
  from torch.utils.data import Dataset
videomind/dataset/sub_classes/videoxum.py CHANGED
@@ -1,4 +1,4 @@
1
- # Copyright (c) Ye Liu. Licensed under the BSD 3-Clause License.
2
 
3
  import nncore
4
 
 
1
+ # Copyright (c) 2025 Ye Liu. Licensed under the BSD-3-Clause License.
2
 
3
  import nncore
4
 
videomind/dataset/sub_classes/youcook2.py CHANGED
@@ -1,4 +1,4 @@
1
- # Copyright (c) Ye Liu. Licensed under the BSD 3-Clause License.
2
 
3
  from collections import OrderedDict
4
 
 
1
+ # Copyright (c) 2025 Ye Liu. Licensed under the BSD-3-Clause License.
2
 
3
  from collections import OrderedDict
4
 
videomind/dataset/utils.py CHANGED
@@ -202,12 +202,9 @@ def _read_video_decord(ele: dict, ) -> torch.Tensor:
202
  # TODO: the actual total_frames shall be computed by e_frame - s_frame + 1
203
  # but it would affect verifier's performance when video_start and video_end get clamped
204
  # shall be fixed by using normalized timestamps instead of real time
205
- total_frames = min(max(1, round((e - s) * video_fps)), total_frames)
206
 
207
- if total_frames > FPS_MIN_FRAMES:
208
- nframes = smart_nframes(ele, total_frames=total_frames, video_fps=video_fps)
209
- else:
210
- nframes = total_frames
211
 
212
  # 2. generate frame ids
213
  idx = torch.linspace(s_frame, e_frame, nframes).round().long().tolist()
 
202
  # TODO: the actual total_frames shall be computed by e_frame - s_frame + 1
203
  # but it would affect verifier's performance when video_start and video_end get clamped
204
  # shall be fixed by using normalized timestamps instead of real time
205
+ total_frames = min(max(FPS_MIN_FRAMES, round((e - s) * video_fps)), total_frames)
206
 
207
+ nframes = smart_nframes(ele, total_frames=total_frames, video_fps=video_fps)
 
 
 
208
 
209
  # 2. generate frame ids
210
  idx = torch.linspace(s_frame, e_frame, nframes).round().long().tolist()
videomind/dataset/wrappers/answering.py CHANGED
@@ -1,4 +1,4 @@
1
- # Copyright (c) Ye Liu. Licensed under the BSD 3-Clause License.
2
 
3
  import copy
4
  import random
 
1
+ # Copyright (c) 2025 Ye Liu. Licensed under the BSD-3-Clause License.
2
 
3
  import copy
4
  import random
videomind/dataset/wrappers/grounding.py CHANGED
@@ -1,4 +1,4 @@
1
- # Copyright (c) Ye Liu. Licensed under the BSD 3-Clause License.
2
 
3
  import copy
4
 
 
1
+ # Copyright (c) 2025 Ye Liu. Licensed under the BSD-3-Clause License.
2
 
3
  import copy
4
 
videomind/dataset/wrappers/planning.py CHANGED
@@ -1,4 +1,4 @@
1
- # Copyright (c) Ye Liu. Licensed under the BSD 3-Clause License.
2
 
3
  import copy
4
 
 
1
+ # Copyright (c) 2025 Ye Liu. Licensed under the BSD-3-Clause License.
2
 
3
  import copy
4
 
videomind/dataset/wrappers/verifying.py CHANGED
@@ -1,4 +1,4 @@
1
- # Copyright (c) Ye Liu. Licensed under the BSD 3-Clause License.
2
 
3
  import copy
4
 
 
1
+ # Copyright (c) 2025 Ye Liu. Licensed under the BSD-3-Clause License.
2
 
3
  import copy
4
 
videomind/eval/eval_auto.py CHANGED
@@ -1,4 +1,4 @@
1
- # Copyright (c) Ye Liu. Licensed under the BSD 3-Clause License.
2
 
3
  import argparse
4
 
 
1
+ # Copyright (c) 2025 Ye Liu. Licensed under the BSD-3-Clause License.
2
 
3
  import argparse
4
 
videomind/eval/infer_auto.py CHANGED
@@ -1,4 +1,4 @@
1
- # Copyright (c) Ye Liu. Licensed under the BSD 3-Clause License.
2
 
3
  import argparse
4
  import copy
 
1
+ # Copyright (c) 2025 Ye Liu. Licensed under the BSD-3-Clause License.
2
 
3
  import argparse
4
  import copy
videomind/eval/infer_qvhighlights.py CHANGED
@@ -1,4 +1,4 @@
1
- # Copyright (c) Ye Liu. Licensed under the BSD 3-Clause License.
2
 
3
  import argparse
4
  import copy
 
1
+ # Copyright (c) 2025 Ye Liu. Licensed under the BSD-3-Clause License.
2
 
3
  import argparse
4
  import copy
videomind/model/blocks.py CHANGED
@@ -1,4 +1,4 @@
1
- # Copyright (c) Ye Liu. Licensed under the BSD 3-Clause License.
2
 
3
  import math
4
 
 
1
+ # Copyright (c) 2025 Ye Liu. Licensed under the BSD-3-Clause License.
2
 
3
  import math
4
 
videomind/model/builder.py CHANGED
@@ -1,4 +1,4 @@
1
- # Copyright (c) Ye Liu. Licensed under the BSD 3-Clause License.
2
 
3
  import warnings
4
 
 
1
+ # Copyright (c) 2025 Ye Liu. Licensed under the BSD-3-Clause License.
2
 
3
  import warnings
4
 
videomind/model/generator.py CHANGED
@@ -1,4 +1,4 @@
1
- # Copyright (c) Ye Liu. Licensed under the BSD 3-Clause License.
2
 
3
  import torch
4
  import torch.nn as nn
 
1
+ # Copyright (c) 2025 Ye Liu. Licensed under the BSD-3-Clause License.
2
 
3
  import torch
4
  import torch.nn as nn
videomind/model/loss.py CHANGED
@@ -1,4 +1,4 @@
1
- # Copyright (c) Ye Liu. Licensed under the BSD 3-Clause License.
2
 
3
  import math
4
  import warnings
 
1
+ # Copyright (c) 2025 Ye Liu. Licensed under the BSD-3-Clause License.
2
 
3
  import math
4
  import warnings
videomind/model/model.py CHANGED
@@ -1,4 +1,4 @@
1
- # Copyright (c) Ye Liu. Licensed under the BSD 3-Clause License.
2
 
3
  import warnings
4
 
 
1
+ # Copyright (c) 2025 Ye Liu. Licensed under the BSD-3-Clause License.
2
 
3
  import warnings
4
 
videomind/train/custom_trainer.py CHANGED
@@ -1,4 +1,4 @@
1
- # Copyright (c) Ye Liu. Licensed under the BSD 3-Clause License.
2
 
3
  import warnings
4
 
 
1
+ # Copyright (c) 2025 Ye Liu. Licensed under the BSD-3-Clause License.
2
 
3
  import warnings
4
 
videomind/train/train.py CHANGED
@@ -1,4 +1,4 @@
1
- # Copyright (c) Ye Liu. Licensed under the BSD 3-Clause License.
2
 
3
  from dataclasses import dataclass, field
4
  from typing import Optional
 
1
+ # Copyright (c) 2025 Ye Liu. Licensed under the BSD-3-Clause License.
2
 
3
  from dataclasses import dataclass, field
4
  from typing import Optional
videomind/utils/io.py CHANGED
@@ -1,4 +1,4 @@
1
- # Copyright (c) Ye Liu. Licensed under the BSD 3-Clause License.
2
 
3
  import pysrt
4
  from decord import VideoReader
 
1
+ # Copyright (c) 2025 Ye Liu. Licensed under the BSD-3-Clause License.
2
 
3
  import pysrt
4
  from decord import VideoReader
videomind/utils/parser.py CHANGED
@@ -1,4 +1,4 @@
1
- # Copyright (c) Ye Liu. Licensed under the BSD 3-Clause License.
2
 
3
  import re
4
 
 
1
+ # Copyright (c) 2025 Ye Liu. Licensed under the BSD-3-Clause License.
2
 
3
  import re
4