iptv-checker
Version:
Node.js CLI tool for checking links in IPTV playlists
156 lines (155 loc) • 5.91 kB
JavaScript
export default {
header: { attrs: {}, raw: '#EXTM3U' },
items: [
{
name: '30A We Love Cars',
tvg: { id: '', name: '', logo: '', url: '', rec: '', shift: '' },
group: { title: '' },
http: { referrer: '', 'user-agent': '' },
url: 'https://30a-tv.com/feeds/vidaa/cars.m3u8',
raw: '#EXTINF:-1,30A We Love Cars\r\nhttps://30a-tv.com/feeds/vidaa/cars.m3u8',
line: 2,
catchup: { type: '', days: '', source: '' },
timeshift: '',
lang: '',
status: {
ok: true,
code: 'OK',
metadata: {
streams: [
{
index: 0,
codec_name: 'h264',
codec_long_name: 'H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10',
profile: 'Main',
codec_type: 'video',
codec_tag_string: '[27][0][0][0]',
codec_tag: '0x001b',
width: 1280,
height: 720,
coded_width: 1280,
coded_height: 720,
closed_captions: 0,
film_grain: 0,
has_b_frames: 1,
sample_aspect_ratio: '1:1',
display_aspect_ratio: '16:9',
pix_fmt: 'yuv420p',
level: 31,
chroma_location: 'left',
refs: 1,
is_avc: 'false',
nal_length_size: '0',
r_frame_rate: '30000/1001',
avg_frame_rate: '30000/1001',
time_base: '1/90000',
start_pts: 1750625,
start_time: '19.451389',
bits_per_raw_sample: '8',
extradata_size: 45,
disposition: {
default: 0,
dub: 0,
original: 0,
comment: 0,
lyrics: 0,
karaoke: 0,
forced: 0,
hearing_impaired: 0,
visual_impaired: 0,
clean_effects: 0,
attached_pic: 0,
timed_thumbnails: 0,
non_diegetic: 0,
captions: 0,
descriptions: 0,
metadata: 0,
dependent: 0,
still_image: 0,
multilayer: 0
},
tags: { variant_bitrate: '240000' }
},
{
index: 1,
codec_name: 'aac',
codec_long_name: 'AAC (Advanced Audio Coding)',
profile: 'LC',
codec_type: 'audio',
codec_tag_string: '[15][0][0][0]',
codec_tag: '0x000f',
sample_fmt: 'fltp',
sample_rate: '48000',
channels: 2,
channel_layout: 'stereo',
bits_per_sample: 0,
initial_padding: 0,
r_frame_rate: '0/0',
avg_frame_rate: '0/0',
time_base: '1/90000',
start_pts: 1749483,
start_time: '19.438700',
disposition: {
default: 0,
dub: 0,
original: 0,
comment: 0,
lyrics: 0,
karaoke: 0,
forced: 0,
hearing_impaired: 0,
visual_impaired: 0,
clean_effects: 0,
attached_pic: 0,
timed_thumbnails: 0,
non_diegetic: 0,
captions: 0,
descriptions: 0,
metadata: 0,
dependent: 0,
still_image: 0,
multilayer: 0
},
tags: { variant_bitrate: '240000', language: 'eng' }
}
],
format: {
filename: 'https://30a-tv.com/feeds/vidaa/cars.m3u8',
nb_streams: 2,
nb_programs: 1,
nb_stream_groups: 0,
format_name: 'hls',
format_long_name: 'Apple HTTP Live Streaming',
start_time: '19.438700',
size: '207',
probe_score: 100
},
requests: []
}
}
},
{
name: 'Pluto TV Top Gear',
tvg: {
id: 'PlutoTVTopGear.it',
name: '',
logo: 'https://images.pluto.tv/channels/64c109a4798def0008a6e03e/thumbnail.jpg',
url: '',
rec: '',
shift: ''
},
group: { title: 'Auto;Comedy;Entertainment' },
http: {
referrer: 'https://pluto.tv/it/live-tv/64c109a4798def0008a6e03e',
'user-agent': ''
},
url: 'https://stitcher-ipv4.pluto.tv/v1/stitch/embed/hls/channel/64c109a4798def0008a6e03e/master.m3u8?advertisingId={PSID}&appVersion=unknown&deviceDNT={TARGETOPT}&deviceId={PSID}&deviceLat=0&deviceLon=0&deviceMake=samsung&deviceModel=samsung&deviceType=samsung-tvplus&deviceVersion=unknown&embedPartner=samsung-tvplus&profileFloor=&profileLimit=&samsung_app_domain={APP_DOMAIN}&samsung_app_name={APP_NAME}&us_privacy=1YNY',
raw: '#EXTINF:-1 tvg-id="PlutoTVTopGear.it" tvg-logo="https://images.pluto.tv/channels/64c109a4798def0008a6e03e/thumbnail.jpg" group-title="Auto;Comedy;Entertainment",Pluto TV Top Gear\r\n#EXTVLCOPT:http-referrer=https://pluto.tv/it/live-tv/64c109a4798def0008a6e03e\r\nhttps://stitcher-ipv4.pluto.tv/v1/stitch/embed/hls/channel/64c109a4798def0008a6e03e/master.m3u8?advertisingId={PSID}&appVersion=unknown&deviceDNT={TARGETOPT}&deviceId={PSID}&deviceLat=0&deviceLon=0&deviceMake=samsung&deviceModel=samsung&deviceType=samsung-tvplus&deviceVersion=unknown&embedPartner=samsung-tvplus&profileFloor=&profileLimit=&samsung_app_domain={APP_DOMAIN}&samsung_app_name={APP_NAME}&us_privacy=1YNY',
line: 4,
catchup: { type: '', days: '', source: '' },
timeshift: '',
lang: '',
status: { ok: false, code: 'HTTP_BAD_REQUEST', message: 'HTTP 400 Bad Request' }
}
]
}