설정 한 줄 이전

Euler Stream에서 Tik.Tools 갈아타기, 설정 한 줄이면 끝

TikTokLive(Python)나 tiktok-live-connector(Node)는 그대로 쓰세요. 서명 제공자 호스트만 바꾸면 돼요. 같은 이벤트 이름, 같은 SDK, 같은 코드.

무료 API 키 받기
실시간 미리보기

바로 여기서 작동하는 모습을 확인하세요

Euler가 제공하는 것과 같은 핸드셰이크: 서명 토큰 발급 -> WebSocket. 아래 iframe은 스니펫의 HTML 버전을 그대로 api.tik.tools에 대고 실행해요. 복사해서 붙여 넣으면 똑같은 결과가 나와요.

euler-dropin.html실행 중
화면에 보이면 미리보기가 로드돼요.
원하는 언어를 고르세요 (Node / Python / HTML / LLM 프롬프트)
단계별 안내

두 단계. 리팩터링 제로.

1

서명 제공자 호스트 바꾸기

SDK 초기화 코드의 설정 두 줄에서 서명 백엔드를 https://tiktok.eulerstream.com 대신 https://api.tik.tools 쪽으로 지정하세요. 기존 이벤트 핸들러, 방 ID, SDK 코드는 그대로예요. tik.tools API 요금제 전부 그대로 바꿔 끼워 쓸 수 있고, 데모 키 your_api_key도 가입 없이 낮은 한도로 쓸 수 있어요.

// Node — tiktok-live-connector v2.x (verified working against api.tik.tools)
import { TikTokLiveConnection, SignConfig, WebcastEvent } from 'tiktok-live-connector'

SignConfig.basePath = 'https://api.tik.tools'    // was: https://tiktok.eulerstream.com
SignConfig.apiKey   = 'tk_your_key'              // your tik.tools key

const conn = new TikTokLiveConnection('@username', { fetchRoomInfoOnConnect: false })
conn.on(WebcastEvent.CHAT, e => console.log(e.user.uniqueId, ':', e.comment))
await conn.connect()

// Or env-var (no code change at all):
//   SIGN_API_URL=https://api.tik.tools  SIGN_API_KEY=tk_your_key  node app.js
# Python — TikTokLive v6.6+ (one config swap, existing code unchanged)
from TikTokLive.client.web.web_settings import WebDefaults
from TikTokLive import TikTokLiveClient
from TikTokLive.events import CommentEvent

WebDefaults.tiktok_sign_url     = "https://api.tik.tools"   # was: https://tiktok.eulerstream.com
WebDefaults.tiktok_sign_api_key = "tk_your_key"

client = TikTokLiveClient(unique_id="@username")

@client.on(CommentEvent)
async def on_chat(ev): print(ev.user.unique_id, ":", ev.comment)

await client.connect()   # add fetch_live_check=False if running from a datacenter IP

# Or env-var (zero code change):
#   SIGN_API_URL=https://api.tik.tools SIGN_API_KEY=tk_your_key python app.py
// Direct @eulerstream/euler-api-sdk users — swap basePath
import { EulerStreamApiClient } from '@eulerstream/euler-api-sdk'

const client = new EulerStreamApiClient({
  basePath: 'https://api.tik.tools',
  apiKey:   'tk_your_key',
})

// Every webcast.* / premium.* / moderation.* method routes to tik.tools.
const res = await client.webcast.retrieveRoomId('username')
console.log(res.data.room_id)
2

진짜 API 키 받기 (준비되면)

데모 키 your_api_key도 가입 없이 쓸 수 있지만 IP당 WebSocket 1개 / 세션 10분 / 시간당 연결 6회로 제한돼요. 더 높은 한도와 Euler 엔드포인트 전체 호환이 필요하면 무료 Tik.Tools 키 받기.

엔드포인트 호환

모든 Euler 엔드포인트가 1:1로 대응

Tik.Tools는 Euler 엔드포인트 구성을 그대로 따라서, 이미 Euler 방식으로 통신하는 SDK도 패치 없이 계속 작동해요.

Euler StreamTik.Tools (같은 경로)요금제
POST /webcast/sign_urlPOST /webcast/sign_url데모
GET /webcast/check_aliveGET /webcast/check_alive데모
POST /webcast/fetchPOST /webcast/fetchBasic+
POST /webcast/ws_credentialsPOST /webcast/ws_credentialsBasic+
POST /webcast/sign_websocketPOST /webcast/sign_websocketBasic+
GET /webcast/room_idGET /webcast/room_id데모
POST /webcast/room_infoPOST /webcast/room_info데모
POST /webcast/bulk_live_checkPOST /webcast/bulk_live_checkBasic+
보너스 (Euler에 없음): 공개 티커, 랭킹데모
응답 형식 동일. sign_url은 { status_code, data: { signed_url, x_bogus, user_agent, cookies } } 형식을 반환해요. 기존 파서를 그대로 쓸 수 있어요.
응답 형식

똑같은 JSON에 이전 힌트까지

POST https://api.tik.tools/webcast/sign_url?apiKey=your_api_key
Body: { "url": "<upstream URL>" }

Response:
{
  "status_code": 0,
  "data": {
    "signed_url": "<signed upstream URL>",
    "x_bogus": "...",
    "user_agent": "Mozilla/5.0 ...",
    "cookies": "ttwid=<fresh visitor cookie>"
  }
}

무료 요금제로 이전과 첫 프로덕션 배포까지 충분해요

Sandbox + Basic 요금제 무료. 신용카드 필요 없어요. 서비스를 출시하면 더 높은 속도 제한을 쓸 수 있어요.