API ドキュメント
YourImageShare APIを使うと、ファイルのアップロード、一覧取得、削除をプログラムから行えます。 小さなJSON/REST APIなので、SDKは不要です。HTTPクライアントとAPIキーがあれば使えます。 公式のJavaScript、Python、MCPライブラリも用意しています。
すべてのクライアントライブラリと以下のツールはオープンソースです。 コードの閲覧、問題の報告、コントリビュートは公式GitHubリポジトリから行えます: github.com/yourimageshare/yourimageshare
ベースURL: https://yourimageshare.com/api · 形式: リクエストもレスポンスもJSON(アップロードのみ multipart/form-data) · 認証: すべてのリクエストにAPIキーが必要です。 · 機械可読な仕様: /openapi.json(OpenAPI 3.1)。このページを解析せずに済むよう、エージェントやコード生成ツール向けに用意しています。
APIキーの取得
ログインしてマイアカウントを開き、 APIタブを選択します。キーがそこに表示され、再生成ボタンもあります。 キーを再生成すると古いキーはすぐに無効になるため、使用中の場所をすべて更新してから押してください。
同じタブには、独立したもう1つのアップロード専用キーもあります。 使い分けについては下のヒントとフォーラム用プラグインをご覧ください。
認証
キーはヘッダーで送信してください(推奨)。クエリ文字列はアクセスログやプロキシログ、 Refererヘッダーに残りやすいためです。
X-API-Key: YOUR_API_KEY ?key=クエリパラメーターでも動作します。古い連携との互換性や、 単発のcurlコマンド用に残してあります。両方ある場合はヘッダーが優先されます。
?key=YOUR_API_KEY ヒント: キーはパスワードと同じように扱ってください。 キーを知っている人は、あなたのアカウントでアップロード、一覧取得、変更、削除ができます。 成功したリクエストはすべて記録され、アカウントページのAPIタブに日別・リクエスト種別ごとのグラフで表示されます。 フォーラムのプラグインや公開される設定ファイルなど、他の人の目に触れる場所にキーを置く必要がある場合は、 同じタブにあるアップロード専用キーを使ってください。このキーはアップロードしかできず、 一覧取得、個別取得、変更、削除はすべて401で拒否されます。
エンドポイント
アップロード、一覧取得、削除は同じ認証とレート制限を共有します。 大きいファイルは先に分割して送信できます。
POST /api - ファイルのアップロード
認証済みアカウントに、ファイルを1つアップロードします。
| フィールド | 型 | 必須 | 説明 |
|---|---|---|---|
uploads | file | この3つのうち1つ | アップロードするファイル(最大100MB。ネットワーク経由の1リクエストの上限です)。1リクエストにつき1ファイルで、このエンドポイントでは複数ファイルの一括アップロードはできません。 |
url | string | 画像または動画の公開http(s)リンク。こちらでダウンロードするため、200MBまでのファイルに対応します。 | |
upload_id | string | 事前にPOST /api/chunkへ分割送信したファイル(200MBまで)。 | |
filename | string | いいえ | upload_idと併用:元のファイル名。 |
expires_in | integer | いいえ | この秒数が過ぎるとアップロードを自動削除します(60〜31,536,000、つまり1分〜1年)。省略すると通常の永続アップロードになります。 |
allow_duplicate | boolean | いいえ | アカウントで同じファイルをすでにアップロード済みでも、新しいコピーを保存します(下のduplicateを参照)。 |
keep_original | boolean | いいえ | 画像をアップロードしたままの状態で保持します。指定しない場合、1MBを超えるJPG/PNGはWebPに最適化されます。GPSなどのメタデータはどちらの場合も削除されます。 |
visibility | string | いいえ | unlisted(デフォルト):リンクを知っている人ならファイルもページも開けますが、どこにも一覧表示されません。private:ファイルのみ。ページのリンクは、あなた以外の全員をファイルへ直接転送します(コメント、リアクション、広告なし)。public:サイトに一覧表示され、検索エンジンにも登録されます。 |
title | string | いいえ | 90文字まで。アップロードのページに表示されます。 |
description | string | いいえ | 500文字まで。 |
対応形式: 画像はJPG, PNG, GIF, WEBP, AVIF, BMP, TIFF, HEIC または HEIF、動画はMP4, WEBM, AVI, MOV, MKV, MPEG, WMV, FLV または 3GP (正確な一覧は今後増える可能性があります)。HEIC/HEIFとTIFFはWebPとして保存され、 MP4/WebM以外の動画はMP4に変換されます。サイズの大きいJPEG/PNG画像は、 かなり小さくなる場合、アップロード直後にWebPへ変換されます。最大サイズ: 200MB。サイズ超過や読み取れないファイルは422で拒否されます。
レスポンス - 200 OK:
{
"type": "success",
"msg": "success",
"data": {
"id": "aB3xY9qRz1",
"type": "image",
"path": "https://i.yourimageshare.com/aB3xY9qRz1.png",
"src": "https://yourimageshare.com/ib/aB3xY9qRz1.png",
"direct": "https://yourimageshare.com/ib/aB3xY9qRz1",
"thumb": "https://i.yourimageshare.com/thumb-aB3xY9qRz1.webp",
"width": 1920,
"height": 1080,
"size": 482113,
"locked": false,
"visibility": "unlisted",
"title": null,
"description": null,
"expires_at": null,
"duplicate": false,
"delete_url": "https://yourimageshare.com/delete#iV3x...k9"
}
} | フィールド | 説明 |
|---|---|
id | ファイルの一意の識別子。 |
type | imageまたはvideo。 |
path | アップロード時点のファイルの保存先URL。変換(WebP/MP4)後に変わることがあるため、pathではなくsrcを保存してください。 |
src | 永続的なファイルの直接URL。常に最新のファイルを開き、<img>/<video>のsrcや保存用に使えます。 |
direct | YourImageShare上のファイルのページ(タイトル、説明、コメント、共有オプション)。 |
thumb | 幅280pxのWebPサムネイル(動画の場合は最初のフレーム)。ない場合はnull。 |
width, height | 表示サイズ(ピクセル、向きを補正済み。動画はフレームサイズ)。不明な場合はnull。 |
size | 保存されたファイルのサイズ(バイト)。 |
locked | アップロードがパスワード保護されている場合はtrue。 |
visibility | private、unlisted、publicのいずれか(上のリクエストフィールドを参照)。 |
title, description | 設定した内容。未設定ならnull。テキストはウェブサイトと同じモデレーションを通ります。 |
delete_url | 新規アップロードのみ:APIキーなしでこのアップロードを削除できる非公開リンク。一度だけ表示され(保存されるのはハッシュのみ)、必要なら控えておいてください。 |
expires_at | このアップロードが自動削除される日時(ISO 8601)。期限がない場合はnull。 |
duplicate | アカウントで同じファイルをすでにアップロード済みの場合はtrue。その場合は既存のアップロードが返され、新たには何も保存されません。期限付きのアップロードやallow_duplicate=1の場合は適用されません。 |
期限付きアップロード: expires_atを過ぎると、 ファイルはストレージから削除され、アップロードのページは約5分以内に 410 Goneを返すようになります。この操作は取り消しや延長ができません。 早く削除したい場合はDELETEエンドポイントで削除し、 長く残したい場合は新しいexpires_inで再アップロードしてください。
POST /api/chunk - 大きいファイル
1回のリクエストで送れるのは最大100MBです。それより大きいファイル(200MBまで)や、 低速な回線で1リクエストを小さく保ちたい場合は、5MB以下のピースに分けて送信し、 最後にPOST /apiで完了させます。
- アップロードIDを決めます:ランダムな16進数32文字。
- ピースごとに
POST /api/chunk(multipart/form-data)を送ります。upload_id、index(0始まり)、total(ピースの総数)、 そしてバイト列をchunkに入れます。レスポンスは{"type": "success", "chunk_size": 5242880}です。 uploadsの代わりにupload_idとfilenameを付けてPOST /apiを送ります。ほかのアップロード用フィールドも指定できます。 レスポンスは通常のアップロードと同じです。
未完了のアップロードのピースは2時間後に削除されます。アップロードのレート制限にカウントされるのは、 最後のPOST /apiだけです。
GET /api/{id} と PATCH /api/{id} - 1件のアップロード
GETは、下の一覧と同じフィールドであなたのアップロードを1件返します。 PATCHはvisibility、title、descriptionを変更し (フォームフィールドまたはJSON。タイトルや説明を空にするとクリアされます)、更新後のアップロードを返します。 どちらもフルAPIキーが必要です。アカウントにそのアップロードがない場合は404です。
curl -X PATCH https://yourimageshare.com/api/aB3xY9qRz1 \
-H "X-API-Key: YOUR_API_KEY" -d visibility=public -d title="Sunset" POST /api/{id}/replace - ファイルの差し替え
IDやページ、すべてのリンクをそのままに、アップロードの中身のファイルを入れ替えます。許可されている種類であれば、 別の種類にも差し替えられます(画像を動画にすることも可能)。新しいファイルはuploads(または POST /api/chunkで分割送信したファイルのupload_id)として送ってください。 keep_originalはアップロード時と同様に使えます。新しいファイルには新規アップロードと同じチェックと変換が適用され、 以前のバージョンは削除されます。フルAPIキーが必要です。アカウントにそのアップロードがない場合は404、 パスワード保護または閲覧回数制限が付いている場合は409です。
curl -X POST https://yourimageshare.com/api/aB3xY9qRz1/replace \
-H "X-API-Key: YOUR_API_KEY" -F uploads=@new-version.png GET /api - アップロードの一覧取得
認証済みアカウントのアップロード(API、ウェブサイト、エディターなどすべての経路分)を、新しい順に1ページ50件ずつ返します。
| パラメーター | 場所 | 必須 | 説明 |
|---|---|---|---|
page | query | いいえ | ページ番号。デフォルトは1です。 |
レスポンス - 200 OK:
{
"type": "success",
"data": [
{
"id": "aB3xY9qRz1",
"type": "image",
"title": null,
"path": "https://i.yourimageshare.com/aB3xY9qRz1.webp",
"src": "https://yourimageshare.com/ib/aB3xY9qRz1.webp",
"direct": "https://yourimageshare.com/ib/aB3xY9qRz1",
"thumb": "https://i.yourimageshare.com/thumb-aB3xY9qRz1.webp",
"width": 1920,
"height": 1080,
"size": 482113,
"locked": false,
"visibility": "unlisted",
"description": null,
"expires_at": null,
"created_at": "2026-07-23T15:43:28+01:00"
}
],
"meta": { "current_page": 1, "last_page": 1, "total": 1 }
} 各フィールドの意味は、上のアップロードのレスポンスと同じです (パスワード保護されたアップロードでは、pathとthumbは有効期間の短い署名付きリンクになります)。 idで1件だけ取得するには、 GET /api/{id}を使ってください。
DELETE /api/{id} - アップロードの削除
認証済みアカウントのアップロードを1件、完全に削除します。APIからは元に戻せません。 {id}は、アップロードまたは一覧のエンドポイントがidとして返す値です。
レスポンス - 200 OK:
{ "type": "success", "msg": "Deleted." } そのIDのアップロードがアカウントに存在しない場合(もともとあなたのものではない、またはすでに削除済み)は404です。
POST /api/compare - ビフォー/アフターのスライダー
あなた自身の画像アップロード2枚で、ビフォー/アフターの比較を作成します。 /c/{id}にスライダー付きのページができ、どのウェブサイトにも埋め込めます。 アップロード専用キーでも使えます。beforeとafter(アップロードID、必須)を送り、 必要に応じてtitle、label_before、label_after (デフォルトは「Before」と「After」)を指定します。
レスポンス - 201 Created:
{
"type": "success",
"id": "P7uAYy04VA",
"url": "https://yourimageshare.com/c/P7uAYy04VA",
"embed_url": "https://yourimageshare.com/embed/c/P7uAYy04VA",
"embed": { "script": "<blockquote class=\"YISEmbed\" ...", "iframe": "<iframe ..." }
} どちらかのIDがあなたの画像アップロードでない場合は422です(動画とパスワード保護された画像は使えません)。
レート制限
APIキーごとに、1分あたりと1日あたりの制限が独立してあります。 さらに、1つのIPが複数のキーを使い回すのを防ぐため、IPごとの1日の上限も大まかに設けています。 アップロード、一覧取得、削除は同じ制限を共有します。
| 期間 | デフォルトの上限 | 対象 |
|---|---|---|
| 1分あたり | 20リクエスト | APIキーごと |
| 1日あたり | 500リクエスト | フルAPIキーごと |
| 1日あたり | 2,000リクエスト | アップロード専用キーごと(メディアライブラリ全体を移すプラグイン向け) |
| 1日あたり | 2,000リクエスト | IPアドレスごと |
| 1分あたり | 300ピース | APIキーごと、POST /api/chunkのみ |
これらの制限は変更される場合があります。すべてのレスポンスに、標準的なレート制限ヘッダーが含まれます。
X-RateLimit-Limit: 20
X-RateLimit-Remaining: 14 制限を超えると429が返り、待つべき秒数を示すRetry-Afterヘッダーが付きます。
エラー
エンドポイントや原因にかかわらず、すべてのエラーレスポンスは同じ形式です。
{ "type": "error", "errors": "A human-readable description of what went wrong." } | ステータス | 意味 |
|---|---|
| 401 | APIキーがない、または無効です。 |
| 403 | アカウント、または現在のIPがアップロード禁止になっています。 |
| 404 | このアカウントに、そのIDに一致するアップロードがありません(取得、変更、削除)。 |
| 413 | リクエストが100MBを超えています。ファイルを分割して送信する(POST /api/chunk)か、代わりにurlでリンクを指定してください(200MBまで)。 |
| 422 | 検証エラー:ファイルやリンクがない、未対応のファイル形式、読み取れない画像データ、30000x30000pxの上限を超えるサイズ、200MBを超えるファイル、未完了または期限切れのupload_id、ダウンロードできなかったurl(理由はメッセージに表示されます)。 |
| 429 | レート制限を超えました。上のレート制限を参照してください。 |
| 500 | サーバー側で予期しないエラーが発生しました。再試行しても問題ありません。 |
クライアントライブラリ
上記のエンドポイントをラップした公式SDKです。型付きの結果を返し、 APIエラーは生のHTTP処理ではなく例外として扱えます。
JavaScript / TypeScript
依存関係なし。Node.jsとブラウザで動作します。 JSRにも @yourimageshare/yourimageshareとして公開しています (npx jsr add @yourimageshare/yourimageshare)。ソースは同じで、TypeScriptのまま公開されています。
npm install yourimageshare Python
依存は1つ(requests)。Python 3.8以上。
pip install yourimageshare PHP
Composerの依存関係なし(PHP標準のcurl拡張を使用)。PHP 7.4以上。 ソースはGitHubにあります。
composer require yourimageshare/yourimageshare-php Go
依存関係なし(標準ライブラリのみ)。Go 1.18以上。詳しいリファレンスは pkg.go.devをご覧ください。
go get github.com/yourimageshare/yourimageshare/go Rust
依存は2つ(ブロッキングHTTP用のureq。非同期ランタイムは不要です。 それとserde)。Rust 1.70以上。ソースは GitHubにあります。
cargo add yourimageshare Ruby
gemの依存関係なし(標準ライブラリのNet::HTTPとjson)。Ruby 2.7以上。 ソースはGitHubにあります。
gem install yourimageshare .NET
依存は1つ(Microsoft公式のSystem.Text.Json)。netstandard2.0を対象とするため、 .NET Frameworkでも最新の.NETでも動作します。ソースは GitHubにあります。 この本番APIに対して構築・検証済みで、NuGetへは近日公開予定です。
dotnet add package YourImageShare Dart / Flutter
依存は1つ(Dartチーム公式パッケージのhttp)。Dart 2.17以上。ソースは GitHubにあります。 この本番APIに対して構築・検証済みで、pub.devへは近日公開予定です。
dart pub add yourimageshare Elixir
依存は1つ(Req)。Elixir 1.14以上。 {:ok, result}| {:error, reason}のタグ付きタプルを返します。 これは他のSDKでのこのAPIのエラー処理に相当するもので、例外を発生させるbang版も用意しています。 ソースはGitHub、 ドキュメントはHexDocsにあります。
{:yourimageshare, "~> 1.1"} MCPサーバー
AIコーディングエージェント(Claude Code、Cursor、その他の MCP対応ツール)向けです。 base64の文字列や手動アップロードの代わりに、スクリーンショットを本物のURLとして、 バグ報告、PRの説明、サポートのやり取りに貼り付けられます。Claude Desktopやその他のMCPクライアントでも同様に動作します。
ホスト版、インストール不要: リモートMCPサーバーとして追加し(Claudeの場合は設定 › コネクタ › カスタムコネクタを追加。ChatGPT、Cursor、VS Code、サーバーURLを受け付けるその他のクライアントでも可)、URLにAPIキーを含めます。
https://yourimageshare.com/mcp?key=YOUR_API_KEY ヘッダーを設定できるクライアントでは、代わりにhttps://yourimageshare.com/mcpと Authorization: Bearer YOUR_API_KEYを使えます。 キーを含むURLはパスワードと同じ扱いです。非公開にし、漏れた場合はマイアカウントで新しいキーを発行してください。 ホスト版のupload_imageは、公開リンク(200MBまで)またはインラインのbase64コンテンツ(15MBまで)を受け付けます。 キーなしでもhttps://yourimageshare.com/mcpはウェブサイトと同様に匿名でアップロードできます。ただし限定公開か非公開のみで、制限は低くなり、 アップロードは返されるdelete_urlで削除します。ほかのツールにはキーが必要です。
ローカル: npxで直接実行できます。インストール不要です(ディスク上のファイルも読み込めます)。
npx yourimageshare-mcp ツール:upload_image(ローカルファイル、インラインコンテンツ、またはリンク。200MBまで。公開設定、タイトル、自動削除は任意)、list_uploads、get_upload、update_upload、delete_upload。
公式MCPレジストリ(io.github.yourimageshare/yourimageshare)にも登録しており、SmitheryとGlamaにも掲載しています。お使いのMCPクライアントがこれらからインストールする場合はそちらをご利用ください。
MCPが初めての方は、設定手順をまとめたClaudeとChatGPTをMCP経由でこのAPIに接続する方法をご覧ください。
10個すべてMITライセンスです。お使いの言語向けの公式ライブラリがない場合は、 下のコード例でAPIを直接呼び出す方法を紹介しています。
コード例
curl
# Upload a file
curl "https://yourimageshare.com/api" \
-H "X-API-Key: YOUR_API_KEY" \
-F "uploads=@/path/to/photo.jpg"
# Upload from a link (files up to 200MB; one direct upload request stops at 100MB -
# bigger files go in pieces, see Large Files above)
curl "https://yourimageshare.com/api" \
-H "X-API-Key: YOUR_API_KEY" \
-F "url=https://example.com/video.mp4"
# Upload a file that auto-deletes after 1 hour
curl "https://yourimageshare.com/api" \
-H "X-API-Key: YOUR_API_KEY" \
-F "uploads=@/path/to/photo.jpg" \
-F "expires_in=3600"
# List uploads
curl "https://yourimageshare.com/api" -H "X-API-Key: YOUR_API_KEY"
# Upload a file without a page of its own (file only) and give it a title
curl "https://yourimageshare.com/api" \
-H "X-API-Key: YOUR_API_KEY" \
-F "uploads=@/path/to/photo.jpg" \
-F "visibility=private" \
-F "title=Sunset"
# Look up one upload, then make it public
curl "https://yourimageshare.com/api/aB3xY9qRz1" -H "X-API-Key: YOUR_API_KEY"
curl -X PATCH "https://yourimageshare.com/api/aB3xY9qRz1" \
-H "X-API-Key: YOUR_API_KEY" -d "visibility=public"
# Delete an upload
curl -X DELETE "https://yourimageshare.com/api/aB3xY9qRz1" -H "X-API-Key: YOUR_API_KEY" JavaScript (fetch)
const API_KEY = 'YOUR_API_KEY';
const BASE = 'https://yourimageshare.com/api';
async function uploadFile(file) {
const form = new FormData();
form.append('uploads', file);
const res = await fetch(BASE, {
method: 'POST',
headers: { 'X-API-Key': API_KEY },
body: form,
});
const json = await res.json();
if (json.type !== 'success') throw new Error(json.errors);
return json.data;
}
async function listUploads(page = 1) {
const res = await fetch(`${BASE}?page=${page}`, {
headers: { 'X-API-Key': API_KEY },
});
return res.json();
}
async function deleteUpload(id) {
const res = await fetch(`${BASE}/${id}`, {
method: 'DELETE',
headers: { 'X-API-Key': API_KEY },
});
return res.json();
} Python (requests)
import requests
API_KEY = "YOUR_API_KEY"
BASE = "https://yourimageshare.com/api"
HEADERS = {"X-API-Key": API_KEY}
# Upload a file
with open("/path/to/photo.jpg", "rb") as f:
res = requests.post(BASE, headers=HEADERS, files={"uploads": f})
res.raise_for_status()
upload = res.json()["data"]
# List uploads
res = requests.get(BASE, headers=HEADERS, params={"page": 1})
uploads = res.json()
# Delete an upload
res = requests.delete(f"{BASE}/{upload['id']}", headers=HEADERS) PHP (curl)
<?php
$apiKey = 'YOUR_API_KEY';
$base = 'https://yourimageshare.com/api';
// Upload a file
$curl = curl_init($base);
curl_setopt_array($curl, [
CURLOPT_POST => true,
CURLOPT_HTTPHEADER => ["X-API-Key: $apiKey"],
CURLOPT_POSTFIELDS => ['uploads' => new CURLFile('/path/to/photo.jpg')],
CURLOPT_RETURNTRANSFER => true,
]);
$upload = json_decode(curl_exec($curl), true)['data'];
curl_close($curl);
// List uploads
$curl = curl_init("$base?page=1");
curl_setopt($curl, CURLOPT_HTTPHEADER, ["X-API-Key: $apiKey"]);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
$uploads = json_decode(curl_exec($curl), true);
curl_close($curl); Go (net/http)
上の公式Go SDKがこの処理をラップしています。 依存関係を追加したくない方向けに、生のコードも載せています。
package main
import (
"bytes"
"encoding/json"
"io"
"mime/multipart"
"net/http"
"os"
)
const apiKey = "YOUR_API_KEY"
const base = "https://yourimageshare.com/api"
func uploadFile(path string) (map[string]any, error) {
file, err := os.Open(path)
if err != nil {
return nil, err
}
defer file.Close()
body := &bytes.Buffer{}
writer := multipart.NewWriter(body)
part, _ := writer.CreateFormFile("uploads", path)
io.Copy(part, file)
writer.Close()
req, _ := http.NewRequest("POST", base, body)
req.Header.Set("Content-Type", writer.FormDataContentType())
req.Header.Set("X-API-Key", apiKey)
res, err := http.DefaultClient.Do(req)
if err != nil {
return nil, err
}
defer res.Body.Close()
var result map[string]any
json.NewDecoder(res.Body).Decode(&result)
return result, nil
} スクリーンショットツール
ブラウザ拡張機能と、スクリーンショットをそのままYourImageShareに送るための設定ファイルやスクリプトです。 手動でアップロードする必要はありません。いずれも上記の/apiエンドポイントを通じてアップロードします。
ブラウザ拡張機能(Chrome・Firefox)
ChromeとFirefox向けのYourImageShare Capture拡張機能なら、スクリプトも設定ファイルも不要です。 表示中の領域、ドラッグで選択した範囲、スクロールするページ全体をキャプチャし、 矢印、テキスト、ぼかし/黒塗りなどの注釈を付けられる内蔵エディターが開きます。 そのあと、ダウンロード、クリップボードへのコピー、ワンクリックでYourImageShareへの公開のいずれかを選べます。 公開には上記と同じ/apiエンドポイントを使います。拡張機能の設定でAPIキーを一度入力しておけば、 以降は公開するたびに共有用リンクがすぐに返ります。デスクトップ版のChrome(およびほかのChromiumブラウザ)、デスクトップ版Firefox、Android版Firefoxで動作します。
Firefox版YourImageShare Captureを入手 Chrome版YourImageShare Captureを入手
ShareX
下のカスタムアップローダーをダウンロードし、ShareXで Destinations > Custom uploader settings > Import > from fileの順に進んで、 ダウンロードした.sxcuを開きます。Headers欄の YOUR_API_KEYを実際のキーに置き換えてください。 画像/ファイルのアップロード先に設定すれば、キャプチャが自動でアップロードされます。
削除について: ShareXの各アップロードの「Delete」リンクをクリックすると、 ブラウザで削除ページ(そのアップロード専用のdelete_url)が開くため、 ShareXの履歴からそのままキャプチャを削除できます。 マイアカウントからも削除できます。 2026年10月より前に設定ファイルをダウンロードした場合は、この機能を使うために再ダウンロードしてください。
Flameshot(Linux)
flameshot guiを実行してキャプチャをアップロードし、リンクをクリップボードにコピーする小さなシェルスクリプトです。 デスクトップ環境で、Flameshotのデフォルトのショートカットの代わりにキーボードショートカットへ割り当ててください。
yis-flameshot-upload.shをダウンロード
# One-time setup
chmod +x yis-flameshot-upload.sh
export YIS_API_KEY="YOUR_API_KEY" # or add to ~/.config/yourimageshare/api_key
# Then bind this to a hotkey instead of calling flameshot directly:
/path/to/yis-flameshot-upload.sh Greenshot(Windows)
Greenshotの標準機能External commandの送信先で使うPowerShellスクリプトです。 Windowsに付属のWindows PowerShell 5.1に対応しており、追加のインストールは不要です。
yis-greenshot-upload.ps1をダウンロード
# One-time setup
setx YIS_API_KEY "YOUR_API_KEY"
# In Greenshot: Preferences > Destinations > External command > Settings
# Command: powershell.exe
# Arguments: -ExecutionPolicy Bypass -File "C:\path\to\yis-greenshot-upload.ps1" "%1" フォーラム用プラグイン
フォーラムの投稿エディターの横に、本物の「画像をアップロード」ボタンを追加できます。 いずれも上記の/apiエンドポイントを通じてアップロードし、カーソル位置にBBCodeを挿入します。 別のタブを開く必要も、手動でコピー&ペーストする必要もありません。
以下では、APIキーではなくアップロード専用キーを使ってください。 各プラグインは、訪問者全員のページソースにキーを出力します。アップロード専用キー(マイアカウント > APIタブ)はアップロードしかできないため、 ページからコピーされても、あなたのアップロードの一覧取得や削除はできません。
フォーラムからのアップロードは、デフォルトで非公開になります。画像は投稿内では表示されますが、 YourImageShareにはその画像専用のページが作られません(コメント、リアクション、広告なし)。 リンクを知っている人向けにページも用意したい場合は、各プラグインの設定でunlistedに切り替えられます。
phpBB
phpBB 3.2/3.3用の本格的な拡張機能です。ext/に解凍し、 Customise > Manage extensionsで有効にしてから、拡張機能のテンプレートイベントファイル内の YOUR_UPLOAD_ONLY_KEYを実際のアップロード専用キーに置き換えてください。
SMF (Simple Machines Forum)
SMF用の本格的なパッケージです。Admin > Package Managerからインストールし、 Sources/yis_forumupload.php内のYOUR_UPLOAD_ONLY_KEYを 実際のアップロード専用キーに置き換えてください。
MyBB
MyBB 1.8用の本格的なプラグインです。inc/plugins/にコピーし、 Configuration > Pluginsで有効化してから、プラグインファイル内の YOUR_UPLOAD_ONLY_KEYを実際のアップロード専用キーに置き換えてください。
FluxBB、PunBB、ZetaBoards
これらには正式なプラグインの仕組みがないため、小さなスニペットをテンプレート(FluxBB/PunBB)や 管理パネル(ZetaBoards)に直接貼り付けます。コピー&ペーストの詳しい手順はそれぞれ次のとおりです。
WordPressプラグイン
メディアライブラリを、ローカルディスクではなくYourImageShareに移します。 新しい画像・動画のアップロードは、上記の/apiエンドポイントを通じて自動的にアップロードされ、 アップロードが確認されるとローカルのファイル(生成されたすべてのサムネイルサイズも含む)は削除されます。 ブロックエディター、アイキャッチ画像、ギャラリー、REST APIなど、WordPressのすべての添付ファイルURLは YourImageShareにあるファイルを指すようになります。ショートコードも、作業手順の変更も不要です。
- 新規アップロードだけでなく、既存のメディアライブラリもバックグラウンド(または
wp yis offload --all)で一括移行できます - 投稿内に配置済みの画像や動画は、ローカルのファイルが削除されても引き続き表示されます
- サムネイルとsrcsetには280pxのサムネイルを使うため、小さな画像枠でフルサイズのファイルを読み込みません
- 200MBまでのファイルに対応し、分割して送信するため、大きな動画でも共有ホスティングに負荷をかけません
- 移行したファイルは、いつでもローカルストレージに戻せます
- メディアライブラリの列で、移行済みかローカルのままかを確認できます
- 移行したファイルは非公開で保存されます。サイト上のどこでも表示されますが、YourImageShareにはそのファイル専用のページは作られません
APIキーではなくアップロード専用キーを使います。 フルAPIキーは任意で、WordPressで削除したときにYourImageShare上のファイルも削除したい場合にのみ必要です。
WordPressでプラグイン > 新規追加を開き、YourImageShare Media Offloadを検索して、インストールと有効化を行ってください。
iPhone・iPad用ショートカット
写真、ファイル、Safari、スクリーンショットなど、あらゆるアプリの共有シートからアップロードして、リンクをクリップボードに入れられます。 アプリのインストールもアカウントも不要です。
ショートカットアプリで自分で作る場合の手順です(約2分)。
- 新規ショートカットを作成し、名前を「Upload to YourImageShare」にします。詳細で共有シートに表示をオンにし、画像とメディアを受け付けるようにします。
- URLの内容を取得を追加します。URLは
https://yourimageshare.com/api/widget、メソッドはPOST、 リクエスト本文はフォームで、2つのフィールドを設定します。uploads(ファイル)=ショートカットの入力、client(テキスト)=ios-shortcut。 - 辞書の値を取得で
dataを取り出し、さらにもう1つ追加してsrcを取り出します。これが直接リンクです。 - クリップボードにコピーと通知を表示(「リンクをコピーしました」)を追加します。
キーなしの場合、アップロードは匿名で限定公開となり、1日の制限があります。アカウントにアップロードするには、 アップロード専用キー(マイアカウント > API)を値にしたヘッダーX-API-Keyを追加してください。 削除リンクを残したい場合は、レスポンスのdelete_urlも使えます。
PicGo・PicList
PicGoとPicListは、Typora、VS Code、Obsidian、Joplinなどのマークダウンエディターで、貼り付けたりドラッグしたりした画像をアップロードし、 リンクを文章に挿入します。当社のプラグインで、YourImageShareを画像の保存先の1つとして使えます。
- PicGoまたはPicListでプラグインを開き、
yourimageshareを検索してインストールし、アップローダーに YourImageShareを選びます。コマンドラインの場合:picgo install yourimageshare - または、プラグインをダウンロードしてローカルプラグインとしてインポートします(先に解凍してください)
- 設定:アップロード専用キー(任意。空の場合は匿名の限定公開アップロード)、公開設定、 画像の直接リンク(マークダウン用)とページのリンクのどちらを返すか
- 返されるリンクは、大きな画像があとからWebPに最適化されても引き続き有効です
Telegramボット
Telegramから離れずに、写真、動画、GIFのリンクを取得できます。 @YourImageShare_botに送るだけでリンクがすぐ返ってきます。アカウントもAPIキーも不要です。 ボットは上記と同じ/apiエンドポイントを通じてアップロードします。
- 写真、動画、GIF、または画像や動画のファイルを送ってください。最大10件のアルバムは1つの返信にまとめて返ります
- グループでは、写真や動画に
/linkと返信すると、ボットがそのリンクを全員向けに投稿します /autodeleteを使うと、この後のアップロードが1時間、1日、1週間、30日後に自動で削除されます- どの結果にも削除ボタンが付き、ファイルをアップロードした本人だけが使えます
- リンクは限定公開です。リンクを知っている人だけがファイルを見られます
- サイトがTelegramの言語に対応している場合、ボットはその言語で返信します
画質を保つには: Telegramは通常の方法で送った写真を圧縮します。 ファイルとして送る(📎 → ファイル)と、元の画像がアップロードされます。Telegramではボットが取得できるファイルは 20 MBまでのため、それより大きいファイルはウェブサイトからアップロードしてください。
Discordボット
Discord上の画像、GIF、動画を永続リンクに変換します。Discord自身の添付ファイルのリンクは一定期間後に使えなくなりますが、YourImageShareのリンクは使えなくなりません。アカウントもAPIキーも不要です。ボットは上記と同じ/apiエンドポイントを通じてアップロードします。
- ファイル付きの
/upload:1日、7日、30日後の自動削除を任意で指定でき、only_meを使うとリンクを自分にだけ表示できます - メッセージを右クリック → アプリ → Rehost on YourImageShareで、そのメッセージにある最大6件の画像や動画を1つの返信でまとめて再ホストできます
- サーバーに追加するか、自分のアカウントに追加して、どのチャットやDMでも使えます
- どの結果にも削除ボタンが付き、ファイルをアップロードした本人だけが使えます
- リンクは限定公開です。リンクを知っている人だけがファイルを見られます
Playwright・Cypress用GitHub Action
プルリクエストでE2Eテストが失敗したとき、アーティファクトのzipをダウンロードしなくても原因を確認できます。 このアクションは失敗時のスクリーンショットと視覚的な差分をアップロードし、 プルリクエストの1つのコメントに画像として表示します。コメントは実行のたびに更新されます。
- PlaywrightとCypressの両方に対応し、プロジェクトがどちらを使っているかを自動で判別します
- 視覚的な比較に失敗した場合は、Expected、Actual、Diffとして表示され、ビフォー/アフターのスライダーへのリンクも付きます (Playwrightの
toHaveScreenshot。Cypressではcypress-image-diff-jsとcypress-visual-regressionのプラグイン) - テストが直ると、コメントは「all tests passed」に変わります。同じレポートはジョブサマリーにも出力されます
- スクリーンショットは非公開(画像ファイルのみでページなし)で、デフォルトでは30日後に削除されます
- リポジトリのシークレット
YOURIMAGESHARE_API_KEYとしてアップロード専用キーが必要です。ビルドを失敗させることはありません
- uses: yourimageshare/playwright-pr-screenshots@v1
if: always()
with:
api-key: ${{ secrets.YOURIMAGESHARE_API_KEY }} コミュニティプロジェクト
YourImageShareの優れた連携の中には、ユーザー自身が作ったものもあります。 以下のプロジェクトは、上記で紹介している公開APIを使って、コミュニティのメンバーが作成しました。 メンテナンスは作者が行っているため、質問や不具合の報告は、各プロジェクトのページから作者に連絡してください。
- YourImageShare Uploads for FlatBB - FlatBBフォーラム用のプラグインで、madromas(MadWay Inc.)さんが作成しました。
- FlatBBの投稿作成画面にアップロードボタンを追加します。画像や動画を1つまたは複数選ぶと、カーソル位置にマークダウンが挿入されます
- アップロードしたものを、クリックできるサムネイル、フルサイズの画像、または通常のリンク(動画はリンク)として挿入します
- アップロードはアップロード専用APIキーを使ってフォーラムのサーバー経由で行われるため、キーが訪問者のブラウザに渡ることはありません
- ファイルはフォーラムのディスクではなくYourImageShareに保存され、デフォルトの公開設定(非公開、限定公開、公開)を選べます
- FlatBB標準のアップローダーと併用でき、ファイルサイズの上限は別に設定されます
ありがとうございます
YourImageShareを使ってものづくりをし、その成果を共有してくださるすべての方に、心から感謝します。 コミュニティのプロジェクトのおかげで、私たちだけでは届かなかった場所にもYourImageShareが広がっています。 APIで何か作りましたか?ぜひお知らせください。喜んでここに掲載します。
ブログより
さっそく試してみませんか?
APIキーを取得する →