← Plugin catalog
Productivity
Media2URL
Media2URL v0.1.1
Publisher description
From the marketplace listing
Publish ChatGPT-created files, images, video, audio, PDFs, and HTML through Media2URL. Sign in to a connected Media2URL account before uploading or updating content. Free accounts include 90 uploads per month (roughly 3 per day); paid plans unlock larger quotas and advanced controls. Choose direct file URLs for code and embeds, share pages for people, or managed updates that preserve existing URLs.
Language: English · Automatically detected from descriptions.
Publisher keywords
Search terms declared by the publisher.
media hostingListing · Package
direct URLListing · Package
share linksListing · Package
HTML to URLListing · Package
Link DoctorListing · Package
Files & skills
File archives
Plugin package22 files · 769 KBBrowse files →
Skill instructions
batch-publish2.63 KB
--- name: batch-publish description: Use when someone explicitly asks to publish several files or prepare multiple hosted assets together. --- # Batch Publish ## Purpose Publish several authorized assets while keeping deterministic input ordering and an honest per-item result map. Batch publication is a workflow, not permission to bypass limits or validation. ## Trigger examples - “Host these ten screenshots.” - “Give me URLs for all these images.” - “Create a Markdown gallery from these files.” - “Publish this folder of assets in filename order.” ## Do not trigger - The user mentions several files but does not ask to host, publish, or link them. - The App cannot receive the binary bytes or identify authorized library assets. - The user asks for a bulk action that would silently replace or delete existing assets. ## Allowed Media2URL App actions - Use repeated `publish_content` calls or the App’s approved multi-file upload flow. - Use `get_asset_links` for confirmed output URLs. - Use `search_assets` only when the user explicitly refers to existing library assets. ## Result interpretation Preserve input order and map each result to its original filename or logical identifier. Return direct URLs for code and embed output, share pages for human sharing, and structured Markdown/HTML/CSS/JSON only from confirmed results. ## Missing authorization Require a Media2URL account connection before the first storage action. Do not offer anonymous ChatGPT uploads, presigned destinations, or a batch result before the App confirms each publication. ## Plan or quota restriction Free accounts are capped at 90 uploads per month, roughly 3 per day. Explain `BATCH_REQUIRES_PLAN`, `FREE_QUOTA_EXHAUSTED`, `FILE_SIZE_REQUIRES_PLAN`, or the App’s actual entitlement error. A paid plan unlocks larger quotas and batch controls. Do not silently publish only some items or downgrade a batch into unrelated individual behavior without telling the user. ## Partial failure Report successful and failed items separately, preserving input order and source names. A failed item must not receive another item’s URL, and the batch must not be described as fully successful. Do not retry indefinitely. ## Privacy and destructive actions Every item must pass the App’s workspace, file, abuse, and plan checks. Batch publication does not authorize private-asset exposure, third-party importing, replacement, rollback, or deletion; those are separate actions. ## Natural-language examples “Three files were published and two were rejected by Media2URL. I’ll return the three confirmed URLs in the original order and list the two failures separately.”
developer-asset-pack2.81 KB
--- name: developer-asset-pack description: Use when someone needs several hosted assets prepared for code, documentation, a README, or a website. --- # Developer Asset Pack ## Purpose Combine ordered Media2URL publication with ChatGPT’s ability to format structured results for developers. The useful output is a deterministic mapping from each input asset to the requested Markdown, HTML, CSS, JSON, or README representation. ## Trigger examples - “Host these screenshots and prepare my GitHub README.” - “Give me HTML for these product images.” - “Publish these files and return JSON.” - “Prepare the assets for my website.” ## Do not trigger - Only one file is mentioned without a hosting or formatting request. - The user wants a complete website or application built rather than hosted assets. - The asset bytes or authorized library records are unavailable. ## Allowed Media2URL App actions - Use `publish_content` or the App’s approved upload flow for each supported asset. - Use `get_asset_links` for confirmed direct/share URLs and supported output formats. - Use narrow `search_assets` or `list_recent_assets` calls when the user refers to existing library assets. ## Result interpretation Keep deterministic input ordering. Map every result to its original filename or logical identifier before producing Markdown, HTML, CSS, JSON, or README content. Prefer direct URLs for code and embed consumers, and use share URLs for human-facing links. Return partial results honestly when the App does not publish every item. ## Missing authorization Require Media2URL account connection before any storage, publication, or private-library lookup. Do not assume ChatGPT attachments provide binary bytes to the App and do not fabricate a hosted result. ## Plan or quota restriction Free accounts are capped at 90 uploads per month, roughly 3 per day. Explain the returned plan or quota error, especially for batch publication, large files, persistent hosting, or advanced library search. A paid plan unlocks larger quotas and developer-oriented controls; do not silently publish only a weaker subset unless the user agrees to that change. ## Partial failure Report successes and failures per input item, keeping filenames and captions matched. A failed item must not receive a copied URL from another item, and the batch must not be labelled fully successful. ## Privacy and destructive actions Use only assets the connected account/workspace can access. A developer pack does not authorize publication of private assets, remote third-party copying, replacement, or deletion; those actions require explicit intent and the App’s checks. ## Natural-language examples “I’ll preserve the input order, publish each confirmed asset, and return a README block with the direct URLs. Any failed publication will stay marked as failed.”
get-right-link2.79 KB
--- name: get-right-link description: Use when someone asks for a Media2URL link, embed, or URL format and the correct direct URL versus share page matters. --- # Get the Right Link ## Purpose Choose the link format that matches the user’s destination. A direct URL returns the media/file response expected by code, while a share page is designed for a person viewing or sharing the asset. ## Trigger examples - “Give me the image URL for an `img` tag.” - “I need a link to send to a client.” - “Make Markdown for this asset.” - “Give me a CSS `url(...)` value.” ## Do not trigger - The user has not asked for a link, embed, or hosted asset. - The requested asset is not identified or accessible. - A private asset would need to be exposed to answer the request. ## Allowed Media2URL App actions - Use `get_asset` for safe metadata on an identified authorized asset. - Use `get_asset_links` for the direct URL, share URL, expiration, and supported output formats. - Use a publish action only when the user explicitly asks to publish content that is not already hosted. ## Result interpretation Use the direct URL for HTML image sources, CSS, APIs, Open Graph, programmatic fetches, and Markdown image destinations when the asset’s access rules permit it. Use the share page for human viewing or controlled sharing. Keep `files.media2url.com/...` direct media URLs distinct from `media2url.com/m/...` share pages; they are not interchangeable. Format returned structured values as valid Markdown, HTML, CSS, or escaped JSON without changing the URL. ## Missing authorization Ask the user to complete the Media2URL account connection when the App requires account access. Do not expose a private direct URL or claim that a public-looking URL grants access to a private asset. ## Plan or quota restriction For write-capable workflows, Free accounts are capped at 90 uploads per month, roughly 3 per day. Report the App’s actual restriction. A paid plan can unlock larger quotas and delivery controls; do not replace an unavailable direct delivery mode with a share page without explaining the difference, and do not promise an output format the asset or plan does not support. ## Partial failure For several assets, preserve source order and label missing link results by filename or asset ID. Return only links confirmed by the App. ## Privacy and destructive actions Link lookup is read-only, but it still requires workspace authorization. Never publish a private asset merely because someone asks to “show” it, and never use a public URL as authorization to delete or modify an asset. ## Natural-language examples “For your API, use the confirmed direct URL. The share page is a different URL intended for a person to open in a browser, so I’ll include it separately if you also need a human-facing link.”
link-doctor2.79 KB
--- name: link-doctor description: Use when someone asks why a media URL fails, redirects, opens a webpage, or cannot be used in code. --- # Link Doctor ## Purpose Explain a URL problem from safe diagnostic facts returned by Media2URL. Focus on status, redirects, response type, disposition, expiry, and whether the response is directly embeddable. ## Trigger examples - “Why does this image URL open a webpage?” - “Is this a direct link?” - “Why won’t this image work in my API?” - “Can I use this URL in an `img` tag?” ## Do not trigger - The user has not supplied a URL or asked for a diagnosis. - The request requires downloading or copying a third-party asset rather than inspecting it. - The user asks to bypass a login, paywall, robots rule, access restriction, or expiry. ## Allowed Media2URL App actions - Use `diagnose_url` for safe HTTP status, redirect, content type, content disposition, reachability, and wrapper facts. - Use `get_asset_links` when the user asks for confirmed Media2URL direct/share alternatives. - Use an import action only after the user explicitly requests it and the App confirms rights and safety checks. ## Result interpretation Explain only returned facts. A `text/html` response may be a share/viewer page rather than a direct image response; a redirect chain may change the final content type; an expired or access-protected result may not be usable by the requesting consumer. Never guess network results, and do not execute remote HTML or JavaScript. ## Missing authorization Basic zero-storage diagnosis may be available without account connection if the App permits it. Account connection is required before importing, copying, or changing any hosted content. Do not pretend a diagnostic result authorizes an import. ## Plan or quota restriction For write-capable follow-up actions, Free accounts are capped at 90 uploads per month, roughly 3 per day. Explain the App’s actual diagnostic limit or `UPGRADE_REQUIRED` result. A paid plan can unlock larger quotas and extended diagnostics. Do not claim that an extended scan, body fetch, or import occurred when the App denied it. ## Partial failure For several URLs, report each result separately and identify timeouts, blocked destinations, redirects that could not be safely followed, and unsupported responses. Do not label the batch healthy because one URL worked. ## Privacy and destructive actions Do not expose private response data or use diagnostics to discover internal services. A pasted URL does not prove ownership, and diagnosis never authorizes deletion or modification. ## Natural-language examples “The diagnostic response is HTML after a redirect, so it is not a direct image response for your API. I can give you a confirmed Media2URL direct URL only if the asset is authorized and available there.”
media-library-reuse2.47 KB
--- name: media-library-reuse description: Use when someone asks to find, reuse, or retrieve a file already stored in their Media2URL library. --- # Media Library Reuse ## Purpose Find a small, relevant set of authorized Media2URL assets so the user can reuse an existing file instead of publishing another copy. ## Trigger examples - “Use my company logo.” - “Find the screenshot I uploaded yesterday.” - “Give me the URL for product-demo.mp4.” - “Use my latest hero image.” ## Do not trigger - The user has not referred to an existing Media2URL asset or library. - The request is to publish newly generated content. - The result would require exposing another account’s or workspace’s private asset. ## Allowed Media2URL App actions - Use narrow `search_assets` calls with the user’s query, media type, date, workspace, and small limit. - Use `list_recent_assets` for “latest” or “uploaded yesterday” requests. - Use `get_asset` and `get_asset_links` after the user selects or clearly identifies one result. ## Result interpretation Return a small ranked set with filenames, media type, and safe identifiers or links as permitted. Ask the user to choose when several assets are plausible. Prefer the direct URL for code and the share page for people, according to the user’s destination. ## Missing authorization Require a Media2URL account connection for library access. Resolve the active authorized workspace through the App; do not accept a user-supplied workspace ID or public URL as sufficient authorization. ## Plan or quota restriction Free accounts are capped at 90 uploads per month, roughly 3 per day. Explain when only recent/basic search is available or when full library search requires a paid plan. Do not dump the entire library or silently search outside the available scope. ## Partial failure If a search or link lookup returns incomplete results, say which result was confirmed and which could not be retrieved. Preserve filenames and identifiers so one asset’s URL cannot be assigned to another. ## Privacy and destructive actions Searching is read-only but still private. Never publish an asset merely because the user asks ChatGPT to show or use it, and never delete, replace, or change access without separate explicit intent and App authorization. ## Natural-language examples “I found two recent logo files in your authorized library. Tell me which one you mean, and I’ll return the direct URL separately from the human-facing share page.”
publish-this2.89 KB
--- name: publish-this description: Use when someone explicitly asks to publish, host, or put ChatGPT-created content online through Media2URL. --- # Publish This ## Purpose Turn an explicit request to publish ChatGPT-created content into a safe Media2URL App action. The goal is a usable result: a live HTML page when a webpage is requested, or structured asset links for supported files and text. ## Trigger examples - “Publish this HTML and give me a live URL.” - “Host this SVG.” - “Put this JSON somewhere I can fetch it.” - “Turn this image into a URL.” ## Do not trigger - A file or image is merely mentioned or attached. - The user asks to explain, edit, summarize, or preview content only. - The user asks to show a private asset without asking for publication. ## Allowed Media2URL App actions - Use `publish_content` for supported generated HTML, SVG, Markdown, JSON, plain text, and other App-approved textual content. - Use the App’s approved upload UI for binary/local media when the App can receive the bytes. - Use the App’s HTML publication path when the user wants a live webpage rather than a downloadable HTML file. ## Result interpretation Send the returned public URL first, then useful metadata such as content type, asset/project ID, version, and actual expiration. A successful result must come from the connected Media2URL App; never infer success from a tool call that returned no confirmation. Do not claim to have the actual binary content when the App did not receive its bytes. ## Missing authorization Before the first storage or publishing action, require account connection through the App. Explain that the user can connect Media2URL, then retry. Do not offer anonymous ChatGPT storage, a presigned destination, or a fabricated URL. ## Plan or quota restriction Free accounts are capped at 90 uploads per month, roughly 3 per day. Explain the App’s structured reason, such as `UPGRADE_REQUIRED`, `FREE_QUOTA_EXHAUSTED`, `FILE_SIZE_REQUIRES_PLAN`, or `PERSISTENT_HOSTING_REQUIRES_PLAN`. A paid plan unlocks larger quotas and advanced controls; do not silently downgrade a request for persistent hosting, a large file, or a restricted format to a weaker publication. ## Partial failure For multiple inputs, identify each successful result by its original filename or logical name and list failed items separately. Do not describe the whole request as successful when one publication failed. ## Privacy and destructive actions Respect the asset’s visibility and workspace authorization. A publish request is not permission to expose unrelated private assets. Publishing is a write action; deletion, replacement, or importing third-party content needs its own explicit intent and App authorization. ## Natural-language examples “I can publish this as a live HTML page. Connect your Media2URL account first, then I’ll return the confirmed page URL and its actual retention period.”
temporary-secure-share2.6 KB
--- name: temporary-secure-share description: Use when someone asks to share a Media2URL asset for a limited time or with a supported access restriction. --- # Temporary Secure Share ## Purpose Create or apply only the temporary sharing settings that Media2URL confirms for the asset, account, and workspace. A time limit is not automatically a password or download-control feature. ## Trigger examples - “Make this available for 24 hours.” - “Share this until tomorrow.” - “Let this file expire after the review.” - “Create a temporary link for this asset.” ## Do not trigger - The user only wants the ordinary direct URL or share page. - The requested asset is not identified or authorized. - The user asks for password protection, one-time viewing, or download limits without confirming that Media2URL supports it. ## Allowed Media2URL App actions - Use `create_temporary_link` with the exact asset ID and supported expiry. - Use `get_asset_links` to return the resulting link formats and actual expiration. - Use `get_asset` to confirm the asset’s current status and visibility. ## Result interpretation Report the expiration returned by the App, plus whether the link is temporary and which access controls are actually active. Do not call a link permanent, password-protected, one-time, or download-limited unless the structured result says so. ## Missing authorization Require a Media2URL account connection before changing sharing rules or accessing a private asset. Do not create anonymous hosted storage or use a public URL as proof that the requester owns the asset. ## Plan or quota restriction Free accounts are capped at 90 uploads per month, roughly 3 per day. Explain the App’s actual restriction, such as `CUSTOM_EXPIRY_REQUIRES_PLAN`, `FEATURE_REQUIRES_PLAN`, or `UPGRADE_REQUIRED`. A paid plan unlocks larger quotas and advanced sharing controls. If only a fixed supported free expiration is available, offer that exact alternative rather than inventing a custom date. ## Partial failure For several assets, report each confirmed temporary link and identify assets whose rule was not changed. Never reuse one asset’s expiration or URL for another item. ## Privacy and destructive actions Keep private and workspace-only assets within their existing authorization boundary. Changing access can affect recipients, and deletion is a separate destructive action that must not be bundled into temporary sharing. ## Natural-language examples “Media2URL confirmed this link will expire at the returned time. It did not confirm password protection, so I’m not describing the link as password-protected.”
update-live-version2.6 KB
--- name: update-live-version description: Use when someone asks to update, replace, or restore an already published Media2URL asset or HTML page. --- # Update the Live Version ## Purpose Change an identified managed asset or HTML project while preserving its existing public URL where Media2URL supports that workflow. Treat an update as different from creating a new asset. ## Trigger examples - “Update the live page with this new copy.” - “Replace the screenshot but keep the URL.” - “Publish this version instead.” - “Restore yesterday’s version.” ## Do not trigger - The user wants a second, unrelated upload. - No immutable asset/project identifier or confirmed library result exists. - The user only wants a link copied or content edited in the conversation. ## Allowed Media2URL App actions - Use `update_published_content` with the exact asset/project ID. - Use `replace_asset` for an authorized managed file replacement. - Use `rollback_version` only with an exact asset/project ID and version ID returned by the App. - Use the App upload UI for local binary replacement when it supports that flow. ## Result interpretation Confirm the same public URL, the new version identifier, the previous version when returned, and the updated timestamp. If the App reports that the operation creates a new asset or new URL, say so plainly; never represent a new asset as a preserved URL. ## Missing authorization Require a connected Media2URL App account before reading private library details or changing hosted content. Ask the App to resolve the current workspace and ownership; do not accept a public URL alone as proof of control. ## Plan or quota restriction Free accounts are capped at 90 uploads per month, roughly 3 per day. Explain errors such as `VERSIONING_REQUIRES_PLAN`, `FEATURE_REQUIRES_PLAN`, or `UPGRADE_REQUIRED`. A paid plan unlocks larger quotas and versioning controls; do not silently turn a request to preserve the URL into a new free upload. ## Partial failure If a replacement or publication fails after staging, report that the existing live version remains unchanged only when the App confirms that state. Never invent a version number, rollback entry, or recovery result. ## Privacy and destructive actions Only update assets in the authorized account/workspace. Rollback changes what recipients see and delete is destructive; keep those actions distinct and follow the App’s confirmation and permission requirements. ## Natural-language examples “I found the managed project. I’ll use its update action so the same URL remains active, then report the new version that Media2URL confirms.”
Package details
Publisher declarations from the archived package. These are separate from our research and the live service's terms.
- Package author
- Media2URL
- Keywords
- See publisher keywords
Declared capabilities
- Media publishing
- Link management
Package observed Oct 2, 2026.
Technical details
- First seen
- Sep 30, 2026 · 22:02 UTC
- Last seen
- Oct 3, 2026 · 00:00 UTC
- Collection status
- Collected
plugins_6aac3b2c05dc81918d9d60df53d70931
Download plugin data (JSON)