The old player.smotrim.ru/iframe/stream/live_id/N embeds are all dead -
Smotrim's site redesign replaced them with a client-side API
(player-api.smotrim.ru/api/v1/channel/{id}) that returns the current
stream URL. Traced the old numeric id -> new channel id -> stream
mapping from the site's own JS bundle:
- Россия 1 (id 2961 -> channel 1): live.smotrim.ru, no signature, should
be durable
- Россия-Культура (id 19201 -> channel 4): same, unsigned
- Москва 24 (id 1661 -> channel 76): stream.smotrim.ru, carries a `sign`
query param
- Вести ФМ (id 52035 -> channel 199): same, signed
- Соловьёв Live (id 63338 -> channel 292): same, signed
The three signed URLs were stable across repeated fetches in testing
(not IP-bound), but could still rotate server-side - if the checker
flags one of these dead again, re-derive it from
player-api.smotrim.ru/api/v1/channel/{id} rather than assuming the
channel itself is gone.
Not fixed (researched, no working replacement found):
- РТР-Планета: removed from Smotrim entirely - VGTRK now describes it
as satellite-only for the diaspora, no web stream exists
- Катунь 24 / Кубань 24: both stations' own sites just embed the same
dead OK.ru video; OK.ru's underlying stream URL is IP-locked and
expires in ~1 hour, unusable as a static list entry
- Саратов 24: dropped its web player entirely, now Telegram-only
Wikimedia now rejects direct thumbnail requests for widths outside the
fixed set 20/40/60/120/250/330/500/960/1280/1920/3840px. Rounded all
remaining off-size occurrences to the nearest allowed width.
Wikimedia only serves fixed thumbnail widths (20/40/60/120/250/330/
500/960/1280/1920/3840px); 640px returns a 400 error. Switched all
occurrences to the nearest allowed size, 500px.
Fixes#1135
Cross-referenced the CI iptv-checker's failed-channel report against
each country list, verified every replacement URL with curl before
applying, and removed one genuine duplicate (Telecolor International).
Real geo-blocked national-broadcaster 403s and CI-runner false
positives (esp. HTTP 408 timeouts, which turned out unreliable) were
left untouched rather than guessed at.
Italy: 6 fixed, 1 duplicate removed
Spain: 16 fixed
Russia: 3 fixed
UAE: 13 fixed
USA: 10 fixed
PR #963 dumped 84 mixed-country channels into a single raw .m3u8 file
in the repo root, which doesn't follow the contribution format at all
and mostly duplicates channels already in the repo (BBC News, DW,
Al Jazeera, CGTN, TRT World, NHK World, Arirang, KBS World, Bloomberg,
Carousel, Domashniy, Friday, RBK are all already present under
lists/zz_news_en.md, korea.md or russia.md with different sources).
Tested every URL directly; only kept ones that actually work.
- New lists/mongolia.md: 40 working national Mongolian channels
(skygo.mn), 8 dead ones filed under its own Invalid section
(TV4, Premier Sports 1-5, Mongol TV, NTN).
- New lists/kazakhstan.md: Balapan TV and Qazaqstan International;
QazSport redirects to a geoblock placeholder, filed as Invalid.
- lists/russia.md: added "Че" (Peretz/Che), a genuine RTRS multiplex-2
free-to-air channel that wasn't in the list yet.
- lists/zz_movies.md: added "Action Hollywood Movies" (Amagi FAST
channel), fits the existing Pluto TV/FilmRise/Stirr pattern there.
- make_playlist.py: added "mongolia": "MN" and "kazakhstan": "KZ" to
COUNTRY_CODES; README.md and flag_order.txt updated to match.
Left out: the various *-samsungnz.amagi.tv channels (Samsung TV Plus
NZ's own licensed feeds, not a public source), CJ OnStyle (home
shopping), NHK World Premium (paid tier), BBC Earth/Cbeebies Asia
feeds and FashionTV (no clean existing home, source legitimacy
unclear) - can revisit if there's a good place for them.
* Fix Russian channels operated by VGTRK
* Fix Первый канал
* Fix НТВ, ТВ Центр, Спас, СТС, Домашний, Звезда, RT Д Русский
RT Д Русский is blocked in the European Union
* Fix
* Fix ТНТ
* Fix Матч ТВ, Карусель, Рен ТВ and Муз-ТВ
* Fix Пятый канал, ОТР, ТВ-3, Пятница!