media-agent-mcp 0.4.7__tar.gz → 0.4.9__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (27) hide show
  1. {media_agent_mcp-0.4.7 → media_agent_mcp-0.4.9}/PKG-INFO +1 -1
  2. {media_agent_mcp-0.4.7 → media_agent_mcp-0.4.9}/pyproject.toml +1 -1
  3. {media_agent_mcp-0.4.7 → media_agent_mcp-0.4.9}/src/media_agent_mcp/video/processor.py +24 -11
  4. {media_agent_mcp-0.4.7 → media_agent_mcp-0.4.9}/src/media_agent_mcp.egg-info/PKG-INFO +1 -1
  5. {media_agent_mcp-0.4.7 → media_agent_mcp-0.4.9}/README.md +0 -0
  6. {media_agent_mcp-0.4.7 → media_agent_mcp-0.4.9}/setup.cfg +0 -0
  7. {media_agent_mcp-0.4.7 → media_agent_mcp-0.4.9}/src/media_agent_mcp/__init__.py +0 -0
  8. {media_agent_mcp-0.4.7 → media_agent_mcp-0.4.9}/src/media_agent_mcp/ai_models/__init__.py +0 -0
  9. {media_agent_mcp-0.4.7 → media_agent_mcp-0.4.9}/src/media_agent_mcp/ai_models/openaiedit.py +0 -0
  10. {media_agent_mcp-0.4.7 → media_agent_mcp-0.4.9}/src/media_agent_mcp/ai_models/seed16.py +0 -0
  11. {media_agent_mcp-0.4.7 → media_agent_mcp-0.4.9}/src/media_agent_mcp/ai_models/seedance.py +0 -0
  12. {media_agent_mcp-0.4.7 → media_agent_mcp-0.4.9}/src/media_agent_mcp/ai_models/seededit.py +0 -0
  13. {media_agent_mcp-0.4.7 → media_agent_mcp-0.4.9}/src/media_agent_mcp/ai_models/seedream.py +0 -0
  14. {media_agent_mcp-0.4.7 → media_agent_mcp-0.4.9}/src/media_agent_mcp/async_server.py +0 -0
  15. {media_agent_mcp-0.4.7 → media_agent_mcp-0.4.9}/src/media_agent_mcp/async_wrapper.py +0 -0
  16. {media_agent_mcp-0.4.7 → media_agent_mcp-0.4.9}/src/media_agent_mcp/media_selectors/__init__.py +0 -0
  17. {media_agent_mcp-0.4.7 → media_agent_mcp-0.4.9}/src/media_agent_mcp/media_selectors/image_selector.py +0 -0
  18. {media_agent_mcp-0.4.7 → media_agent_mcp-0.4.9}/src/media_agent_mcp/media_selectors/video_selector.py +0 -0
  19. {media_agent_mcp-0.4.7 → media_agent_mcp-0.4.9}/src/media_agent_mcp/server.py +0 -0
  20. {media_agent_mcp-0.4.7 → media_agent_mcp-0.4.9}/src/media_agent_mcp/storage/__init__.py +0 -0
  21. {media_agent_mcp-0.4.7 → media_agent_mcp-0.4.9}/src/media_agent_mcp/storage/tos_client.py +0 -0
  22. {media_agent_mcp-0.4.7 → media_agent_mcp-0.4.9}/src/media_agent_mcp/video/__init__.py +0 -0
  23. {media_agent_mcp-0.4.7 → media_agent_mcp-0.4.9}/src/media_agent_mcp.egg-info/SOURCES.txt +0 -0
  24. {media_agent_mcp-0.4.7 → media_agent_mcp-0.4.9}/src/media_agent_mcp.egg-info/dependency_links.txt +0 -0
  25. {media_agent_mcp-0.4.7 → media_agent_mcp-0.4.9}/src/media_agent_mcp.egg-info/entry_points.txt +0 -0
  26. {media_agent_mcp-0.4.7 → media_agent_mcp-0.4.9}/src/media_agent_mcp.egg-info/requires.txt +0 -0
  27. {media_agent_mcp-0.4.7 → media_agent_mcp-0.4.9}/src/media_agent_mcp.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: media-agent-mcp
3
- Version: 0.4.7
3
+ Version: 0.4.9
4
4
  Summary: A Model Context Protocol server for media processing with AI tools
5
5
  Author-email: Media Agent Team <team@mediaagent.com>
6
6
  Keywords: mcp,ai,media,video,image,processing
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "media-agent-mcp"
3
- version = "0.4.7"
3
+ version = "0.4.9"
4
4
  description = "A Model Context Protocol server for media processing with AI tools"
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.12"
@@ -8,6 +8,7 @@ import json
8
8
  import logging
9
9
  import os
10
10
  import tempfile
11
+ import time
11
12
  import uuid
12
13
  from typing import Optional, Dict, Any
13
14
  from urllib.parse import urlparse
@@ -87,7 +88,7 @@ def concat_videos(video_urls: list, output_path: Optional[str] = None) -> Dict[s
87
88
  }
88
89
 
89
90
  if not output_path:
90
- output_path = f"concatenated_{int(asyncio.get_event_loop().time())}.mp4"
91
+ output_path = f"concatenated_{int(time.time())}.mp4"
91
92
 
92
93
  # Download videos if they are URLs and prepare local paths
93
94
  video_paths = []
@@ -121,25 +122,37 @@ def concat_videos(video_urls: list, output_path: Optional[str] = None) -> Dict[s
121
122
 
122
123
  # Get video properties from the first video
123
124
  first_cap = video_captures[0]
124
- fps = int(first_cap.get(cv2.CAP_PROP_FPS))
125
+ fps = first_cap.get(cv2.CAP_PROP_FPS)
126
+ if fps <= 0:
127
+ logger.warning("Invalid FPS detected, setting to 30.")
128
+ fps = 30
129
+ else:
130
+ fps = int(fps)
125
131
  width = int(first_cap.get(cv2.CAP_PROP_FRAME_WIDTH))
126
132
  height = int(first_cap.get(cv2.CAP_PROP_FRAME_HEIGHT))
127
-
133
+
128
134
  # Create video writer with H.264 codec for better compatibility
129
- fourcc = cv2.VideoWriter_fourcc(*'avc1') # H.264 codec
135
+ logger.info("Initializing video writer with 'avc1' (H.264) codec.")
136
+ fourcc = cv2.VideoWriter_fourcc(*'avc1')
130
137
  out = cv2.VideoWriter(output_path, fourcc, fps, (width, height))
131
-
138
+
132
139
  # Check if video writer was initialized successfully
133
140
  if not out.isOpened():
134
- # Fallback to mp4v if avc1 fails
141
+ logger.warning("Failed to initialize video writer with 'avc1' codec. Falling back to 'mp4v'.")
135
142
  fourcc = cv2.VideoWriter_fourcc(*'mp4v')
136
143
  out = cv2.VideoWriter(output_path, fourcc, fps, (width, height))
137
144
  if not out.isOpened():
138
- return {
139
- "status": "error",
140
- "data": None,
141
- "message": "Could not initialize video writer"
142
- }
145
+ logger.warning("Failed to initialize video writer with 'mp4v' codec. Falling back to 'XVID'.")
146
+ fourcc = cv2.VideoWriter_fourcc(*'XVID')
147
+ out = cv2.VideoWriter(output_path, fourcc, fps, (width, height))
148
+ if not out.isOpened():
149
+ logger.error("Failed to initialize video writer with 'avc1', 'mp4v', or 'XVID' codecs.")
150
+ return {
151
+ "status": "error",
152
+ "data": None,
153
+ "message": "Could not initialize video writer with any of the supported codecs."
154
+ }
155
+ logger.info("Video writer initialized successfully.")
143
156
 
144
157
  # Write frames from all videos in order
145
158
  for i, cap in enumerate(video_captures):
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: media-agent-mcp
3
- Version: 0.4.7
3
+ Version: 0.4.9
4
4
  Summary: A Model Context Protocol server for media processing with AI tools
5
5
  Author-email: Media Agent Team <team@mediaagent.com>
6
6
  Keywords: mcp,ai,media,video,image,processing