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つアップロードします。

フィールド型必須説明
uploadsfileこの3つのうち1つアップロードするファイル(最大100MB。ネットワーク経由の1リクエストの上限です)。1リクエストにつき1ファイルで、このエンドポイントでは複数ファイルの一括アップロードはできません。
urlstring画像または動画の公開http(s)リンク。こちらでダウンロードするため、200MBまでのファイルに対応します。
upload_idstring事前にPOST /api/chunkへ分割送信したファイル(200MBまで)。
filenamestringいいえupload_idと併用:元のファイル名。
expires_inintegerいいえこの秒数が過ぎるとアップロードを自動削除します(60〜31,536,000、つまり1分〜1年)。省略すると通常の永続アップロードになります。
allow_duplicatebooleanいいえアカウントで同じファイルをすでにアップロード済みでも、新しいコピーを保存します(下のduplicateを参照)。
keep_originalbooleanいいえ画像をアップロードしたままの状態で保持します。指定しない場合、1MBを超えるJPG/PNGはWebPに最適化されます。GPSなどのメタデータはどちらの場合も削除されます。
visibilitystringいいえunlisted(デフォルト):リンクを知っている人ならファイルもページも開けますが、どこにも一覧表示されません。private:ファイルのみ。ページのリンクは、あなた以外の全員をファイルへ直接転送します(コメント、リアクション、広告なし)。public:サイトに一覧表示され、検索エンジンにも登録されます。
titlestringいいえ90文字まで。アップロードのページに表示されます。
descriptionstringいいえ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ファイルの一意の識別子。
typeimageまたはvideo。
pathアップロード時点のファイルの保存先URL。変換(WebP/MP4)後に変わることがあるため、pathではなくsrcを保存してください。
src永続的なファイルの直接URL。常に最新のファイルを開き、<img>/<video>のsrcや保存用に使えます。
directYourImageShare上のファイルのページ(タイトル、説明、コメント、共有オプション)。
thumb幅280pxのWebPサムネイル(動画の場合は最初のフレーム)。ない場合はnull。
width, height表示サイズ(ピクセル、向きを補正済み。動画はフレームサイズ)。不明な場合はnull。
size保存されたファイルのサイズ(バイト)。
lockedアップロードがパスワード保護されている場合はtrue。
visibilityprivate、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で完了させます。

  1. アップロードIDを決めます:ランダムな16進数32文字。
  2. ピースごとにPOST /api/chunk(multipart/form-data)を送ります。 upload_id、index(0始まり)、total(ピースの総数)、 そしてバイト列をchunkに入れます。レスポンスは {"type": "success", "chunk_size": 5242880}です。
  3. 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件ずつ返します。

パラメーター場所必須説明
pagequeryいいえページ番号。デフォルトは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." }
ステータス意味
401APIキーがない、または無効です。
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を実際のキーに置き換えてください。 画像/ファイルのアップロード先に設定すれば、キャプチャが自動でアップロードされます。

YourImageShare.sxcuをダウンロード

削除について: 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を実際のアップロード専用キーに置き換えてください。

phpBB用をダウンロード

SMF (Simple Machines Forum)

SMF用の本格的なパッケージです。Admin > Package Managerからインストールし、 Sources/yis_forumupload.php内のYOUR_UPLOAD_ONLY_KEYを 実際のアップロード専用キーに置き換えてください。

SMF用をダウンロード

MyBB

MyBB 1.8用の本格的なプラグインです。inc/plugins/にコピーし、 Configuration > Pluginsで有効化してから、プラグインファイル内の YOUR_UPLOAD_ONLY_KEYを実際のアップロード専用キーに置き換えてください。

MyBB用をダウンロード

FluxBB、PunBB、ZetaBoards

これらには正式なプラグインの仕組みがないため、小さなスニペットをテンプレート(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.orgで入手 ZIPをダウンロード

WordPressでプラグイン > 新規追加を開き、YourImageShare Media Offloadを検索して、インストールと有効化を行ってください。

あらゆるサイトに置けるアップロードボタン

コメント欄、サポートページ、プラグインのないフォーラム、静的サイトなど、どのサイトにも訪問者向けの「アップロード」ボタンを設置できます。 2行を貼り付けるだけで、アカウントもサーバー側のコードも不要です。

<a class="yis-upload" href="https://yourimageshare.com/" data-target="#message" data-format="bbcode">Image and video hosting by YourImageShare</a>
<script src="https://yourimageshare.com/w.js" async></script>

2つの属性はどちらも任意です。指定しない場合、ボタンはリンクとコピーボタンを表示します。アップロードボックスはこのリンクを中心に作られます。

  • アップロードはページ上でそのまま行えます。ボタンをクリックする、ファイルをドロップする、スクリーンショットを貼り付けると、 複数のファイルを同時に、進捗バーとサムネイル付きでアップロードできます
  • data-targetで指定したフィールド(テキストエリア、入力欄、編集可能なボックス)に画像を直接貼り付けたりドロップしたりしてもアップロードされ、リンクがそのフィールドに追加されます。ターゲットがない場合は、ボタンの下にコピーボタン付きで表示されます
  • data-format:url(ファイルの直接リンク。デフォルト)、page、bbcode、 html、markdown。data-labelでボタンのテキストを変更できます
  • data-key(任意):アップロード専用キー(マイアカウント > API)。指定すると、 アップロードはあなたのアカウントに入り、あなた自身の制限が適用されます。キーなしの場合、アップロードは匿名で限定公開となり、訪問者ごと、サイトごとの1日の制限があります
  • 開発者は、アップロードボックスのyis:uploadイベントを受け取れます。 event.detail.itemには{id, type, page, url, thumb}が入っています
  • ボタン経由では95 MBまでのファイルに対応します(それ以上はウェブサイトから)。通常どおりモデレーションと利用規約が適用され、 訪問者ごとに専用の削除リンクが発行されます

ボタンは独立したボックスの中に描画されるため、サイトのCSSで表示が崩れることはありません。 アップロードボックス内の小さな「Image and video hosting by YourImageShare」リンクは常に表示されます。

iPhone・iPad用ショートカット

写真、ファイル、Safari、スクリーンショットなど、あらゆるアプリの共有シートからアップロードして、リンクをクリップボードに入れられます。 アプリのインストールもアカウントも不要です。

ショートカットアプリで自分で作る場合の手順です(約2分)。

  1. 新規ショートカットを作成し、名前を「Upload to YourImageShare」にします。詳細で共有シートに表示をオンにし、画像とメディアを受け付けるようにします。
  2. URLの内容を取得を追加します。URLはhttps://yourimageshare.com/api/widget、メソッドはPOST、 リクエスト本文はフォームで、2つのフィールドを設定します。uploads(ファイル)=ショートカットの入力、client(テキスト)=ios-shortcut。
  3. 辞書の値を取得でdataを取り出し、さらにもう1つ追加してsrcを取り出します。これが直接リンクです。
  4. クリップボードにコピーと通知を表示(「リンクをコピーしました」)を追加します。

キーなしの場合、アップロードは匿名で限定公開となり、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に最適化されても引き続き有効です

PicGoプラグインをダウンロード

Telegramボット

Telegramから離れずに、写真、動画、GIFのリンクを取得できます。 @YourImageShare_botに送るだけでリンクがすぐ返ってきます。アカウントもAPIキーも不要です。 ボットは上記と同じ/apiエンドポイントを通じてアップロードします。

  • 写真、動画、GIF、または画像や動画のファイルを送ってください。最大10件のアルバムは1つの返信にまとめて返ります
  • グループでは、写真や動画に/linkと返信すると、ボットがそのリンクを全員向けに投稿します
  • /autodeleteを使うと、この後のアップロードが1時間、1日、1週間、30日後に自動で削除されます
  • どの結果にも削除ボタンが付き、ファイルをアップロードした本人だけが使えます
  • リンクは限定公開です。リンクを知っている人だけがファイルを見られます
  • サイトがTelegramの言語に対応している場合、ボットはその言語で返信します

画質を保つには: Telegramは通常の方法で送った写真を圧縮します。 ファイルとして送る(📎 → ファイル)と、元の画像がアップロードされます。Telegramではボットが取得できるファイルは 20 MBまでのため、それより大きいファイルはウェブサイトからアップロードしてください。

Telegramで@YourImageShare_botを開く

Discordボット

Discord上の画像、GIF、動画を永続リンクに変換します。Discord自身の添付ファイルのリンクは一定期間後に使えなくなりますが、YourImageShareのリンクは使えなくなりません。アカウントもAPIキーも不要です。ボットは上記と同じ/apiエンドポイントを通じてアップロードします。

  • ファイル付きの/upload:1日、7日、30日後の自動削除を任意で指定でき、only_meを使うとリンクを自分にだけ表示できます
  • メッセージを右クリック → アプリ → Rehost on YourImageShareで、そのメッセージにある最大6件の画像や動画を1つの返信でまとめて再ホストできます
  • サーバーに追加するか、自分のアカウントに追加して、どのチャットやDMでも使えます
  • どの結果にも削除ボタンが付き、ファイルをアップロードした本人だけが使えます
  • リンクは限定公開です。リンクを知っている人だけがファイルを見られます

YourImageShareをDiscordに追加

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 }}

GitHubのセットアップガイド

コミュニティプロジェクト

YourImageShareの優れた連携の中には、ユーザー自身が作ったものもあります。 以下のプロジェクトは、上記で紹介している公開APIを使って、コミュニティのメンバーが作成しました。 メンテナンスは作者が行っているため、質問や不具合の報告は、各プロジェクトのページから作者に連絡してください。

  • YourImageShare Uploads for FlatBB - FlatBBフォーラム用のプラグインで、madromas(MadWay Inc.)さんが作成しました。
    • FlatBBの投稿作成画面にアップロードボタンを追加します。画像や動画を1つまたは複数選ぶと、カーソル位置にマークダウンが挿入されます
    • アップロードしたものを、クリックできるサムネイル、フルサイズの画像、または通常のリンク(動画はリンク)として挿入します
    • アップロードはアップロード専用APIキーを使ってフォーラムのサーバー経由で行われるため、キーが訪問者のブラウザに渡ることはありません
    • ファイルはフォーラムのディスクではなくYourImageShareに保存され、デフォルトの公開設定(非公開、限定公開、公開)を選べます
    • FlatBB標準のアップローダーと併用でき、ファイルサイズの上限は別に設定されます

    GitHubのソース · FlatBBマーケットプレイスのページ

ありがとうございます

YourImageShareを使ってものづくりをし、その成果を共有してくださるすべての方に、心から感謝します。 コミュニティのプロジェクトのおかげで、私たちだけでは届かなかった場所にもYourImageShareが広がっています。 APIで何か作りましたか?ぜひお知らせください。喜んでここに掲載します。

ブログより

さっそく試してみませんか?

APIキーを取得する →