APIでできること

このインターフェースは、ダッシュボードで行える操作に対応しています。アカウント情報とストレージの確認、アップロードサーバーの取得とファイル送信、URLからの動画インポート、ファイルの一覧表示と詳細確認、移動と名前変更、フォルダ作成、動画検索、リモートアップロードのキュー管理が可能です。リモートアドレスからスプラッシュ画像や字幕を追加する機能もあります。

リクエストはシンプルなHTTPのGETまたはPOSTです。APIキーはkeyパラメーターに指定し、アカウント設定で確認できます。すべての応答はJSONで、メッセージ、ステータスコード、サーバー時刻、結果が含まれます。応答ステータス429は、1秒あたり10リクエストの上限に達したことを意味します。さらに必要な場合はサポートにご連絡ください。

代表的な連携例

ビルドサーバーから完成した動画を直接送る公開ワークフロー、スプレッドシートのリンクを取り込むコンテンツツール、クリエイターのライブラリをサイトに一覧表示するプラグイン、エンコード状況を監視するスクリプトなどです。公式のPHPとPythonのクライアントは近日公開予定のため、現時点では以下のようにエンドポイントを直接呼び出します。

エンドポイントの種類

公開されているメソッドの一覧です。

アカウント

プロフィール、残高、ストレージを取得し、期間を指定してレポート統計を取得、DMCA通知を一覧表示します。

アップロード

アップロードサーバーを取得し、ファイルをマルチパートフォームデータで送信して、コードとリンクを受け取ります。

リモートアップロード

URLの追加、ジョブの一覧、状態とスロットの確認、失敗したインポートの再開や削除ができます。

フォルダー

フォルダと、その中のファイルを作成、名前変更、一覧表示できます。

ファイル

ファイルの一覧表示、確認、詳細取得、名前変更、移動、複製と、サムネイルの取得ができます。

検索

検索語で動画を探し、URLからスプラッシュ画像や字幕を追加できます。

最初の呼び出し

  1. 1ログインして、アカウント設定ページからAPIキーをコピーします。
  2. 2アカウント情報のエンドポイントを呼び出して、キーが有効かどうかとストレージ・残高を確認します。
  3. 3アップロードサーバーのエンドポイントでアップロードサーバーを取得し、返されたアドレスを控えます。
  4. 4そのアドレスにファイルをマルチパートフォームデータで送信します。応答にはファイルコード、視聴リンク、埋め込みリンクが含まれます。
  5. 5ファイル確認のエンドポイントをポーリングするか、ファイルを一覧表示して、処理の完了を確認します。

実際のエンドポイントを使った例

curl:アカウント情報とアップロード

最初の呼び出しはキーを確認します。2つ目は、アップロードサーバー呼び出しで返されたサーバーアドレスにファイルを送信します。

curl "https://filehost.net/api/account/info?key=YOUR_API_KEY"

curl "https://filehost.net/api/upload/server?key=YOUR_API_KEY"

curl -X POST -F 'api_key=YOUR_API_KEY' -F '[email protected]' \
  "https://filehost.net/api/upload/server/01?key=YOUR_API_KEY"

PHP:URLから動画をインポート

リモートアップロードのジョブを追加し、ファイルコードを出力します。元のアドレスにはurlencodeを使ってください。

<?php
$key = 'YOUR_API_KEY';
$src = urlencode('https://example.com/video.mp4');
$res = json_decode(file_get_contents(
    "https://filehost.net/api/upload/url?key=$key&url=$src"
), true);
echo $res['result']['filecode'] ?? 'failed';

JavaScript:ファイルの状態を確認

Node 18以降とブラウザで動作します。ただしキーはサーバー側に置いてください。

const key = process.env.FILEHOST_KEY;
const code = 'FILE_CODE';
const r = await fetch(
  `https://filehost.net/api/file/check?key=${key}&file_code=${code}`
);
const data = await r.json();
console.log(data.result[0].status);

おすすめの使い方

キーはクライアント側のコードに置かないでください。見た人は誰でもあなたのアカウントとして操作できてしまいます。1秒あたり10リクエストの制限を守るため、呼び出しをキューに入れ、429の応答では待機してください。アップロードで返されたファイルコードは保存しましょう。ほかのすべての呼び出しは、そのコードでファイルを指定します。

大きなファイルのアップロードは、安定した回線のサーバーから行うのが最適です。すでにオンラインにあるファイルは、サーバーの回線を使い、ジョブコードをすぐに返すURLインポートがおすすめです。

実践的なエラー処理

HTTPステータスとJSON本文内のstatusフィールドの両方を確認し、原因が分かることの多いメッセージ文をログに残しましょう。ファイルコードがない、またはキーの期限切れは致命的な失敗として扱い、429の応答は待ってから再試行する合図と考えます。バッチ処理を作る場合は、返されたすべてのファイルコードをローカルに記録しておくと、スクリプトが落ちても二重にアップロードせず再開できます。

APIにできないこと

ドキュメント化されたWebhookコールバックはないため、完了の確認はポーリングで行います。公開されているアップロード応答にはファイルコードとリンクが含まれ、公式クライアントライブラリはまだ公開されていません。足りない機能がある場合は、お問い合わせページからサポートにお知らせください。

FileHost.netの比較

連携するホストを検討中ですか?各社が公開している機能を比べてみましょう。

すべての比較を見る

関連ツールとガイド

さっそく試す

アカウントを作成してキーをコピーし、最初のcurlコマンドを実行しましょう。その日の午後には、動く連携が完成します。

よくある質問

はい。すべてのリクエストでご自身専用のキーを使います。キーはアカウント設定からコピーできます。

1秒あたり10リクエストです。超過すると429 Too Many Requestsが返されます。

はい。アップロードサーバーのアドレスを取得し、そこへファイルをマルチパートフォームデータで送信します。

はい。アップロードURLのエンドポイントはリンクを受け取ってファイルコードを返し、フォルダやタイトルをオプションで指定できます。

PHPとPythonのクライアントは近日公開予定です。現時点では、HTTPエンドポイントを直接呼び出してください。