@n8ventures/isyoutubelive
v2.2.0
Published
A simple Node.js module to check if a YouTube channel is live or get its latest uploaded video without using YouTube API.
Maintainers
Readme
Originally created by Amith VP, maintained and extended by N8VENTURES.
NPM Module to check whether YouTube channel is live or not. WITHOUT YOUTUBE API KEY Return object with live status, video title, video url.
Now also returns latest YouTube channel upload with checkVideo(channel) and latest YouTube short with checkShort(channel)
Installation
npm i @n8ventures/isyoutubeliveUsage
const { checkLive, checkVideo, checkShort } = require("@n8ventures/isyoutubelive")
const channel = '@LinusTechTips'; // Can be Channel ID, @Handle, YT URLs
const liveData = await checkLive(channel);
console.log('Live Data:', liveData);
const videoData = await checkVideo(channel);
console.log('Latest Video:', videoData);
const shortData = await checkShort(channel);
console.log('Latest Short:', shortData);Supported channel formats:
'@LinusTechTips'
'UCXuqSBlHAE6Xw-yeJA0Tunw'
'https://www.youtube.com/@LinusTechTips'
'https://www.youtube.com/channel/UCXuqSBlHAE6Xw-yeJA0Tunw'checkLive() returns
{
is_live: boolean,
is_upcoming: boolean,
title: string,
url: string | null,
videoId: string | null,
startTime: string | null,
} checkVideo() returns
{
title: string,
url: string,
publishedTime: string,
videoId: string,
isMembersOnly: boolean,
latestIsMembersOnly?: boolean,
warning: string | null,
} checkShort() returns the same structure as checkVideo()
{
title: string,
url: string,
publishedTime: string,
videoId: string,
isMembersOnly: boolean,
latestIsMembersOnly?: boolean,
warning: string | null,
} If you want the possibility of including Members Only videos/shorts, you can use mode=false meaning it should try to detect Members Only stuff. Due to how YouTube exposes channel data, detection of members-only uploads is not guaranteed in all cases.
await checkVideo(channel, false);
await checkShort(channel, false);mode='membersOnly' will only capture Members Only content. However this will not include the latestIsMembersOnly field.
await checkVideo(channel, 'membersOnly');
await checkShort(channel, 'membersOnly');More info below
Members-only mode
When using:
await checkVideo(channel, 'membersOnly');or
await checkShort(channel, 'membersOnly');the returned object will not include:
latestIsMembersOnlybecause all returned results are already members-only content.
Additional information
warning contains additional information when the package encounters limitations while detecting content. Otherwise it will be null.
startTime is an ISO 8601 timestamp and is only available for upcoming streams.
Example:
{
startTime: '2026-06-17T14:00:00.000Z'
}
