media-downloader 1.0.5__py2.py3-none-any.whl → 1.0.7__py2.py3-none-any.whl
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.
Potentially problematic release.
This version of media-downloader might be problematic. Click here for more details.
- media_downloader/media_downloader_mcp.py +23 -2
- {media_downloader-1.0.5.dist-info → media_downloader-1.0.7.dist-info}/METADATA +7 -2
- media_downloader-1.0.7.dist-info/RECORD +10 -0
- media_downloader-1.0.5.dist-info/RECORD +0 -10
- {media_downloader-1.0.5.dist-info → media_downloader-1.0.7.dist-info}/LICENSE +0 -0
- {media_downloader-1.0.5.dist-info → media_downloader-1.0.7.dist-info}/WHEEL +0 -0
- {media_downloader-1.0.5.dist-info → media_downloader-1.0.7.dist-info}/entry_points.txt +0 -0
- {media_downloader-1.0.5.dist-info → media_downloader-1.0.7.dist-info}/top_level.txt +0 -0
|
@@ -13,12 +13,33 @@ setup_logging(is_mcp_server=True, log_file="media_downloader_mcp.log")
|
|
|
13
13
|
|
|
14
14
|
mcp = FastMCP(name="MediaDownloaderServer")
|
|
15
15
|
|
|
16
|
+
def to_boolean(string):
|
|
17
|
+
# Normalize the string: strip whitespace and convert to lowercase
|
|
18
|
+
normalized = str(string).strip().lower()
|
|
19
|
+
|
|
20
|
+
# Define valid true/false values
|
|
21
|
+
true_values = {'t', 'true', 'y', 'yes', '1'}
|
|
22
|
+
false_values = {'f', 'false', 'n', 'no', '0'}
|
|
23
|
+
|
|
24
|
+
if normalized in true_values:
|
|
25
|
+
return True
|
|
26
|
+
elif normalized in false_values:
|
|
27
|
+
return False
|
|
28
|
+
else:
|
|
29
|
+
raise ValueError(f"Cannot convert '{string}' to boolean")
|
|
30
|
+
|
|
31
|
+
environment_download_directory = os.environ.get("DOWNLOAD_DIRECTORY", None)
|
|
32
|
+
environment_audio_only = os.environ.get("AUDIO_ONLY", False)
|
|
33
|
+
|
|
34
|
+
if environment_audio_only:
|
|
35
|
+
environment_audio_only = to_boolean(environment_audio_only)
|
|
36
|
+
|
|
16
37
|
|
|
17
38
|
@mcp.tool()
|
|
18
39
|
async def download_media(
|
|
19
40
|
video_url: str,
|
|
20
|
-
download_directory: Optional[str] =
|
|
21
|
-
audio_only: Optional[bool] =
|
|
41
|
+
download_directory: Optional[str] = environment_download_directory,
|
|
42
|
+
audio_only: Optional[bool] = environment_audio_only,
|
|
22
43
|
ctx: Context = None,
|
|
23
44
|
) -> str:
|
|
24
45
|
"""Downloads media from a given URL to the specified directory.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: media-downloader
|
|
3
|
-
Version: 1.0.
|
|
3
|
+
Version: 1.0.7
|
|
4
4
|
Summary: Download audio/videos from the internet!
|
|
5
5
|
Home-page: https://github.com/Knuckles-Team/media-downloader
|
|
6
6
|
Author: Audel Rouhi
|
|
@@ -157,7 +157,12 @@ Configure `mcp.json`
|
|
|
157
157
|
{
|
|
158
158
|
"mcpServers": {
|
|
159
159
|
"media_downloader": {
|
|
160
|
-
"command": "media-downloader-mcp"
|
|
160
|
+
"command": "media-downloader-mcp",
|
|
161
|
+
"env": {
|
|
162
|
+
"DOWNLOAD_DIRECTORY": "~/Downloads", // Optional - Can be specified at prompt
|
|
163
|
+
"AUDIO_ONLY": false // Optional - Can be specified at prompt
|
|
164
|
+
},
|
|
165
|
+
"timeout": 300000
|
|
161
166
|
}
|
|
162
167
|
}
|
|
163
168
|
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
media_downloader/__init__.py,sha256=DeL-CAOq74dlTyRmIVlUAc3IaJuJduBOViK2k67vWj4,309
|
|
2
|
+
media_downloader/__main__.py,sha256=aHajZBE7fyiC7E5qjV5LMe9nCPkQV2YKu6FU8Ubkdm4,112
|
|
3
|
+
media_downloader/media_downloader.py,sha256=fK8CWskZQQTTZ91YnD7gJafvk5fZGp9oOOJYJy5Fwfo,8876
|
|
4
|
+
media_downloader/media_downloader_mcp.py,sha256=T5yL6IG6yaOfaGI7mvWJ0Fnod3g1xueVpl_cy8qAl7Q,4888
|
|
5
|
+
media_downloader-1.0.7.dist-info/LICENSE,sha256=Z1xmcrPHBnGCETO_LLQJUeaSNBSnuptcDVTt4kaPUOE,1060
|
|
6
|
+
media_downloader-1.0.7.dist-info/METADATA,sha256=ldgQxxbFo8zz5N2joiCqLF1zvLQbFVRJkF6OjLxE8gI,6238
|
|
7
|
+
media_downloader-1.0.7.dist-info/WHEEL,sha256=bb2Ot9scclHKMOLDEHY6B2sicWOgugjFKaJsT7vwMQo,110
|
|
8
|
+
media_downloader-1.0.7.dist-info/entry_points.txt,sha256=Hjp1vLkHPq_bABsuh4kpL5nddi1wn9Ftota-72_GgW4,142
|
|
9
|
+
media_downloader-1.0.7.dist-info/top_level.txt,sha256=B2OBmgONOm0hIyx2HJ8qFPOI_p5HOeolrYvmslVC1fc,17
|
|
10
|
+
media_downloader-1.0.7.dist-info/RECORD,,
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
media_downloader/__init__.py,sha256=DeL-CAOq74dlTyRmIVlUAc3IaJuJduBOViK2k67vWj4,309
|
|
2
|
-
media_downloader/__main__.py,sha256=aHajZBE7fyiC7E5qjV5LMe9nCPkQV2YKu6FU8Ubkdm4,112
|
|
3
|
-
media_downloader/media_downloader.py,sha256=fK8CWskZQQTTZ91YnD7gJafvk5fZGp9oOOJYJy5Fwfo,8876
|
|
4
|
-
media_downloader/media_downloader_mcp.py,sha256=Cl_Twvd7WCE2yqxM5ios5E5sHu1yQFjViHS3uDmO9bA,4149
|
|
5
|
-
media_downloader-1.0.5.dist-info/LICENSE,sha256=Z1xmcrPHBnGCETO_LLQJUeaSNBSnuptcDVTt4kaPUOE,1060
|
|
6
|
-
media_downloader-1.0.5.dist-info/METADATA,sha256=m1EzIf9N4_s_e6K7h4bLG0qfLsZYaHpHbTlK7hv_IEc,6034
|
|
7
|
-
media_downloader-1.0.5.dist-info/WHEEL,sha256=bb2Ot9scclHKMOLDEHY6B2sicWOgugjFKaJsT7vwMQo,110
|
|
8
|
-
media_downloader-1.0.5.dist-info/entry_points.txt,sha256=Hjp1vLkHPq_bABsuh4kpL5nddi1wn9Ftota-72_GgW4,142
|
|
9
|
-
media_downloader-1.0.5.dist-info/top_level.txt,sha256=B2OBmgONOm0hIyx2HJ8qFPOI_p5HOeolrYvmslVC1fc,17
|
|
10
|
-
media_downloader-1.0.5.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|