Live Streaming Endpoint
Comprehensive documentation for the JKT48Connect API live streaming endpoints to fetch live member data from IDN, Showroom, and YouTube.
GET /api/jkt48/live
This endpoint returns data for all JKT48 members who are currently broadcasting live streams across all supported platforms (IDN Live, Showroom, YouTube).
Request
GET https://v2.jkt48connect.com/api/jkt48/live?apikey=YOUR_API_KEY| Parameter | Type | Required | Description |
|---|---|---|---|
apikey | string | ✅ | API key for authentication |
Example Response
[
{
"name": "Fritzy",
"img": "https://cdn.idntimes.com/content-images/post/20250406/717109e0.jpg",
"img_alt": "https://cdn.idn.media/idnaccount/avatar/500/f4d25811.webp",
"url_key": "jkt48_fritzy",
"slug": "yuk-diborong-250406190348",
"room_id": 510011,
"is_graduate": false,
"is_group": false,
"chat_room_id": "arn:aws:ivschat:us-east-1:050891932989:room/dsKjuKRqfoRE",
"started_at": "2025-04-06T12:03:58.000Z",
"streaming_url_list": [
{
"label": "original",
"quality": 1,
"url": "https://example.com/stream.m3u8"
}
],
"type": "idn"
}
]Response Structure
| Field | Type | Description |
|---|---|---|
name | string | Member's name |
img | string | Primary thumbnail/image URL |
img_alt | string | Alternative image/avatar URL |
url_key | string | Unique identifier for the member's URL |
slug | string | Current live stream slug |
room_id | number | Streaming room ID |
is_graduate | boolean | Whether the member has graduated |
is_group | boolean | Whether this is a group live stream |
chat_room_id | string | Chat room ID for the stream |
started_at | string | Stream start time (ISO 8601 format) |
streaming_url_list | array | List of available streaming URLs |
type | string | Platform: "idn", "showroom", or "youtube" |
Streaming URL List Object
| Field | Type | Description |
|---|---|---|
label | string | Quality label (e.g., "original", "720p") |
quality | number | Quality level (1 = highest) |
url | string | Stream URL (usually an HLS .m3u8 link) |
GET /api/jkt48/live/idn
A dedicated endpoint to fetch live streaming data exclusively from IDN Live.
Request
GET https://v2.jkt48connect.com/api/jkt48/live/idn?apikey=YOUR_API_KEYThe response format is identical to /api/jkt48/live, but only returns members currently streaming on the IDN platform.
Supported Platforms
| Platform | Type Value | Description |
|---|---|---|
| IDN Live | "idn" | Indonesian live streaming platform |
| Showroom | "showroom" | Interactive live streaming platform |
| YouTube | "youtube" | YouTube live streams and premieres |
Usage Examples
JavaScript — Show Members Currently Live
const API_KEY = 'YOUR_API_KEY';
const BASE_URL = 'https://v2.jkt48connect.com';
async function getLiveMembers() {
try {
const response = await fetch(`${BASE_URL}/api/jkt48/live?apikey=${API_KEY}`);
if (!response.ok) {
throw new Error(`HTTP error! status: ${response.status}`);
}
const data = await response.json();
if (data.length === 0) {
console.log('No members are currently live right now.');
return;
}
console.log(`🔴 ${data.length} members are live!\n`);
// Group by platform
const platforms = {};
data.forEach(member => {
if (!platforms[member.type]) platforms[member.type] = [];
platforms[member.type].push(member);
});
Object.entries(platforms).forEach(([platform, members]) => {
console.log(`📺 ${platform.toUpperCase()} (${members.length} members):`);
members.forEach(member => {
const startedAt = new Date(member.started_at);
console.log(` • ${member.name} — started at ${startedAt.toLocaleTimeString()}`);
});
});
return data;
} catch (error) {
console.error('Error:', error.message);
}
}
getLiveMembers();Python — Monitor Live Streams Grouped by Platform
import requests
from datetime import datetime
API_KEY = 'YOUR_API_KEY'
BASE_URL = 'https://v2.jkt48connect.com'
def get_live_members():
try:
response = requests.get(f"{BASE_URL}/api/jkt48/live?apikey={API_KEY}")
response.raise_for_status()
data = response.json()
if not data:
print("No members are currently live right now.")
return
print(f"🔴 {len(data)} members are live!\n")
# Group by platform
platforms = {}
for member in data:
platform = member['type']
if platform not in platforms:
platforms[platform] = []
platforms[platform].append(member)
for platform, members in platforms.items():
print(f"📺 {platform.upper()} ({len(members)} members):")
for member in members:
# Parse the ISO time properly
started = datetime.fromisoformat(
member['started_at'].replace('Z', '+00:00')
)
print(f" • {member['name']} — started at {started.strftime('%H:%M:%S')}")
return data
except requests.exceptions.RequestException as e:
print(f"Error: {e}")
get_live_members()Tips
- The response will be an empty array
[]if no members are currently live - Use the
typefield to filter broadcasts by platform - The
streaming_url_listfield provides HLS URLs that can be played in supported video players started_atuses the ISO 8601 UTC format