TwitterDownTwitterDown

TwitterDown API 문서

TwitterDownon 18 days ago

TwitterDown API 개발 문서

개요

TwitterDown API v1은 Twitter/X 링크에서 비디오 정보를 추출하기 위한 프로그래밍 방식의 액세스를 제공합니다. 이 API를 통해 개발자는 Twitter 비디오 분석 기능을 애플리케이션에 통합할 수 있습니다.

기본 URL

https://twitterdown.com/api/v1

인증

모든 API 요청은 API 키를 사용하여 인증해야 합니다. 각 요청의 Authorization 헤더에 API 키를 포함해야 합니다.

API 키 형식

Authorization: Bearer 당신의_API_키

API 키 획득

  1. TwitterDown에서 계정을 생성합니다.
  2. 프리미엄 구독을 구매합니다.
  3. 대시보드에서 API 키 섹션으로 이동합니다.
  4. 새로운 API 키를 생성합니다.

참고: API 접근은 프리미엄 사용자에게만 제공됩니다.

속도 제한

  • 분당 요청 수: 60
  • 시간당 요청 수: 1,000
  • 일일 요청 수: 10,000

모든 응답에는 속도 제한 헤더가 포함됩니다:

  • X-RateLimit-Limit: 현재 시간 창에 대한 요청 제한
  • X-RateLimit-Remaining: 현재 창에서 남은 요청 수
  • X-RateLimit-Reset: 속도 제한이 재설정될 Unix 타임스탬프

엔드포인트

1. 트위터 비디오 URL 분석

Twitter/X URL에서 비디오 정보를 추출합니다.

엔드포인트 주소: POST /twitter

요청

요청 헤더:

Content-Type: application/json
Authorization: Bearer 당신의_API_키

요청 본문:

{
  "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 (비어있을 수 있음)
videos array 사용 가능한 비디오 형식 배열
text string 트윗 텍스트 내용
username string 트위터 사용자명
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/1234567890
  • https://x.com/username/status/1234567890
  • https://mobile.twitter.com/username/status/1234567890

오류 처리

응답에서 code 필드를 항상 확인하십시오:

  • code: 0은 성공을 의미합니다
  • code: -1은 오류를 의미합니다

API 오류를 우아하게 처리할 수 있도록 애플리케이션에 적절한 오류 처리를 구현하십시오.

속도 제한

응답의 속도 제한 헤더를 모니터링하고, 제한에 근접할 경우 백오프 전략을 구현하십시오.

보안

  • API 키를 안전하게 보호하고 클라이언트 측 코드에 노출하지 마십시오.
  • 환경 변수를 사용하여 API 키를 저장하십시오.
  • API 키를 주기적으로 변경하십시오.
  • 사용하지 않는 API 키를 삭제하십시오.

지원

API 지원 및 문의 사항:

  • 이메일: support@twitterdown.com
  • 문서: https://twitterdown.com/docs
  • 상태 페이지: https://status.twitterdown.com

변경 로그

버전 1.0.0 (2025년 5월 27일)

  • 최초 API 릴리스
  • 트위터/X 비디오 분석
  • 프리미엄 사용자 인증
  • 속도 제한 구현

최종 업데이트: 2025년 5월 27일