Πέρνα από Euler Stream σε Tik.Tools με μία γραμμή config
Κράτα το TikTokLive (Python) ή το tiktok-live-connector (Node). Άλλαξε τον host του sign provider. Ίδια ονόματα events, ίδια SDKs, ίδιος κώδικας.
Δες το να δουλεύει εδώ ακριβώς
Το ίδιο handshake που δίνει το Euler: έκδοση signed token -> WebSocket. Το iframe παρακάτω τρέχει την ακριβή έκδοση HTML του snippet πάνω στο api.tik.tools - κάνε copy-paste και θα πάρεις την ίδια έξοδο.
Δύο βήματα. Μηδέν refactor.
Άλλαξε τον host του sign provider
Δύο γραμμές config στο init του SDK σου - στρέψε το signing backend στο https://api.tik.tools αντί για το https://tiktok.eulerstream.com. Οι υπάρχοντες event handlers, τα room IDs και ο κώδικας του SDK μένουν ίδια. Όλα τα πακέτα API του tik.tools δουλεύουν ως άμεση αντικατάσταση· το demo key 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)Πάρε κανονικό API key (όταν είσαι έτοιμος)
Το demo key your_api_key δουλεύει χωρίς εγγραφή, αλλά έχει όριο 1 WebSocket / sessions των 10 λεπτών / 6 συνδέσεις την ώρα ανά IP. Πάρε δωρεάν key Tik.Tools για μεγαλύτερα όρια + πλήρη αντιστοιχία με τα endpoints του Euler.
Κάθε endpoint του Euler αντιστοιχεί 1:1
Το Tik.Tools αντιγράφει τα endpoints του Euler, ώστε τα SDKs που ήδη μιλούν Euler να συνεχίζουν να δουλεύουν χωρίς κανένα patch.
| Euler Stream | Tik.Tools (ίδιο path) | Πακέτο |
|---|---|---|
POST /webcast/sign_url | POST /webcast/sign_url | Demo |
GET /webcast/check_alive | GET /webcast/check_alive | Demo |
POST /webcast/fetch | POST /webcast/fetch | Basic+ |
POST /webcast/ws_credentials | POST /webcast/ws_credentials | Basic+ |
POST /webcast/sign_websocket | POST /webcast/sign_websocket | Basic+ |
GET /webcast/room_id | GET /webcast/room_id | Demo |
POST /webcast/room_info | POST /webcast/room_info | Demo |
POST /webcast/bulk_live_check | POST /webcast/bulk_live_check | Basic+ |
| Bonus (δεν υπάρχει στο Euler): δημόσιο ticker, κατατάξεις | Demo | |
{ status_code, data: { signed_url, x_bogus, user_agent, cookies } }. Ο parser που έχεις ήδη συνεχίζει να δουλεύει.Ίδιο JSON, μαζί με ένα hint για τη μετάβαση
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>"
}
}Το δωρεάν πακέτο καλύπτει τη μετάβαση + το πρώτο σου production deploy
Πακέτα Sandbox + Basic δωρεάν. Χωρίς πιστωτική κάρτα. Μεγαλύτερα rate limits όταν βγεις στον αέρα.