TwitterDown- ブログ
- TwitterDown API ドキュメント
TwitterDown API ドキュメント
TwitterDown5 months ago
290 語
2 分 読む
目次
TwitterDown API の使い方ドキュメント
TwitterDown API 開発ドキュメント
概要#
TwitterDown API v1 は、Twitter/X リンクから動画情報を抽出するためのプログラムアクセスを提供します。この API を使用すると、開発者は Twitter 動画解析機能をアプリケーションに統合できます。
ベースURL#
https://twitterdown.com/api/v1
認証#
すべてのAPIリクエストには、APIキーを使用した認証が必要です。各リクエストの Authorization ヘッダーにAPIキーを含める必要があります。
APIキーの形式#
Authorization: Bearer YOUR_API_KEY
APIキーの取得#
- TwitterDownでアカウントを作成します。
- プレミアムサブスクリプションを購入します。
- ダッシュボードのAPIキーセクションに移動します。
- 新しいAPIキーを作成します。
注意: APIアクセスはプレミアムユーザーのみが利用できます。
レート制限#
- 1分あたりのリクエスト数: 60
- 1時間あたりのリクエスト数: 1,000
- 1日あたりのリクエスト数: 10,000
すべてのレスポンスにはレート制限ヘッダーが含まれています:
X-RateLimit-Limit: 現在の時間枠でのリクエスト制限X-RateLimit-Remaining: 現在の時間枠で残っているリクエスト数X-RateLimit-Reset: レート制限がリセットされるUnixタイムスタンプ
エンドポイント
1. Twitter動画URLの解析#
Twitter/X URLから動画情報を抽出します。
エンドポイントアドレス: POST /twitter
リクエスト
リクエストヘッダー:
Content-Type: application/json
Authorization: Bearer YOUR_API_KEY
リクエストボディ:
{
"url": "https://x.com/username/status/1234567890123456789"
}
パラメータ:
| パラメータ名 | タイプ | 必須 | 説明 |
|---|---|---|---|
url |
string | はい | 動画を含む有効なTwitter/XツイートのURL |
レスポンス
成功レスポンス (200 OK):
{
"code": 0,
"message": "ok",
"data": {
"thumbnail": "https://pbs.twimg.com/amplify_video_thumb/1234567890123456789/img/ExampleThumbnail.jpg",
"videos": [
{
"resolution": "720p",
"quality": "HD",
"url": "https://video.twimg.com/amplify_video/1234567890123456789/vid/avc1/1280x720/ExampleVideoHD.mp4?tag=21"
},
{
"resolution": "360p",
"quality": "SD",
"url": "https://video.twimg.com/amplify_video/1234567890123456789/vid/avc1/640x360/ExampleVideoSD.mp4?tag=21"
},
{
"resolution": "270p",
"quality": "SD",
"url": "https://video.twimg.com/amplify_video/1234567890123456789/vid/avc1/480x270/ExampleVideoLow.mp4?tag=21"
}
],
"text": "これは動画を含むツイートのサンプルコンテンツです",
"username": "username",
"statusId": "1234567890123456789",
"processed_at": "2024-01-01T12:00:00.000Z"
}
}
レスポンスフィールド:
| フィールド名 | タイプ | 説明 |
|---|---|---|
code |
integer | レスポンスコード (0 = 成功, -1 = エラー) |
message |
string | レスポンスメッセージ |
data |
object | レスポンスデータ |
thumbnail |
string | ツイートのサムネイルURL (nullの場合あり) |
videos |
array | 利用可能な動画フォーマットの配列 |
text |
string | ツイートのテキスト内容 |
username |
string | Twitterユーザー名 |
statusId |
string | ツイートのステータスID |
processed_at |
string | 処理された時刻のISO 8601タイムスタンプ |
動画オブジェクトフィールド:
| フィールド名 | タイプ | 説明 |
|---|---|---|
resolution |
string | 動画の解像度 (例: "720p", "360p") |
quality |
string | 動画の品質 (例: "HD", "SD") |
url |
string | 動画の直接ダウンロードURL |
2. APIドキュメント#
APIドキュメントと使用情報を取得します。
エンドポイントアドレス: GET /twitter
レスポンス
エンドポイント情報、認証要件、例を含む完全なAPIドキュメントがJSON形式で返されます。
エラーハンドリング
エラーレスポンスの形式#
{
"code": -1,
"message": "エラーの説明"
}
HTTPステータスコード#
| ステータスコード | 説明 |
|---|---|
200 |
成功 |
400 |
不正なリクエスト - 無効なパラメータ |
401 |
未認証 - APIキーが不足しているか無効です |
403 |
禁止 - プレミアムサブスクリプションが必要です |
422 |
処理できないエンティティ - URLを解析できません |
429 |
リクエストが多すぎます - レート制限を超過しました |
500 |
内部サーバーエラー |
よくあるエラーメッセージ
| エラーメッセージ | 原因 |
|---|---|
Missing API key |
Authorizationヘッダーが提供されていません |
Invalid API key |
APIキーが見つからないか、期限切れです |
API access is only available for premium users |
プレミアムユーザーのみがAPIにアクセスできます |
URL parameter is required |
リクエストボディにURLがありません |
Invalid Twitter/X URL format |
URLの形式が正しくないか、サポートされていません |
No video found |
ツイートに動画コンテンツが含まれていません |
例#
cURLの例#
curl --location --request POST 'https://twitterdown.com/api/v1/twitter' \
--header 'Authorization: Bearer sk-1234567890abcdef123456789012345678' \
--header 'Content-Type: application/json' \
--data-raw '{
"url": "https://x.com/username/status/1234567890123456789"
}'
JavaScriptの例#
const response = await fetch('https://twitterdown.com/api/v1/twitter', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Authorization': 'Bearer sk-1234567890abcdef123456789012345678'
},
body: JSON.stringify({
url: 'https://x.com/username/status/1234567890123456789'
})
});
const data = await response.json();
if (data.code === 0) {
console.log('動画が見つかりました:', data.data.videos);
} else {
console.error('エラー:', data.message);
}
Pythonの例#
import requests
url = "https://twitterdown.com/api/v1/twitter"
headers = {
"Content-Type": "application/json",
"Authorization": "Bearer sk-1234567890abcdef123456789012345678"
}
payload = {
"url": "https://x.com/username/status/1234567890123456789"
}
response = requests.post(url, headers=headers, json=payload)
data = response.json()
if data["code"] == 0:
print("動画が見つかりました:", data["data"]["videos"])
else:
print("エラー:", data["message"])
PHPの例#
<?php
$url = 'https://twitterdown.com/api/v1/twitter';
$headers = [
'Content-Type: application/json',
'Authorization: Bearer sk-1234567890abcdef123456789012345678'
];
$payload = json_encode([
'url' => 'https://x.com/username/status/1234567890123456789'
]);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $payload);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);
$data = json_decode($response, true);
if ($data['code'] === 0) {
echo "動画が見つかりました: " . print_r($data['data']['videos'], true);
} else {
echo "エラー: " . $data['message'];
}
?>
ベストプラクティス
URL形式のサポート#
APIは以下のURL形式をサポートしています:
https://twitter.com/username/status/1234567890https://x.com/username/status/1234567890https://mobile.twitter.com/username/status/1234567890
エラーハンドリング
レスポンスの code フィールドを常に確認してください:
code: 0は成功を示しますcode: -1はエラーを示します
APIエラーを適切に処理するために、アプリケーションで適切なエラーハンドリングを実装してください。
レート制限#
レスポンスのレート制限ヘッダーを監視し、制限に近づいたらバックオフ戦略を実装してください。
セキュリティ
- APIキーは安全に保管し、クライアントサイドのコードで公開しないでください。
- APIキーは環境変数を使用して保存してください。
- APIキーは定期的にローテーションしてください。
- 未使用のAPIキーは削除してください。
サポート
APIサポートとご質問については、以下までご連絡ください:
- メール: [email protected]
- ドキュメント: https://twitterdown.com/docs
- ステータスページ: https://status.twitterdown.com
更新履歴#
バージョン 1.0.0 (2025年5月27日)#
- 最初のAPIリリース
- Twitter/X動画解析
- プレミアムユーザー認証
- レート制限の実装
最終更新日:2025年5月27日