From be44275cf17705bbe58905448aabbf92d94f96c5 Mon Sep 17 00:00:00 2001 From: shmyga Date: Fri, 26 Jun 2026 16:36:40 +0300 Subject: [PATCH] feat(schedule): implement multiple schedule providers --- gallery/easel/depends/api.py | 9 + gallery/easel/depends/schedule.py | 9 + gallery/easel/depends/weather.py | 8 +- gallery/easel/route/api/schedule.py | 4 +- gallery/easel/route/view/schedule/__init__.py | 30 +- .../route/view/schedule/templates/index.html | 64 +- gallery/painting/matchtv/api.py | 30 +- gallery/painting/yandextv/api.py | 36 +- gallery/sketch/bundle.py | 8 - gallery/sketch/catalog.py | 14 - gallery/sketch/schedule/api.py | 16 +- gallery/sketch/schedule/cached.py | 17 +- gallery/sketch/schedule/catalog.py | 21 - gallery/sketch/schedule/model.py | 22 +- gallery/sketch/source.py | 5 +- static/src/index.ts | 1 + static/src/schedule/schedule.ts | 109 ++++ tests/data/matchtv/__init__.py | 1 + tests/data/matchtv/channels.json | 588 ++++++++++++++++++ tests/data/yandextv/__init__.py | 1 + tests/data/yandextv/suggest-tv2.json | 423 +++++++++++++ tests/test_matchtv_api.py | 10 +- tests/test_yandextv_api.py | 13 +- 23 files changed, 1271 insertions(+), 168 deletions(-) create mode 100644 gallery/easel/depends/api.py create mode 100644 gallery/easel/depends/schedule.py delete mode 100644 gallery/sketch/catalog.py delete mode 100644 gallery/sketch/schedule/catalog.py create mode 100644 static/src/schedule/schedule.ts create mode 100644 tests/data/matchtv/channels.json create mode 100644 tests/data/yandextv/suggest-tv2.json diff --git a/gallery/easel/depends/api.py b/gallery/easel/depends/api.py new file mode 100644 index 0000000..3d6b291 --- /dev/null +++ b/gallery/easel/depends/api.py @@ -0,0 +1,9 @@ +from gallery.easel.core import AppRequest +from gallery.sketch.api import API + + +def api_resolver(api_type: type[API]): + def get_api(request: AppRequest, provider: str | None = None) -> API: + return request.app.state.api.get_api(api_type, provider) + + return get_api diff --git a/gallery/easel/depends/schedule.py b/gallery/easel/depends/schedule.py new file mode 100644 index 0000000..132cafe --- /dev/null +++ b/gallery/easel/depends/schedule.py @@ -0,0 +1,9 @@ +from typing import Annotated + +from fastapi import Depends + +from gallery.sketch.schedule.api import ScheduleApi + +from .api import api_resolver + +ScheduleApiDepends = Annotated[ScheduleApi, Depends(api_resolver(ScheduleApi))] diff --git a/gallery/easel/depends/weather.py b/gallery/easel/depends/weather.py index e0db605..2fb3c14 100644 --- a/gallery/easel/depends/weather.py +++ b/gallery/easel/depends/weather.py @@ -2,12 +2,8 @@ from typing import Annotated from fastapi import Depends -from gallery.easel.core import AppRequest from gallery.sketch.weather.api import WeatherApi +from .api import api_resolver -async def get_weather_api(request: AppRequest, provider: str | None = None) -> WeatherApi: - return request.app.state.api.get_weather(provider) - - -WeatherApiDepends = Annotated[WeatherApi, Depends(get_weather_api)] +WeatherApiDepends = Annotated[WeatherApi, Depends(api_resolver(WeatherApi))] diff --git a/gallery/easel/route/api/schedule.py b/gallery/easel/route/api/schedule.py index ea9d39a..e276a1a 100644 --- a/gallery/easel/route/api/schedule.py +++ b/gallery/easel/route/api/schedule.py @@ -3,13 +3,13 @@ import datetime from fastapi import APIRouter from gallery.easel.core import AppRequest -from gallery.sketch.schedule.model import ChannelId, Schedule +from gallery.sketch.schedule.model import Channel, Schedule router = APIRouter(prefix="/schedule") @router.get("/channels") -async def get_api_schedule_channels(request: AppRequest) -> list[ChannelId]: +async def get_api_schedule_channels(request: AppRequest) -> list[Channel]: schedule_api = request.app.state.api.schedule return await schedule_api.get_channels() diff --git a/gallery/easel/route/view/schedule/__init__.py b/gallery/easel/route/view/schedule/__init__.py index 13c64a9..8b6b057 100644 --- a/gallery/easel/route/view/schedule/__init__.py +++ b/gallery/easel/route/view/schedule/__init__.py @@ -1,26 +1,18 @@ import datetime from pathlib import Path -from typing import Annotated -from fastapi import APIRouter, Depends +from fastapi import APIRouter from fastapi.responses import HTMLResponse, RedirectResponse from gallery.easel.core import AppRequest +from gallery.easel.depends.schedule import ScheduleApiDepends from gallery.sketch.schedule.api import ScheduleApi -from gallery.sketch.schedule.catalog import BUNDLE from ..common.utils.tag import TagType, TagUtil from ..common.utils.template import build_templates from .filters import timedelta_format -async def get_schedule_api(request: AppRequest, provider: str | None = None) -> ScheduleApi: - return request.app.state.api.get_schedule(provider) - - -ScheduleApiDepends = Annotated[ScheduleApi, Depends(get_schedule_api)] - - def context_procesor(request: AppRequest) -> dict: return { "providers": request.app.state.api.get_api_providers(ScheduleApi.TYPE), @@ -32,20 +24,20 @@ templates = build_templates( { "timedelta_format": timedelta_format, }, + context_procesor, ) router = APIRouter(prefix="/schedule") @router.get("/", response_class=HTMLResponse) -async def get_schedule_list(request: AppRequest, schedule_api: ScheduleApiDepends): - channels = await schedule_api.get_channels() - channels_data = BUNDLE.select_items(channels) +async def get_schedule_index(request: AppRequest, schedule_api: ScheduleApiDepends, query: str | None = None): + channels = (await schedule_api.find_channels(query)) if query else [] return templates.TemplateResponse( request=request, name="index.html", context={ - "channels": channels_data, + "channels": channels, }, ) @@ -53,15 +45,15 @@ async def get_schedule_list(request: AppRequest, schedule_api: ScheduleApiDepend @router.get("/tag/{tag}", response_class=HTMLResponse) async def get_schedule_tag(request: AppRequest, schedule_api: ScheduleApiDepends, tag: str, live: bool = False): tag_value = TagUtil.parse_tag(tag) - results = await schedule_api.get_all_schedules(tag_value.date) + # results = await schedule_api.get_all_schedules(tag_value.date) return templates.TemplateResponse( request=request, name="schedule.html", context={ "tag_util": TagUtil, "datetime": datetime, - "response": results[0], - "responses": results, + # "response": results[0], + # "responses": results, "live": live, }, ) @@ -72,11 +64,11 @@ async def get_channel_default(channel: str): return RedirectResponse(f"{channel}/tag/today") -@router.get("/{channel}/tag/{tag}", response_class=HTMLResponse) +@router.get("/{provider}/{channel}/tag/{tag}", response_class=HTMLResponse) async def get_channel_tag(request: AppRequest, schedule_api: ScheduleApiDepends, channel: str, tag: str): tag_value = TagUtil.parse_tag(tag) if tag_value.type == TagType.DAY: - response = await schedule_api.get_channel_schedule(channel, tag_value.date) + response = await schedule_api.get_schedule(channel, tag_value.date) else: raise ValueError(tag) return templates.TemplateResponse( diff --git a/gallery/easel/route/view/schedule/templates/index.html b/gallery/easel/route/view/schedule/templates/index.html index 0a93198..f88fe85 100644 --- a/gallery/easel/route/view/schedule/templates/index.html +++ b/gallery/easel/route/view/schedule/templates/index.html @@ -3,16 +3,60 @@ {% block content %}

{{_("TV program")}}

-
- - Все - +
+
+ + + + + +
+
+{% if channels %} +
+ +
+{% endif %} + + {% endblock %} \ No newline at end of file diff --git a/gallery/painting/matchtv/api.py b/gallery/painting/matchtv/api.py index 7075f3a..633e7a4 100644 --- a/gallery/painting/matchtv/api.py +++ b/gallery/painting/matchtv/api.py @@ -1,10 +1,11 @@ import datetime +import json import logging from bs4 import BeautifulSoup from gallery.sketch.schedule.api import ScheduleApi -from gallery.sketch.schedule.model import Channel, ChannelId, Schedule, ScheduleValue +from gallery.sketch.schedule.model import Channel, Schedule, ScheduleValue from gallery.sketch.source import ApiSource logger = logging.getLogger("matchtv") @@ -14,18 +15,17 @@ class MatchTvApi(ScheduleApi): PROVIDER = "matchtv" SOURCE = ApiSource("https://matchtv.ru") - async def get_channels(self) -> list[ChannelId]: - return [ - ChannelId.MATCH_TV, - ChannelId.MATCH_IGRA, - ChannelId.MATCH_ARENA, - ChannelId.MATCH_FUTBOL_1, - ChannelId.MATCH_FUTBOL_2, - ChannelId.MATCH_FUTBOL_3, - ChannelId.MATCH_STRANA, - ] + async def find_channels(self, query: str) -> list[Channel]: + endpoint = "api/v1/channels" + data = json.loads(await self.SOURCE.request(endpoint)) + result = [] + query = query.lower() + for item in data["result"]: + if query in item["name"].lower() or query in item["alias"]: + result.append(Channel(id=str(item["id"]), name=item["name"], provider=self.provider)) + return result - async def get_channel_schedule(self, channel_id: ChannelId, date: datetime.date) -> Schedule: + async def get_channel_schedule(self, channel_id: str, date: datetime.date) -> Schedule: endpoint = f"tvguide/{channel_id}?date={date:%Y%m%d}" data = await self.SOURCE.request(endpoint) soup = BeautifulSoup(data, features="html.parser") @@ -50,4 +50,8 @@ class MatchTvApi(ScheduleApi): if prev_value is not None: prev_value.end = item_date prev_value = value - return Schedule(channel=Channel(id=channel_id, name=channel_name), date=date, values=values) + return Schedule( + channel=Channel(id=channel_id, name=channel_name, provider=self.provider), + date=date, + values=values, + ) diff --git a/gallery/painting/yandextv/api.py b/gallery/painting/yandextv/api.py index f3c66b4..39267ce 100644 --- a/gallery/painting/yandextv/api.py +++ b/gallery/painting/yandextv/api.py @@ -1,27 +1,15 @@ import datetime +import json import logging from bs4 import BeautifulSoup from gallery.sketch.schedule.api import ScheduleApi -from gallery.sketch.schedule.model import Channel, ChannelId, Schedule, ScheduleValue +from gallery.sketch.schedule.model import Channel, Schedule, ScheduleValue from gallery.sketch.source import ApiSource logger = logging.getLogger("matchtv") -CHANNELS_MAP: dict[ChannelId, str] = { - ChannelId.MATCH_TV: "match-tv-49", - ChannelId.MATCH_IGRA: "match-igra-1174", - ChannelId.MATCH_ARENA: "match-arena-1173", - ChannelId.MATCH_FUTBOL_1: "match-futbol-1-646", - ChannelId.MATCH_FUTBOL_2: "match-futbol-2-593", - ChannelId.MATCH_FUTBOL_3: "match-futbol-3-797", - ChannelId.MATCH_STRANA: "match-strana-1356", - ChannelId.MATCH_PLANETA: "match-planeta-1177", - # ChannelId.EUROSPORT: "eurosport-677", - # ChannelId.EUROSPORT_2: "eurosport-2-720", - ChannelId.START: "start-103", -} HEADERS: dict[str, str] = { "Accept": ( @@ -57,11 +45,17 @@ class YandexTvApi(ScheduleApi): PROVIDER = "yandextv" SOURCE = ApiSource("https://tv.yandex.ru", headers=HEADERS) - async def get_channels(self) -> list[ChannelId]: - return list(CHANNELS_MAP.keys()) + async def find_channels(self, query: str) -> list[Channel]: + url = f"https://suggest-multi.yandex.ru/suggest-tv2?v=4&uil=ru&lr=10&count_channels=4&count_programs=4&sn=50&part={query}" + _, values = json.loads(await self.SOURCE.request(url)) + result = [] + for _, name, content in values[:-1]: + channel_id = content["url"].split("/")[-1] + result.append(Channel(id=channel_id, name=name, provider=self.provider)) + return result - async def get_channel_schedule(self, channel_id: ChannelId, date: datetime.date) -> Schedule: - endpoint = f"channel/{CHANNELS_MAP[channel_id]}?date={date:%Y-%m-%d}" + async def get_channel_schedule(self, channel_id: str, date: datetime.date) -> Schedule: + endpoint = f"channel/{channel_id}?date={date:%Y-%m-%d}" data = await self.SOURCE.request(endpoint) soup = BeautifulSoup(data, features="html.parser") if soup.select_one(".CheckboxCaptcha") is not None: @@ -85,4 +79,8 @@ class YandexTvApi(ScheduleApi): if prev_value is not None: prev_value.end = item_date prev_value = value - return Schedule(channel=Channel(id=channel_id, name=channel_name), date=date, values=values) + return Schedule( + channel=Channel(id=channel_id, name=channel_name, provider=self.provider), + date=date, + values=values, + ) diff --git a/gallery/sketch/bundle.py b/gallery/sketch/bundle.py index 70356d0..f2f49c0 100644 --- a/gallery/sketch/bundle.py +++ b/gallery/sketch/bundle.py @@ -1,6 +1,4 @@ from .api import API, Api -from .schedule.api import ScheduleApi -from .weather.api import WeatherApi class ApiBundle: @@ -21,9 +19,3 @@ class ApiBundle: if provider is None or provider == value.provider: return value raise ValueError(api_type, provider) - - def get_weather(self, provider: str | None = None) -> WeatherApi: - return self.get_api(WeatherApi, provider) - - def get_schedule(self, provider: str | None = None) -> ScheduleApi: - return self.get_api(ScheduleApi, provider) diff --git a/gallery/sketch/catalog.py b/gallery/sketch/catalog.py deleted file mode 100644 index c0d9afc..0000000 --- a/gallery/sketch/catalog.py +++ /dev/null @@ -1,14 +0,0 @@ -from typing import Generic, TypeVar - -T = TypeVar("T") - - -class CatalogBundle(Generic[T]): - def __init__(self, items: list[T]) -> None: - self._items_by_id = {item.id: item for item in items} - - def get_item(self, item_id: str) -> T: - return self._items_by_id[item_id] - - def select_items(self, ids: list[str]) -> list[T]: - return [self._items_by_id[id_] for id_ in ids] diff --git a/gallery/sketch/schedule/api.py b/gallery/sketch/schedule/api.py index 11abe2a..b6a3884 100644 --- a/gallery/sketch/schedule/api.py +++ b/gallery/sketch/schedule/api.py @@ -1,25 +1,15 @@ -import asyncio import datetime from ..api import Api -from .model import ChannelId, Schedule +from .model import Channel, Schedule class ScheduleApi(Api): TYPE = "schedule" INTERVAL: float = 0.5 - async def get_channels(self) -> list[ChannelId]: + async def find_channels(self, query: str) -> list[Channel]: raise NotImplementedError - async def get_channel_schedule(self, channel_id: ChannelId, date: datetime.date) -> Schedule: + async def get_schedule(self, channel_id: str, date: datetime.date) -> Schedule: raise NotImplementedError - - async def get_all_schedules(self, date: datetime.date) -> list[Schedule]: - channels = await self.get_channels() - results = [] - for channel in channels: - results.append(await self.get_channel_schedule(channel_id=channel, date=date)) - if self.INTERVAL > 0: - await asyncio.sleep(self.INTERVAL) - return results diff --git a/gallery/sketch/schedule/cached.py b/gallery/sketch/schedule/cached.py index ec36150..8563d36 100644 --- a/gallery/sketch/schedule/cached.py +++ b/gallery/sketch/schedule/cached.py @@ -6,7 +6,7 @@ from gallery.sketch.cached import CachedApi, CachePreset from gallery.util import TimeUnit from .api import ScheduleApi -from .model import ChannelId, Schedule +from .model import Channel, Schedule CACHE_PRESET = CachePreset(ttl=TimeUnit.HOUR * 6) @@ -15,11 +15,11 @@ class CachedScheduleApi(ScheduleApi, CachedApi[ScheduleApi]): CACHE_KEY = ScheduleApi.TYPE @cached( - key_builder=lambda fun, self: f"api.{self.CACHE_KEY}.{self.provider}.channels", + key_builder=lambda fun, self, query: f"api.{self.CACHE_KEY}.{self.provider}.find.{query}", **CACHE_PRESET._asdict(), ) - async def get_channels(self) -> list[ChannelId]: - return await self._api.get_channels() + async def find_channels(self, query: str) -> list[Channel]: + return await self._api.find_channels(query) @cached( key_builder=lambda fun, self, channel_id, date: ( @@ -27,12 +27,5 @@ class CachedScheduleApi(ScheduleApi, CachedApi[ScheduleApi]): ), **CACHE_PRESET._asdict(), ) - async def get_channel_schedule(self, channel_id: ChannelId, date: datetime.date) -> Schedule: + async def get_channel_schedule(self, channel_id: str, date: datetime.date) -> Schedule: return await self._api.get_channel_schedule(channel_id, date) - - @cached( - key_builder=lambda fun, self, date: (f"api.{self.CACHE_KEY}.{self.provider}.all.{date}"), - **CACHE_PRESET._asdict(), - ) - async def get_all_schedules(self, date: datetime.date) -> list[Schedule]: - return await self._api.get_all_schedules(date) diff --git a/gallery/sketch/schedule/catalog.py b/gallery/sketch/schedule/catalog.py deleted file mode 100644 index 6ed8afd..0000000 --- a/gallery/sketch/schedule/catalog.py +++ /dev/null @@ -1,21 +0,0 @@ -from gallery.sketch.catalog import CatalogBundle - -from .model import Channel, ChannelId - -BUNDLE = CatalogBundle( - [ - Channel(id=ChannelId.MATCH_TV, name="Матч ТВ"), - Channel(id=ChannelId.MATCH_IGRA, name="Матч! Игра"), - Channel(id=ChannelId.MATCH_ARENA, name="Матч! Арена"), - Channel(id=ChannelId.MATCH_FUTBOL_1, name="Футбол 1"), - Channel(id=ChannelId.MATCH_FUTBOL_2, name="Футбол 2"), - Channel(id=ChannelId.MATCH_FUTBOL_3, name="Футбол 3"), - Channel(id=ChannelId.MATCH_STRANA, name="Матч! Страна"), - Channel(id=ChannelId.MATCH_PLANETA, name="Матч! Планета"), - Channel(id=ChannelId.MATCH_PLANETA, name="Матч! Планета"), - Channel(id=ChannelId.EUROSPORT, name="Europsort"), - Channel(id=ChannelId.EUROSPORT_2, name="Europsort 2"), - Channel(id=ChannelId.START, name="Старт!"), - Channel(id=ChannelId.TEST, name="Тест"), - ] -) diff --git a/gallery/sketch/schedule/model.py b/gallery/sketch/schedule/model.py index 790c22b..533c3c2 100644 --- a/gallery/sketch/schedule/model.py +++ b/gallery/sketch/schedule/model.py @@ -1,5 +1,4 @@ import datetime -from enum import StrEnum from pydantic import BaseModel @@ -9,27 +8,10 @@ class Model(BaseModel): use_enum_values = True -class ChannelId(StrEnum): - MATCH_TV = "matchtv" - MATCH_IGRA = "igra" - MATCH_ARENA = "arena" - MATCH_FUTBOL_1 = "futbol-1" - MATCH_FUTBOL_2 = "futbol-2" - MATCH_FUTBOL_3 = "futbol-3" - MATCH_STRANA = "strana" - MATCH_PLANETA = "planeta" - EUROSPORT = "eurosport" - EUROSPORT_2 = "eurosport-2" - START = "start" - TEST = "test" - - def __str__(self) -> str: - return self.value - - class Channel(Model): - id: ChannelId + id: str name: str + provider: str class ScheduleValue(Model): diff --git a/gallery/sketch/source.py b/gallery/sketch/source.py index f2d602f..1b716c1 100644 --- a/gallery/sketch/source.py +++ b/gallery/sketch/source.py @@ -26,7 +26,10 @@ class ApiSource: self._headers = headers async def request(self, endpoint: str) -> str: - url = f"{self._base_url}/{endpoint}" + if endpoint.startswith("https:"): + url = endpoint + else: + url = f"{self._base_url}/{endpoint}" logger.info(url) headers = {"User-Agent": self._user_agent, **(self._headers or {})} async with aiohttp.ClientSession( diff --git a/static/src/index.ts b/static/src/index.ts index f0b971c..6c0de69 100644 --- a/static/src/index.ts +++ b/static/src/index.ts @@ -4,6 +4,7 @@ import "./language"; import "./main.scss"; import "./theme"; import "./weather/weather"; +import "./schedule/schedule"; document.addEventListener("DOMContentLoaded", (event) => { const tooltipTriggerList = document.querySelectorAll('[data-bs-toggle="tooltip"]'); diff --git a/static/src/schedule/schedule.ts b/static/src/schedule/schedule.ts new file mode 100644 index 0000000..c53de76 --- /dev/null +++ b/static/src/schedule/schedule.ts @@ -0,0 +1,109 @@ +export interface Channel { + id: string; + name: string; + provider: string; +} + +export class ScheduleChannelStorage { + private storageKey: string = "schedule:channels"; + + getAll(): Channel[] { + const objects = JSON.parse(window.localStorage.getItem(this.storageKey) || "{}"); + return Object.values(objects); + } + + add(object: Channel) { + const objects = JSON.parse(window.localStorage.getItem(this.storageKey) || "{}"); + objects[object.id] = object; + window.localStorage.setItem(this.storageKey, JSON.stringify(objects)); + } + + remove(id: string) { + const objects = JSON.parse(window.localStorage.getItem(this.storageKey) || "{}"); + delete objects[id]; + window.localStorage.setItem(this.storageKey, JSON.stringify(objects)); + } +} + +export class ScheduleChannelManager { + loadChannels(selector: string) { + const channels = window.scheduleChannelStorage.getAll(); + const container = document.querySelector(selector); + if (container) { + container.innerHTML = ""; + for (const channel of channels) { + const element = new ScheduleChannelElement(); + element.setAttribute("channel", JSON.stringify(channel)); + element.setAttribute("removable", ""); + container.appendChild(element); + } + } + } +} + +class ScheduleChannelElement extends HTMLElement { + static observedAttributes = ["channel", "removable"]; + + channel: Channel | null = null; + + constructor() { + super(); + this.handleClick = this.handleClick.bind(this); + this.handleRemoveClick = this.handleRemoveClick.bind(this); + } + + connectedCallback() { + this.channel = JSON.parse(this.getAttribute("channel") || "{}"); + this.innerHTML = ` + + + ${this.channel?.name} + + + ${this.channel?.provider} + + ✕ + + + `; + this.addEventListener("click", this.handleClick); + if (this.hasAttribute("removable")) { + this.querySelector("[data-remove]")?.addEventListener("click", this.handleRemoveClick); + } else { + this.querySelector("[data-remove]")?.remove(); + } + } + + disconnectedCallback() { + this.removeEventListener("click", this.handleClick); + this.querySelector("[data-remove]")?.removeEventListener("click", this.handleRemoveClick); + } + + handleClick(event: MouseEvent) { + if (this.channel) { + window.scheduleChannelStorage.add(this.channel); + } + } + + handleRemoveClick(event: MouseEvent) { + event.preventDefault(); + event.stopPropagation(); + if (this.channel) { + window.scheduleChannelStorage.remove(this.channel.id); + } + this.remove(); + } +} + +customElements.define("schedule-channel", ScheduleChannelElement); + +declare global { + interface Window { + scheduleChannelStorage: ScheduleChannelStorage; + scheduleChannelManager: ScheduleChannelManager; + } +} + +window.scheduleChannelStorage = new ScheduleChannelStorage(); +window.scheduleChannelManager = new ScheduleChannelManager(); diff --git a/tests/data/matchtv/__init__.py b/tests/data/matchtv/__init__.py index 89cb5b2..59c5bc3 100644 --- a/tests/data/matchtv/__init__.py +++ b/tests/data/matchtv/__init__.py @@ -6,5 +6,6 @@ MATCHTV_MOCK_SOURCE = MockSource( Path(__file__).parent, { "test": "test.html", + "channels": "channels.json", }, ) diff --git a/tests/data/matchtv/channels.json b/tests/data/matchtv/channels.json new file mode 100644 index 0000000..d2dc9f1 --- /dev/null +++ b/tests/data/matchtv/channels.json @@ -0,0 +1,588 @@ +{ + "result": [ + { + "id": 10, + "weight": 1, + "alias": "matchtv", + "name": "\u041c\u0430\u0442\u0447 \u0422\u0412", + "description": "\u003Cp\u003E\u003Cspan style=\u0022font-weight: 700;\u0022\u003E\u00ab\u041c\u0430\u0442\u0447 \u0422\u0412\u00bb\u003C\/span\u003E\u0026nbsp;\u2014 \u0440\u043e\u0441\u0441\u0438\u0439\u0441\u043a\u0438\u0439 \u0444\u0435\u0434\u0435\u0440\u0430\u043b\u044c\u043d\u044b\u0439 \u043e\u0431\u0449\u0435\u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0439 \u043a\u0430\u043d\u0430\u043b \u043e\u0026nbsp;\u0441\u043f\u043e\u0440\u0442\u0435 \u0438\u0026nbsp;\u0430\u043a\u0442\u0438\u0432\u043d\u043e\u043c \u043e\u0431\u0440\u0430\u0437\u0435 \u0436\u0438\u0437\u043d\u0438.\u003C\/p\u003E\u003Cp\u003E\u041c\u0430\u0442\u0447 \u0422\u0412\u0026nbsp;\u2014 \u044d\u0442\u043e\u0026nbsp;\u003Cspan style=\u0022font-weight: 700;\u0022\u003E\u0422\u0440\u0435\u0442\u044c\u044f \u043a\u043d\u043e\u043f\u043a\u0430\u003C\/span\u003E\u0026nbsp;\u0432\u0430\u0448\u0435\u0433\u043e \u0442\u0435\u043b\u0435\u0432\u0438\u0437\u043e\u0440\u0430!\u003Cbr\u003E\u003C\/p\u003E\u003Cp\u003E\u003Cspan style=\u0022font-weight: 700;\u0022\u003E\u0412\u0026nbsp;\u043d\u0430\u0448\u0435\u043c \u044d\u0444\u0438\u0440\u0435\u003C\/span\u003E\u0026nbsp;\u2014 \u043d\u043e\u0432\u043e\u0441\u0442\u0438, \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u043a\u0430 \u0438\u0026nbsp;\u0440\u0430\u0437\u0432\u043b\u0435\u043a\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b, \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u043b\u044c\u043d\u044b\u0435 \u0446\u0438\u043a\u043b\u044b \u0438\u0026nbsp;\u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0435 \u0440\u0435\u043f\u043e\u0440\u0442\u0430\u0436\u0438, \u0440\u0435\u0430\u043b\u0438\u0442\u0438- \u0438\u0026nbsp;\u0442\u043e\u043a-\u0448\u043e\u0443, \u0445\u0443\u0434\u043e\u0436\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0435 \u0444\u0438\u043b\u044c\u043c\u044b \u0438\u0026nbsp;\u0441\u0435\u0440\u0438\u0430\u043b\u044b:\u0026nbsp;\u003Cspan style=\u0022font-weight: 700;\u0022\u003E\u0432\u0441\u0451 \u043e\u0026nbsp;\u0440\u043e\u0441\u0441\u0438\u0439\u0441\u043a\u043e\u043c \u0438\u0026nbsp;\u043c\u0438\u0440\u043e\u0432\u043e\u043c \u0441\u043f\u043e\u0440\u0442\u0435!\u003C\/span\u003E\u003C\/p\u003E\u003Cp\u003E\u041a\u0430\u043d\u0430\u043b \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u044f\u0435\u0442 \u043b\u0443\u0447\u0448\u0438\u0445 \u0441\u043f\u043e\u0440\u0442\u0438\u0432\u043d\u044b\u0445\u0026nbsp;\u003Cspan style=\u0022font-weight: 700;\u0022\u003E\u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0442\u043e\u0440\u043e\u0432 \u0438\u0026nbsp;\u0432\u0435\u0434\u0443\u0449\u0438\u0445\u003C\/span\u003E. \u042d\u0442\u043e \u0441\u0430\u043c\u0430\u044f \u043e\u043f\u044b\u0442\u043d\u0430\u044f \u0438\u0026nbsp;\u043f\u0440\u043e\u0444\u0435\u0441\u0441\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u0430\u044f \u043a\u043e\u043c\u0430\u043d\u0434\u0430 \u043d\u0430\u0026nbsp;\u0440\u043e\u0441\u0441\u0438\u0439\u0441\u043a\u043e\u043c \u0422\u0412\u0026nbsp;\u2014\u0026nbsp;\u003Cspan style=\u0022font-weight: 700;\u0022\u003E\u0432\u043c\u0435\u0441\u0442\u0435 \u0441\u0026nbsp;\u043d\u0430\u0448\u0438\u043c\u0438 \u0437\u0440\u0438\u0442\u0435\u043b\u044f\u043c\u0438 \u0438\u0026nbsp;\u0431\u043e\u043b\u0435\u043b\u044c\u0449\u0438\u043a\u0430\u043c\u0438\u003C\/span\u003E\u0026nbsp;\u043c\u044b\u0026nbsp;\u043f\u0440\u043e\u0448\u043b\u0438 \u0432\u0441\u0435 \u0432\u0430\u0436\u043d\u0435\u0439\u0448\u0438\u0435 \u0442\u0443\u0440\u043d\u0438\u0440\u044b \u0438\u0026nbsp;\u043f\u0435\u0440\u0432\u0435\u043d\u0441\u0442\u0432\u0430 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0445 \u043b\u0435\u0442.\u003C\/p\u003E\u003Cp\u003E\u041c\u044b\u0026nbsp;\u0437\u043e\u0432\u0435\u043c \u0432\u0441\u0435\u0445 \u043f\u0440\u0438\u0441\u043e\u0435\u0434\u0438\u043d\u0438\u0442\u044c\u0441\u044f \u043a\u0026nbsp;\u0441\u043e\u043e\u0431\u0449\u0435\u0441\u0442\u0432\u0443 \u043b\u044e\u0434\u0435\u0439, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u043e-\u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0435\u043c\u0443 \u043b\u044e\u0431\u044f\u0442 \u0441\u043f\u043e\u0440\u0442 \u0438\u0026nbsp;\u0436\u0438\u0432\u0443\u0442\u0026nbsp;\u0438\u043c: \u0443\u0026nbsp;\u044d\u043a\u0440\u0430\u043d\u043e\u0432\u0026nbsp;\u0422\u0412, \u043d\u0430\u0026nbsp;\u0441\u0442\u0430\u0434\u0438\u043e\u043d\u0430\u0445 \u0438\u043b\u0438 \u0432\u0026nbsp;\u0441\u043f\u043e\u0440\u0442\u0437\u0430\u043b\u0430\u0445.\u003C\/p\u003E\u003Cp\u003E#\u0432\u0441\u0435\u043d\u0430\u043c\u0430\u0442\u0447!\u003C\/p\u003E", + "shortDescription": "\u00ab\u041c\u0430\u0442\u0447 \u0422\u0412\u00bb \u2014 \u0440\u043e\u0441\u0441\u0438\u0439\u0441\u043a\u0438\u0439 \u0444\u0435\u0434\u0435\u0440\u0430\u043b\u044c\u043d\u044b\u0439 \u043e\u0431\u0449\u0435\u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0439 \u043a\u0430\u043d\u0430\u043b \u043e \u0441\u043f\u043e\u0440\u0442\u0435 \u0438 \u0430\u043a\u0442\u0438\u0432\u043d\u043e\u043c \u043e\u0431\u0440\u0430\u0437\u0435 \u0436\u0438\u0437\u043d\u0438. \u041c\u0430\u0442\u0447 \u0422\u0412 \u2014 \u044d\u0442\u043e \u0422\u0440\u0435\u0442\u044c\u044f \u043a\u043d\u043e\u043f\u043a\u0430 \u0432\u0430\u0448\u0435\u0433\u043e \u0442\u0435\u043b\u0435\u0432\u0438\u0437\u043e\u0440\u0430!\r\n\u0412 \u043d\u0430\u0448\u0435\u043c \u044d\u0444\u0438\u0440\u0435 \u2014 \u043d\u043e\u0432\u043e\u0441\u0442\u0438, \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u043a\u0430 \u0438 \u0440\u0430\u0437\u0432\u043b\u0435\u043a\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b, \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u043b\u044c\u043d\u044b\u0435 \u0446\u0438\u043a\u043b\u044b \u0438 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0435 \u0440\u0435\u043f\u043e\u0440\u0442\u0430\u0436\u0438, \u0440\u0435\u0430\u043b\u0438\u0442\u0438- \u0438 \u0442\u043e\u043a-\u0448\u043e\u0443, \u0445\u0443\u0434\u043e\u0436\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0435 \u0444\u0438\u043b\u044c\u043c\u044b \u0438 \u0441\u0435\u0440\u0438\u0430\u043b\u044b: \u0432\u0441\u0451 \u043e \u0440\u043e\u0441\u0441\u0438\u0439\u0441\u043a\u043e\u043c \u0438 \u043c\u0438\u0440\u043e\u0432\u043e\u043c \u0441\u043f\u043e\u0440\u0442\u0435!", + "videoPlayerCode": "https:\/\/video.matchtv.ru\/iframe\/channel\/106", + "platformVideoId": null, + "package": null, + "isNeedAuthorization": false, + "webcasterVideoId": 606457, + "chatRoomId": null, + "seoH1": "\u041c\u0430\u0442\u0447 \u0422\u0412", + "seoTitle": "\u041a\u0430\u043d\u0430\u043b \u041c\u0430\u0442\u0447 \u0422\u0412. \u0410\u043d\u0430\u043b\u0438\u0442\u0438\u043a\u0430 \u0441\u043e\u0431\u044b\u0442\u0438\u0439, \u043e\u0431\u0437\u043e\u0440\u044b, \u0438\u043d\u0442\u0435\u0440\u0432\u044c\u044e \u0441\u043f\u043e\u0440\u0442\u0441\u043c\u0435\u043d\u043e\u0432", + "seoDescription": "\u041a\u0430\u043d\u0430\u043b \u041c\u0430\u0442\u0447 \u0422\u0412. \u0420\u043e\u0441\u0441\u0438\u0439\u0441\u043a\u0438\u0439 \u0444\u0435\u0434\u0435\u0440\u0430\u043b\u044c\u043d\u044b\u0439 \u043e\u0431\u0449\u0435\u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0439 \u043a\u0430\u043d\u0430\u043b \u043e \u0441\u043f\u043e\u0440\u0442\u0435 \u0438 \u0430\u043a\u0442\u0438\u0432\u043d\u043e\u043c \u043e\u0431\u0440\u0430\u0437\u0435 \u0436\u0438\u0437\u043d\u0438.", + "seoKeywords": "\u041c\u0430\u0442\u0447 \u0422\u0412", + "seoMeta": "\u041c\u0430\u0442\u0447 \u0422\u0412 \u043f\u0440\u044f\u043c\u043e\u0439 \u044d\u0444\u0438\u0440", + "seoText": null, + "imageUrl": "https:\/\/fb-cdn.matchtv.ru\/files\/default\/upload\/70c6\/1bb4\/70c61bb4b7a0ccb739834fa99a5dd9a8.jpg", + "thumbnailUrl": "https:\/\/fb-cdn.matchtv.ru\/files\/default\/upload\/0de1\/49ba\/0de149babcacd733028970463f32a00d.png", + "iconUrl": "https:\/\/fb-cdn.matchtv.ru\/files\/default\/upload\/4fbd\/42cc\/4fbd42ccdde063ff630a7970dbce1034.png", + "tvChannel": { "id": 130, "name": "\u041c\u0430\u0442\u0447 \u0422\u0412", "serviceTvId": 2883, "priority": 20 }, + "terms": [ + { "id": 167824, "title": "\u041c\u0430\u0442\u0447 \u0422\u0412" }, + { "id": 174766, "title": "\u0412\u0442\u043e\u0440\u043e\u0435 \u0434\u044b\u0445\u0430\u043d\u0438\u0435" }, + { + "id": 174768, + "title": "\u041a\u043e\u043d\u0442\u0438\u043d\u0435\u043d\u0442\u0430\u043b\u044c\u043d\u044b\u0439 \u0432\u0435\u0447\u0435\u0440" + }, + { + "id": 174769, + "title": "\u041b\u0443\u0447\u0448\u0430\u044f \u0438\u0433\u0440\u0430 \u0441 \u043c\u044f\u0447\u043e\u043c" + }, + { + "id": 174770, + "title": "\u0411\u0438\u0430\u0442\u043b\u043e\u043d \u0441 \u0414\u043c\u0438\u0442\u0440\u0438\u0435\u043c \u0413\u0443\u0431\u0435\u0440\u043d\u0438\u0435\u0432\u044b\u043c" + }, + { "id": 174771, "title": "\u041e\u0441\u043e\u0431\u044b\u0439 \u0434\u0435\u043d\u044c" }, + { "id": 174772, "title": "\u041c\u0430\u043c\u0430 \u0432 \u0438\u0433\u0440\u0435" }, + { + "id": 174773, + "title": "\u0410\u043d\u0430\u0442\u043e\u043c\u0438\u044f \u0441\u043f\u043e\u0440\u0442\u0430" + }, + { "id": 174774, "title": "\u0414\u0443\u0431\u043b\u0435\u0440" }, + { + "id": 174775, + "title": "\u0421\u043f\u043e\u0440\u0442\u0438\u0432\u043d\u044b\u0439 \u0438\u043d\u0442\u0435\u0440\u0435\u0441" + }, + { "id": 174776, "title": "1+1" }, + { "id": 174778, "title": "\u0411\u0435\u0437\u0443\u043c\u043d\u044b\u0439 \u0441\u043f\u043e\u0440\u0442" }, + { "id": 176117, "title": "\u0414\u0435\u0442\u0441\u043a\u0438\u0439 \u0432\u043e\u043f\u0440\u043e\u0441" }, + { "id": 176120, "title": "\u0422\u043e\u0447\u043a\u0430" }, + { "id": 176121, "title": "\u0421\u043f\u043e\u0440\u0442 \u0437\u0430 \u0433\u0440\u0430\u043d\u044c\u044e" }, + { + "id": 183813, + "title": "\u0412\u0441\u0435 \u043d\u0430 \u0444\u0443\u0442\u0431\u043e\u043b: \u0410\u0444\u0438\u0448\u0430" + }, + { "id": 183814, "title": "\u0417\u0430\u043a\u0443\u043b\u0438\u0441\u044c\u0435 \u041a\u0425\u041b" }, + { + "id": 183815, + "title": "\u0417\u0430\u043a\u0443\u043b\u0438\u0441\u044c\u0435 \u0427\u041c \u0441 \u0410\u043b\u0438\u0441\u043e\u0439 \u0417\u043d\u0430\u0440\u043e\u043a" + }, + { + "id": 183816, + "title": "\u0411\u043e\u0439 \u0432 \u0431\u043e\u043b\u044c\u0448\u043e\u043c \u0433\u043e\u0440\u043e\u0434\u0435" + }, + { "id": 183818, "title": "\u0418\u043d\u0441\u043f\u0435\u043a\u0442\u043e\u0440 \u0417\u041e\u0416" }, + { + "id": 183819, + "title": "\u0414\u0435\u043d\u044c\u0433\u0438 \u0431\u043e\u043b\u044c\u0448\u043e\u0433\u043e \u0441\u043f\u043e\u0440\u0442\u0430" + }, + { "id": 183820, "title": "\u041e\u043b\u0438\u043c\u043f\u0438\u0439\u0446\u044b.Live" }, + { + "id": 183821, + "title": "\u041f\u043e\u0441\u043b\u0435 \u0444\u0443\u0442\u0431\u043e\u043b\u0430 \u0441 \u0413\u0435\u043e\u0440\u0433\u0438\u0435\u043c \u0427\u0435\u0440\u0434\u0430\u043d\u0446\u0435\u0432\u044b\u043c" + }, + { "id": 183822, "title": "\u0414\u0435\u0441\u044f\u0442\u043a\u0430" }, + { "id": 183824, "title": "\u0412\u0441\u0435 \u043d\u0430 \u0444\u0443\u0442\u0431\u043e\u043b" }, + { "id": 183825, "title": "\u0412\u0441\u0435 \u043d\u0430 \u041c\u0430\u0442\u0447!" }, + { + "id": 183826, + "title": "\u041a\u0443\u0431\u043e\u043a \u0432\u043e\u0439\u043d\u044b \u0438 \u043c\u0438\u0440\u0430" + }, + { + "id": 185340, + "title": "\u0421\u043f\u043e\u0440\u0442\u0438\u0432\u043d\u044b\u0439 \u0437\u0430\u0433\u043e\u0432\u043e\u0440" + }, + { + "id": 185341, + "title": "\u0421\u043f\u043e\u0440\u0442\u0438\u0432\u043d\u044b\u0439 \u0440\u0435\u043f\u043e\u0440\u0442\u0435\u0440" + }, + { + "id": 187565, + "title": "\u0422\u043e\u0442\u0430\u043b\u044c\u043d\u044b\u0439 \u0444\u0443\u0442\u0431\u043e\u043b" + }, + { "id": 188522, "title": "\u0410\u0432\u0442\u043e\u0438\u043d\u0441\u043f\u0435\u043a\u0446\u0438\u044f" }, + { + "id": 195075, + "title": "\u041a\u043e\u043c\u0430\u043d\u0434\u0430 \u043d\u0430 \u043f\u0440\u043e\u043a\u0430\u0447\u043a\u0443 " + }, + { "id": 195076, "title": "\u0411\u0435\u0448\u0435\u043d\u0430\u044f \u0441\u0443\u0448\u043a\u0430" }, + { "id": 195079, "title": "\u0411\u043b\u0438\u0446" }, + { "id": 195510, "title": "\u0421\u0438\u043b\u044c\u043d\u043e\u0435 \u0448\u043e\u0443" }, + { + "id": 195771, + "title": "\u0423\u0442\u043e\u043c\u043b\u0435\u043d\u043d\u044b\u0435 \u0441\u043b\u0430\u0432\u043e\u0439" + }, + { + "id": 198090, + "title": "\u0420\u043e\u0441\u0441\u0438\u044f \u0444\u0443\u0442\u0431\u043e\u043b\u044c\u043d\u0430\u044f" + }, + { "id": 198535, "title": "\u0414\u0435\u043d\u044c \u0418\u043a\u0441" }, + { "id": 199051, "title": "\u0412\u044d\u043b\u043a\u0430\u043c \u0442\u0443 \u0420\u0430\u0448\u0430" }, + { "id": 199111, "title": "\u041d\u0430\u0448\u0438 \u043d\u0430 \u0427\u041c" }, + { "id": 199112, "title": "\u0420\u043e\u0441\u0441\u0438\u044f \u0436\u0434\u0435\u0442! " }, + { + "id": 199117, + "title": "\u0413\u0435\u043e\u0433\u0440\u0430\u0444\u0438\u044f \u0441\u0431\u043e\u0440\u043d\u043e\u0439" + }, + { "id": 199447, "title": "\u041d\u0430\u0448\u0438 \u043f\u043e\u0431\u0435\u0434\u044b" }, + { + "id": 199675, + "title": "\u0427\u0435\u043c\u043f\u0438\u043e\u043d\u0430\u0442 \u043c\u0438\u0440\u0430. Live" + }, + { "id": 201543, "title": "\u0428\u0435\u043b\u043a\u043e\u0432\u044b\u0439 \u043f\u0443\u0442\u044c" }, + { + "id": 203403, + "title": "\u0422\u0430\u0435\u0442 \u043b\u0435\u0434 \u0441 \u0410\u043b\u0435\u043a\u0441\u0435\u0435\u043c \u042f\u0433\u0443\u0434\u0438\u043d\u044b\u043c" + }, + { + "id": 204089, + "title": "\u0421 \u0447\u0435\u0433\u043e \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442\u0441\u044f \u0444\u0443\u0442\u0431\u043e\u043b" + }, + { "id": 204096, "title": "\u0412\u0441\u0435 \u043d\u0430 \u0445\u043e\u043a\u043a\u0435\u0439" }, + { "id": 204138, "title": "\u041d\u043e\u0432\u043e\u0441\u0442\u0438" }, + { "id": 204186, "title": "\u0420\u0435\u0430\u043b\u044c\u043d\u044b\u0439 \u0441\u043f\u043e\u0440\u0442" }, + { "id": 204582, "title": "\u0413\u0435\u043d \u043f\u043e\u0431\u0435\u0434\u044b" }, + { "id": 204593, "title": "\u0424\u0443\u0442\u0411\u043e\u043b\u044c\u043d\u043e" }, + { "id": 204848, "title": "\u041a\u0438\u0431\u0435\u0440\u0430\u0442\u043b\u0435\u0442\u0438\u043a\u0430" }, + { "id": 205028, "title": "\u041a\u0443\u0440\u0441 \u0415\u0432\u0440\u043e" }, + { "id": 205174, "title": "\u0421\u0430\u043c\u044b\u0435 \u0441\u0438\u043b\u044c\u043d\u044b\u0435" }, + { "id": 206192, "title": "\u0412\u0430\u043d\u043a\u0443\u0432\u0435\u0440. Live" }, + { "id": 206286, "title": "\u0414\u0430\u043a\u0430\u0440-2019" }, + { "id": 206303, "title": "\u041a\u0430\u0436\u0434\u043e\u043c\u0443 - \u0441\u043f\u043e\u0440\u0442" }, + { "id": 206587, "title": "\u041a\u0430\u0442\u0430\u0440 Live" }, + { "id": 206631, "title": "\u041a\u0430\u0442\u0430\u0440\u0441\u043a\u0438\u0435 \u0438\u0433\u0440\u044b" }, + { "id": 207868, "title": "\u0412\u0441\u0435 \u043d\u0430 \u043b\u044b\u0436\u0438!" }, + { + "id": 208192, + "title": "\u0414\u043d\u0435\u0432\u043d\u0438\u043a \u0423\u043d\u0438\u0432\u0435\u0440\u0441\u0438\u0430\u0434\u044b " + }, + { + "id": 208377, + "title": "\u0422\u0440\u0435\u043d\u0435\u0440\u0441\u043a\u0438\u0439 \u0448\u0442\u0430\u0431" + }, + { "id": 208446, "title": "\u041a\u0430\u043f\u0438\u0442\u0430\u043d\u044b" }, + { + "id": 208506, + "title": "\u0421\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0439 \u0440\u0435\u043f\u043e\u0440\u0442\u0430\u0436" + }, + { + "id": 208625, + "title": "\u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u043b\u044c\u043d\u044b\u0435 \u0444\u0438\u043b\u044c\u043c\u044b" + }, + { "id": 208750, "title": "\u0418\u0433\u0440\u0430\u0435\u043c \u0437\u0430 \u0432\u0430\u0441" }, + { "id": 209068, "title": "\u041c\u0430\u0441\u0442\u0435\u0440 \u0441\u043f\u043e\u0440\u0442\u0430" }, + { + "id": 209349, + "title": "\u041d\u0435\u0438\u0437\u0432\u0435\u0434\u0430\u043d\u043d\u0430\u044f \u0445\u043e\u043a\u043a\u0435\u0439\u043d\u0430\u044f \u0420\u043e\u0441\u0441\u0438\u044f" + }, + { + "id": 213332, + "title": "\u0413\u0440\u0430\u043d-\u043f\u0440\u0438 \u0441 \u0410\u043b\u0435\u043a\u0441\u0435\u0435\u043c \u041f\u043e\u043f\u043e\u0432\u044b\u043c" + } + ], + "currentTvTransmissions": [ + { + "id": 17829286, + "title": "\u0424\u0443\u0442\u0431\u043e\u043b. \u0427\u0435\u043c\u043f\u0438\u043e\u043d\u0430\u0442 \u043c\u0438\u0440\u0430-2026. \u0421\u0435\u043d\u0435\u0433\u0430\u043b - \u0418\u0440\u0430\u043a. \u0422\u0440\u0430\u043d\u0441\u043b\u044f\u0446\u0438\u044f \u0438\u0437 \u041a\u0430\u043d\u0430\u0434\u044b [6+]", + "description": "", + "start": 1782542400, + "finish": 1782550500, + "startTime": "2026-06-27T09:40:00+03:00", + "finishTime": "2026-06-27T11:55:00+03:00", + "ageRating": "6+", + "sourceImagePath": "https:\/\/s-cdn.sportbox.ru\/images\/tv_transmission\/17829286-1782495234.jpg" + } + ] + }, + { + "id": 5, + "weight": 2, + "alias": "premier", + "name": "\u041c\u0430\u0442\u0447 \u041f\u0440\u0435\u043c\u044c\u0435\u0440", + "description": "\u003Cp\u003E\u041f\u0440\u0435\u043c\u0438\u0430\u043b\u044c\u043d\u044b\u0439 \u043a\u0430\u043d\u0430\u043b \u043e\u0026nbsp;\u0440\u043e\u0441\u0441\u0438\u0439\u0441\u043a\u043e\u043c \u0444\u0443\u0442\u0431\u043e\u043b\u0435:\u003C\/p\u003E\u003Cul\u003E\u003Cli\u003E\u0432\u0441\u0435 \u043c\u0430\u0442\u0447\u0438 \u041c\u0418\u0420 \u0420\u043e\u0441\u0441\u0438\u0439\u0441\u043a\u043e\u0439 \u041f\u0440\u0435\u043c\u044c\u0435\u0440-\u041b\u0438\u0433\u0438;\u003C\/li\u003E\u003Cli\u003E\u043a\u0443\u0431\u043a\u043e\u0432\u044b\u0435 \u043c\u0430\u0442\u0447\u0438 \u0438\u0026nbsp;\u0442\u043e\u0432\u0430\u0440\u0438\u0449\u0435\u0441\u043a\u0438\u0435 \u0432\u0441\u0442\u0440\u0435\u0447\u0438 \u043a\u043b\u0443\u0431\u043e\u0432 \u0420\u041f\u041b;\u003Cbr\u003E\u003C\/li\u003E\u003Cli\u003E\u043c\u0430\u0442\u0447\u0438 \u041b\u0438\u0433\u0438 PARI;\u003C\/li\u003E\u003Cli\u003E\u0438\u0433\u0440\u044b \u0441\u0431\u043e\u0440\u043d\u043e\u0439 \u0420\u043e\u0441\u0441\u0438\u0438 \u0438\u0026nbsp;\u043c\u043e\u043b\u043e\u0434\u0435\u0436\u043d\u043e\u0439 \u0441\u0431\u043e\u0440\u043d\u043e\u0439.\u003Cbr\u003E\u003C\/li\u003E\u003C\/ul\u003E\u003Cp\u003E\u0422\u0430\u043a\u0436\u0435 \u0432\u0026nbsp;\u044d\u0444\u0438\u0440\u0435 \u041c\u0410\u0422\u0427 \u041f\u0420\u0415\u041c\u042c\u0415\u0420: \u044d\u043a\u0441\u043a\u043b\u044e\u0437\u0438\u0432\u043d\u044b\u0435 \u0432\u044b\u043f\u0443\u0441\u043a\u0438 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c \u00ab8-16\u00bb, \u00ab\u041f\u0440\u0430\u0432\u0438\u043b\u0430 \u0438\u0433\u0440\u044b\u00bb, \u00ab\u0420\u0435\u0446\u0435\u043f\u0422\u0443\u0440\u0430\u00bb, \u0441\u0442\u0443\u0434\u0438\u0439\u043d\u0430\u044f \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u043a\u0430, \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0435 \u0440\u0435\u043f\u043e\u0440\u0442\u0430\u0436\u0438. \u0412\u0435\u0441\u044c \u0440\u043e\u0441\u0441\u0438\u0439\u0441\u043a\u0438\u0439 \u0444\u0443\u0442\u0431\u043e\u043b \u0432\u0026nbsp;\u0432\u044b\u0441\u043e\u043a\u043e\u043c \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435! \u042d\u0442\u043e \u0438\u0441\u0442\u043e\u0440\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u043c\u044b\u0026nbsp;\u0434\u0435\u043b\u0430\u0435\u043c \u0432\u043c\u0435\u0441\u0442\u0435.\u003C\/p\u003E\u003Cp\u003E\u003Cbr\u003E\u003C\/p\u003E\u003Cp\u003E\u003Cbr\u003E\u003C\/p\u003E", + "shortDescription": "\u041f\u0440\u0435\u043c\u0438\u0430\u043b\u044c\u043d\u044b\u0439 \u043a\u0430\u043d\u0430\u043b \u043e \u0440\u043e\u0441\u0441\u0438\u0439\u0441\u043a\u043e\u043c \u0444\u0443\u0442\u0431\u043e\u043b\u0435, \u0433\u0434\u0435 \u0435\u0441\u0442\u044c \u0432\u0441\u0435 \u043c\u0430\u0442\u0447\u0438 \u041c\u0418\u0420 \u0420\u043e\u0441\u0441\u0438\u0439\u0441\u043a\u043e\u0439 \u041f\u0440\u0435\u043c\u044c\u0435\u0440-\u041b\u0438\u0433\u0438, \u043a\u0443\u0431\u043a\u043e\u0432\u044b\u0435 \u043c\u0430\u0442\u0447\u0438 \u0438 \u0442\u043e\u0432\u0430\u0440\u0438\u0449\u0435\u0441\u043a\u0438\u0435 \u0432\u0441\u0442\u0440\u0435\u0447\u0438 \u043a\u043b\u0443\u0431\u043e\u0432 \u041c\u0438\u0440 \u0420\u041f\u041b, \u0438\u0433\u0440\u044b \u0441\u0431\u043e\u0440\u043d\u043e\u0439 \u0420\u043e\u0441\u0441\u0438\u0438 \u0438 \u043c\u043e\u043b\u043e\u0434\u0435\u0436\u043d\u043e\u0439 \u0441\u0431\u043e\u0440\u043d\u043e\u0439 \u0438 \u00ab\u043f\u0435\u0440\u0435\u043a\u043b\u0438\u0447\u043a\u0438\u00bb \u043c\u0435\u0436\u0434\u0443 \u043c\u0430\u0442\u0447\u0430\u043c\u0438, \u0438\u0434\u0443\u0449\u0438\u043c\u0438 \u0432 \u043e\u0434\u043d\u043e \u0432\u0440\u0435\u043c\u044f.\r\n\u0422\u0430\u043a\u0436\u0435 \u0432 \u044d\u0444\u0438\u0440\u0435 \u041c\u0410\u0422\u0427 \u041f\u0420\u0415\u041c\u042c\u0415\u0420: \u044d\u043a\u0441\u043a\u043b\u044e\u0437\u0438\u0432\u043d\u044b\u0435 \u0432\u044b\u043f\u0443\u0441\u043a\u0438 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c \u00ab8-16\u00bb, \u00ab\u041f\u0440\u0430\u0432\u0438\u043b\u0430 \u0438\u0433\u0440\u044b\u00bb, \u00ab\u0420\u0435\u0446\u0435\u043f\u0422\u0443\u0440\u0430\u00bb, \u0441\u0442\u0443\u0434\u0438\u0439\u043d\u0430\u044f \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u043a\u0430, \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0435 \u0440\u0435\u043f\u043e\u0440\u0442\u0430\u0436\u0438. \u0412\u0435\u0441\u044c \u0440\u043e\u0441\u0441\u0438\u0439\u0441\u043a\u0438\u0439 \u0444\u0443\u0442\u0431\u043e\u043b \u0432 \u0432\u044b\u0441\u043e\u043a\u043e\u043c \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435! \u042d\u0442\u043e \u0438\u0441\u0442\u043e\u0440\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u043c\u044b \u0434\u0435\u043b\u0430\u0435\u043c \u0432\u043c\u0435\u0441\u0442\u0435.", + "videoPlayerCode": "\/\/video.matchtv.ru\/iframe\/feed\/start\/na_04153373fcaa00fc4e37db89e6d7f82a\/17_91502360\/8be99f14cce8abdaa9e2dd4bc8f12c8c\/4934710878?sr=14\u0026type_id=\u0026width=100%25\u0026height=100%25\u0026iframe_width=100%25\u0026iframe_height=100%25\u0026lang=ru\u0026skin_name=matchtv", + "platformVideoId": "41f83e48ab4a92e5afd57c6ab57b2584", + "package": "16", + "isNeedAuthorization": false, + "webcasterVideoId": 1142310, + "chatRoomId": null, + "seoH1": "\u041c\u0430\u0442\u0447 \u041f\u0440\u0435\u043c\u044c\u0435\u0440", + "seoTitle": "\u041a\u0430\u043d\u0430\u043b \u041c\u0430\u0442\u0447 \u041f\u0440\u0435\u043c\u044c\u0435\u0440 - \u043f\u0440\u044f\u043c\u043e\u0439 \u044d\u0444\u0438\u0440 \u043e\u043d\u043b\u0430\u0439\u043d, \u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0442\u0440\u0430\u043d\u0441\u043b\u044f\u0446\u0438\u0438 \u043c\u0430\u0442\u0447\u0435\u0439 \u0420\u041f\u041b \u0432 \u0445\u043e\u0440\u043e\u0448\u0435\u043c \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435", + "seoDescription": "\u041f\u0440\u044f\u043c\u043e\u0439 \u044d\u0444\u0438\u0440 \u043f\u0440\u0435\u043c\u0438\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0442\u0435\u043b\u0435\u043a\u0430\u043d\u0430\u043b\u0430 \u00ab\u041c\u0430\u0442\u0447 \u041f\u0440\u0435\u043c\u044c\u0435\u0440\u00bb - \u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u043e\u043d\u043b\u0430\u0439\u043d \u0432 \u0445\u043e\u0440\u043e\u0448\u0435\u043c \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043d\u0430 \u0441\u0430\u0439\u0442\u0435 \u00ab\u041c\u0430\u0442\u0447 \u0422\u0412\u00bb. \u0422\u0440\u0430\u043d\u0441\u043b\u044f\u0446\u0438\u0438 \u0432\u0441\u0435\u0445 \u043c\u0430\u0442\u0447\u0435\u0439 \u041c\u0438\u0440 \u0420\u041f\u041b, \u0438\u0433\u0440 \u041a\u0443\u0431\u043a\u0430 \u0420\u043e\u0441\u0441\u0438\u0438, \u0442\u043e\u0432\u0430\u0440\u0438\u0449\u0435\u0441\u043a\u0438\u0445 \u0432\u0441\u0442\u0440\u0435\u0447 \u043a\u043b\u0443\u0431\u043e\u0432 \u041c\u0438\u0440 \u0420\u041f\u041b \u043d\u0430 \u043a\u0430\u043d\u0430\u043b\u0435 \u00ab\u041c\u0430\u0442\u0447 \u041f\u0440\u0435\u043c\u044c\u0435\u0440\u00bb!", + "seoKeywords": "\u041c\u0430\u0442\u0447 \u041f\u0440\u0435\u043c\u044c\u0435\u0440", + "seoMeta": null, + "seoText": null, + "imageUrl": "https:\/\/fb-cdn.matchtv.ru\/files\/default\/upload\/1969\/778c\/1969778c1a0e470077b19bd32648f18f.jpg", + "thumbnailUrl": "https:\/\/fb-cdn.matchtv.ru\/files\/default\/upload\/dd5c\/7cb6\/dd5c7cb6cf41d45010a6485dd66415d9.png", + "iconUrl": "https:\/\/fb-cdn.matchtv.ru\/files\/default\/upload\/7168\/f84a\/7168f84a807771d47d5af0d7a0749ca1.svg", + "tvChannel": { + "id": 7, + "name": "\u041c\u0430\u0442\u0447 \u041f\u0440\u0435\u043c\u044c\u0435\u0440", + "serviceTvId": 3459, + "priority": 25 + }, + "terms": [ + { "id": 20317, "title": "\u041c\u0438\u0440 \u0420\u041f\u041b" }, + { + "id": 205664, + "title": "\u0424\u041e\u041d\u0411\u0415\u0422 \u041a\u0423\u0411\u041e\u041a \u041c\u0410\u0422\u0427 \u041f\u0420\u0415\u041c\u042c\u0415\u0420" + }, + { + "id": 211845, + "title": "\u041a\u0443\u0431\u043e\u043a \u041f\u0430\u0440\u0438\u043c\u0430\u0442\u0447 \u041f\u0440\u0435\u043c\u044c\u0435\u0440" + }, + { "id": 204095, "title": "8-16" }, + { "id": 205212, "title": "\u0418\u043d\u0441\u0430\u0439\u0434\u0435\u0440\u044b" }, + { + "id": 208377, + "title": "\u0422\u0440\u0435\u043d\u0435\u0440\u0441\u043a\u0438\u0439 \u0448\u0442\u0430\u0431" + }, + { "id": 208446, "title": "\u041a\u0430\u043f\u0438\u0442\u0430\u043d\u044b" } + ], + "currentTvTransmissions": [ + { + "id": 17828869, + "title": "\u0022\u0421\u043e\u0432\u0435\u0442\u0441\u043a\u0438\u0439 \u0444\u0443\u0442\u0431\u043e\u043b\u0022. \u0426\u0421\u041a\u0410 (\u041c\u043e\u0441\u043a\u0432\u0430). \u0427\u0430\u0441\u0442\u044c 2 [12+]", + "description": "\u041a\u0430\u043a \u043d\u0430\u0447\u0438\u043d\u0430\u043b\u0441\u044f \u0441\u043e\u0432\u0435\u0442\u0441\u043a\u0438\u0439 \u0444\u0443\u0442\u0431\u043e\u043b? \u041a\u0430\u043a\u0438\u043c\u0438 \u0431\u044b\u043b\u0438 \u0435\u0433\u043e \u043f\u0435\u0440\u0432\u044b\u0435 \u0443\u0441\u043f\u0435\u0445\u0438? \u041a\u0430\u043a\u0438\u0435 \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u0441\u0442\u0430\u043b\u0438 \u0441\u0438\u043c\u0432\u043e\u043b\u0430\u043c\u0438 \u044d\u043f\u043e\u0445\u0438? \u041a\u0430\u043a\u043e\u0432\u044b \u0431\u044b\u043b\u0438 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u0438 \u0441\u043e\u0432\u0435\u0442\u0441\u043a\u043e\u0439 \u0444\u0443\u0442\u0431\u043e\u043b\u044c\u043d\u043e\u0439 \u0448\u043a\u043e\u043b\u044b? \u041e\u0442\u0432\u0435\u0442\u044b \u043d\u0430 \u044d\u0442\u0438 \u0432\u043e\u043f\u0440\u043e\u0441\u044b \u2014 \u0432 \u043d\u0430\u0448\u0435\u0439 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0435!", + "start": 1782547500, + "finish": 1782549000, + "startTime": "2026-06-27T11:05:00+03:00", + "finishTime": "2026-06-27T11:30:00+03:00", + "ageRating": "12+", + "sourceImagePath": "https:\/\/s-cdn.sportbox.ru\/images\/tv_transmission\/17828869-1781880696.jpg" + } + ] + }, + { + "id": 6, + "weight": 3, + "alias": "strana", + "name": "\u041c\u0430\u0442\u0447! \u0421\u0442\u0440\u0430\u043d\u0430", + "description": "\u003Cp\u003E\u042d\u0442\u043e \u0444\u0435\u0434\u0435\u0440\u0430\u043b\u044c\u043d\u044b\u0439 \u043a\u0430\u043d\u0430\u043b, \u0446\u0435\u043b\u0438\u043a\u043e\u043c \u043f\u043e\u0441\u0432\u044f\u0449\u0435\u043d\u043d\u044b\u0439 \u0441\u043f\u043e\u0440\u0442\u0438\u0432\u043d\u043e\u0439 \u0436\u0438\u0437\u043d\u0438 \u0441\u0442\u0440\u0430\u043d\u044b \u0438\u0026nbsp;\u0440\u0430\u0437\u0432\u0438\u0442\u0438\u044e \u0440\u043e\u0441\u0441\u0438\u0439\u0441\u043a\u043e\u0433\u043e \u0441\u043f\u043e\u0440\u0442\u0430. \u0411\u043e\u043b\u044c\u0448\u0430\u044f \u0447\u0430\u0441\u0442\u044c \u0432\u0435\u0449\u0430\u043d\u0438\u044f\u0026nbsp;\u2014 \u0442\u0440\u0430\u043d\u0441\u043b\u044f\u0446\u0438\u0438 \u043a\u043b\u0443\u0431\u043d\u044b\u0445 \u0441\u043e\u0440\u0435\u0432\u043d\u043e\u0432\u0430\u043d\u0438\u0439. \u0410\u0026nbsp;\u0442\u0430\u043a\u0436\u0435 \u0432\u0435\u0441\u044c \u0430\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0439 \u043a\u043e\u043d\u0442\u0435\u043d\u0442: \u043d\u043e\u0432\u043e\u0441\u0442\u0438, \u0441\u043f\u0435\u0446\u043f\u0440\u043e\u0435\u043a\u0442\u044b, \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u043b\u044c\u043d\u044b\u0435 \u0444\u0438\u043b\u044c\u043c\u044b \u0438\u0026nbsp;\u043f\u0440\u0435\u043c\u044c\u0435\u0440\u044b \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c. \u0421\u043c\u043e\u0442\u0440\u0438\u043c \u043d\u0430\u0448 \u0441\u043f\u043e\u0440\u0442 \u0432\u0441\u0435\u0439 \u0441\u0442\u0440\u0430\u043d\u043e\u0439 \u0438\u0026nbsp;\u0431\u043e\u043b\u0435\u0435\u043c \u0437\u0430 \u043d\u0430\u0448\u0438\u0445\u003C\/p\u003E", + "shortDescription": "\u042d\u0442\u043e \u0444\u0435\u0434\u0435\u0440\u0430\u043b\u044c\u043d\u044b\u0439 \u043a\u0430\u043d\u0430\u043b, \u0446\u0435\u043b\u0438\u043a\u043e\u043c \u043f\u043e\u0441\u0432\u044f\u0449\u0435\u043d\u043d\u044b\u0439 \u0441\u043f\u043e\u0440\u0442\u0438\u0432\u043d\u043e\u0439 \u0436\u0438\u0437\u043d\u0438 \u0441\u0442\u0440\u0430\u043d\u044b \u0438 \u0440\u0430\u0437\u0432\u0438\u0442\u0438\u044e \u0440\u043e\u0441\u0441\u0438\u0439\u0441\u043a\u043e\u0433\u043e \u0441\u043f\u043e\u0440\u0442\u0430. \u0411\u043e\u043b\u044c\u0448\u0430\u044f \u0447\u0430\u0441\u0442\u044c \u0432\u0435\u0449\u0430\u043d\u0438\u044f \u2014 \u0442\u0440\u0430\u043d\u0441\u043b\u044f\u0446\u0438\u0438 \u043a\u043b\u0443\u0431\u043d\u044b\u0445 \u0441\u043e\u0440\u0435\u0432\u043d\u043e\u0432\u0430\u043d\u0438\u0439. \u0410 \u0442\u0430\u043a\u0436\u0435 \u0432\u0435\u0441\u044c \u0430\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0439 \u043a\u043e\u043d\u0442\u0435\u043d\u0442: \u043d\u043e\u0432\u043e\u0441\u0442\u0438, \u0441\u043f\u0435\u0446\u043f\u0440\u043e\u0435\u043a\u0442\u044b, \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u043b\u044c\u043d\u044b\u0435 \u0444\u0438\u043b\u044c\u043c\u044b \u0438 \u043f\u0440\u0435\u043c\u044c\u0435\u0440\u044b \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c. \u0421\u043c\u043e\u0442\u0440\u0438\u043c \u043d\u0430\u0448 \u0441\u043f\u043e\u0440\u0442 \u0432\u0441\u0435\u0439 \u0441\u0442\u0440\u0430\u043d\u043e\u0439 \u0438 \u0431\u043e\u043b\u0435\u0435\u043c \u0437\u0430 \u043d\u0430\u0448\u0438\u0445!", + "videoPlayerCode": "https:\/\/video.matchtv.ru\/iframe\/channel\/96", + "platformVideoId": null, + "package": null, + "isNeedAuthorization": false, + "webcasterVideoId": 606417, + "chatRoomId": null, + "seoH1": "\u041c\u0430\u0442\u0447! C\u0442\u0440\u0430\u043d\u0430", + "seoTitle": "\u041a\u0430\u043d\u0430\u043b \u041c\u0430\u0442\u0447! \u0421\u0442\u0440\u0430\u043d\u0430 - \u043f\u0440\u044f\u043c\u043e\u0439 \u044d\u0444\u0438\u0440 \u043e\u043d\u043b\u0430\u0439\u043d, \u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0431\u0435\u0441\u043f\u043b\u0430\u0442\u043d\u043e \u0442\u0440\u0430\u043d\u0441\u043b\u044f\u0446\u0438\u0438 \u0441\u043e\u0440\u0435\u0432\u043d\u043e\u0432\u0430\u043d\u0438\u0439 \u0432 \u0445\u043e\u0440\u043e\u0448\u0435\u043c \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435", + "seoDescription": "\u041f\u0440\u044f\u043c\u043e\u0439 \u044d\u0444\u0438\u0440 \u0444\u0435\u0434\u0435\u0440\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u043e\u0431\u0449\u0435\u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e\u0433\u043e \u0442\u0435\u043b\u0435\u043a\u0430\u043d\u0430\u043b\u0430 \u00ab\u041c\u0430\u0442\u0447! \u0421\u0442\u0440\u0430\u043d\u0430\u00bb - \u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0431\u0435\u0441\u043f\u043b\u0430\u0442\u043d\u043e \u043e\u043d\u043b\u0430\u0439\u043d \u0432 \u0445\u043e\u0440\u043e\u0448\u0435\u043c \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043d\u0430 \u0441\u0430\u0439\u0442\u0435 \u00ab\u041c\u0430\u0442\u0447 \u0422\u0412\u00bb. \u0422\u0440\u0430\u043d\u0441\u043b\u044f\u0446\u0438\u0438 \u0441\u043e\u0440\u0435\u0432\u043d\u043e\u0432\u0430\u043d\u0438\u0439, \u043d\u043e\u0432\u043e\u0441\u0442\u0438, \u0440\u0435\u043f\u043e\u0440\u0442\u0430\u0436\u0438, \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u043b\u044c\u043d\u044b\u0435 \u0444\u0438\u043b\u044c\u043c\u044b, \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438 \u043d\u0430 \u043a\u0430\u043d\u0430\u043b\u0435 \u00ab\u041c\u0430\u0442\u0447! \u0421\u0442\u0440\u0430\u043d\u0430\u00bb!", + "seoKeywords": "\u041c\u0430\u0442\u0447! C\u0442\u0440\u0430\u043d\u0430", + "seoMeta": null, + "seoText": null, + "imageUrl": "https:\/\/fb-cdn.matchtv.ru\/files\/default\/upload\/492b\/2610\/492b26105962fd92ea1eb704a40d009b.jpg", + "thumbnailUrl": "https:\/\/fb-cdn.matchtv.ru\/files\/default\/upload\/2fd5\/d4e4\/2fd5d4e435c7c25bc29b752383b2e02e.png", + "iconUrl": "https:\/\/fb-cdn.matchtv.ru\/files\/default\/upload\/a86c\/df54\/a86cdf54fdb7ab9e893986bcbbf8e017.svg", + "tvChannel": { + "id": 143, + "name": "\u041c\u0430\u0442\u0447 \u0421\u0442\u0440\u0430\u043d\u0430", + "serviceTvId": 3568, + "priority": 28 + }, + "terms": [ + { "id": 207869, "title": "\u041c\u0430\u0442\u0447 \u0421\u0442\u0440\u0430\u043d\u0430" }, + { "id": 183823, "title": "\u0412\u0438\u0434 \u0441\u0432\u0435\u0440\u0445\u0443" }, + { + "id": 208192, + "title": "\u0414\u043d\u0435\u0432\u043d\u0438\u043a \u0423\u043d\u0438\u0432\u0435\u0440\u0441\u0438\u0430\u0434\u044b " + }, + { + "id": 208212, + "title": "\u0423\u043d\u0438\u0432\u0435\u0440\u0441\u0438\u0430\u0434\u0430-2019. \u0421\u0442\u0443\u0434\u0438\u044f" + }, + { "id": 208507, "title": "\u0421\u0442\u0440\u0430\u043d\u0430.Live" }, + { + "id": 208508, + "title": "\u0421\u0442\u0440\u0430\u043d\u0430 \u0441\u043f\u043e\u0440\u0442\u0438\u0432\u043d\u0430\u044f" + }, + { + "id": 208958, + "title": "\u0421\u0442\u0440\u0430\u043d\u0430 \u0441\u043c\u043e\u0442\u0440\u0438\u0442 \u0441\u043f\u043e\u0440\u0442" + }, + { "id": 211925, "title": "\u0418\u0433\u0440\u044b \u043a\u043e\u0440\u043e\u043b\u0435\u0439" }, + { "id": 211926, "title": "\u041f\u043e\u0440\u0430 \u043d\u0430 \u0442\u0435\u043d\u043d\u0438\u0441" }, + { "id": 252187, "title": "\u041b\u0438\u0446\u0430 \u0441\u0442\u0440\u0430\u043d\u044b" } + ], + "currentTvTransmissions": [ + { + "id": 17830233, + "title": "\u0421\u0430\u043c\u0431\u043e. \u041a\u043e\u043c\u0430\u043d\u0434\u043d\u044b\u0439 \u0447\u0435\u043c\u043f\u0438\u043e\u043d\u0430\u0442 \u0420\u043e\u0441\u0441\u0438\u0438. \u0422\u0440\u0430\u043d\u0441\u043b\u044f\u0446\u0438\u044f \u0438\u0437 \u041c\u043e\u0441\u043a\u0432\u044b [12+]", + "description": "", + "start": 1782547500, + "finish": 1782551700, + "startTime": "2026-06-27T11:05:00+03:00", + "finishTime": "2026-06-27T12:15:00+03:00", + "ageRating": "12+", + "sourceImagePath": "https:\/\/s-cdn.sportbox.ru\/images\/tv_transmission\/17830233-1782222276.jpg" + } + ] + }, + { + "id": 2, + "weight": 4, + "alias": "futbol-1", + "name": "\u0424\u0443\u0442\u0431\u043e\u043b 1 | \u041c! \u041c\u0430\u043a\u0441\u0438\u043c\u0443\u043c", + "description": "\u003Cp\u003E\u0424\u0443\u0442\u0431\u043e\u043b\u0026nbsp;1,2,3\u0026nbsp;\u2014 \u044d\u0442\u043e \u0441\u0440\u0430\u0437\u0443 \u0442\u0440\u0438 \u043a\u0430\u043d\u0430\u043b\u0430 \u0432\u0026nbsp;\u043e\u0434\u043d\u043e\u043c \u043f\u0440\u0435\u043c\u0438\u0430\u043b\u044c\u043d\u043e\u043c \u043f\u0430\u043a\u0435\u0442\u0435. \u0417\u0434\u0435\u0441\u044c \u043c\u043e\u0436\u043d\u043e \u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0432\u0026nbsp;\u0432\u044b\u0441\u043e\u043a\u043e\u043c \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435:\u003Cbr\u003E\u003C\/p\u003E\u003Cul\u003E\u003Cli\u003E\u043c\u0430\u0442\u0447\u0438 \u0432\u0435\u0434\u0443\u0449\u0438\u0445 \u0447\u0435\u043c\u043f\u0438\u043e\u043d\u0430\u0442\u043e\u0432 \u0438\u0026nbsp;\u043b\u0438\u0433;\u003C\/li\u003E\u003Cli\u003E\u043c\u0430\u0442\u0447\u0438 \u0437\u0430\u0026nbsp;\u0433\u043b\u0430\u0432\u043d\u044b\u0435 \u043a\u0443\u0431\u043a\u0438 \u0444\u0443\u0442\u0431\u043e\u043b\u044c\u043d\u043e\u0433\u043e \u043c\u0438\u0440\u0430;\u003C\/li\u003E\u003Cli\u003E\u043e\u0442\u0431\u043e\u0440\u043e\u0447\u043d\u044b\u0435 \u0442\u0443\u0440\u043d\u0438\u0440\u044b;\u003C\/li\u003E\u003Cli\u003E\u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b \u0438\u0026nbsp;\u0430\u043d\u0430\u043b\u0438\u0442\u0438\u043a\u0430.\u003C\/li\u003E\u003C\/ul\u003E\u003Cp\u003E\u041f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0439\u0442\u0435\u0441\u044c \u0438\u0026nbsp;\u043d\u0430\u0441\u043b\u0430\u0436\u0434\u0430\u0439\u0442\u0435\u0441\u044c \u0442\u043e\u043f\u043e\u0432\u044b\u043c \u0444\u0443\u0442\u0431\u043e\u043b\u043e\u043c \u0432\u0026nbsp;\u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 \u043b\u0443\u0447\u0448\u0438\u0445 \u0444\u0443\u0442\u0431\u043e\u043b\u044c\u043d\u044b\u0445 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0442\u043e\u0440\u043e\u0432 \u0438\u0026nbsp;\u044d\u043a\u0441\u043f\u0435\u0440\u0442\u043e\u0432!\u003C\/p\u003E\u003Cp\u003E\u003Cbr\u003E\u003C\/p\u003E\u003Cp\u003E\u003Cbr\u003E\u003C\/p\u003E", + "shortDescription": "\u0424\u0443\u0442\u0431\u043e\u043b 1,2,3 \u2014 \u044d\u0442\u043e \u0441\u0440\u0430\u0437\u0443 \u0442\u0440\u0438 \u043a\u0430\u043d\u0430\u043b\u0430 \u0432 \u043e\u0434\u043d\u043e\u043c \u043f\u0440\u0435\u043c\u0438\u0430\u043b\u044c\u043d\u043e\u043c \u043f\u0430\u043a\u0435\u0442\u0435. \u0417\u0434\u0435\u0441\u044c \u043c\u043e\u0436\u043d\u043e \u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0432 \u0432\u044b\u0441\u043e\u043a\u043e\u043c \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043c\u0430\u0442\u0447\u0438 \u0432\u0435\u0434\u0443\u0449\u0438\u0445 \u0447\u0435\u043c\u043f\u0438\u043e\u043d\u0430\u0442\u043e\u0432 \u0438 \u043b\u0438\u0433, \u043c\u0430\u0442\u0447\u0438 \u0437\u0430 \u0433\u043b\u0430\u0432\u043d\u044b\u0435 \u043a\u0443\u0431\u043a\u0438 \u0444\u0443\u0442\u0431\u043e\u043b\u044c\u043d\u043e\u0433\u043e \u043c\u0438\u0440\u0430, \u043e\u0442\u0431\u043e\u0440\u043e\u0447\u043d\u044b\u0435 \u0442\u0443\u0440\u043d\u0438\u0440\u044b, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b \u0438 \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u043a\u0443.", + "videoPlayerCode": "\/\/video.matchtv.ru\/iframe\/feed\/start\/na_8546b1b795cf43e91e6cbb319db40fea\/17_97595835\/f119d3c8f364d6a7f3747fecf47c70ea\/4934710873?sr=14\u0026type_id=\u0026width=100%25\u0026height=100%25\u0026iframe_width=100%25\u0026iframe_height=100%25\u0026lang=ru\u0026skin_name=matchtv", + "platformVideoId": "df213c9c6dc3669522dc77447bf69bdf", + "package": "16", + "isNeedAuthorization": false, + "webcasterVideoId": 1044754, + "chatRoomId": null, + "seoH1": "\u0424\u0443\u0442\u0431\u043e\u043b 1 | \u041f\u0430\u043a\u0435\u0442 \u0421\u043f\u043e\u0440\u0442", + "seoTitle": "\u041a\u0430\u043d\u0430\u043b \u041c\u0430\u0442\u0447! \u0424\u0443\u0442\u0431\u043e\u043b 1 - \u043f\u0440\u044f\u043c\u043e\u0439 \u044d\u0444\u0438\u0440 \u043e\u043d\u043b\u0430\u0439\u043d, \u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0442\u0440\u0430\u043d\u0441\u043b\u044f\u0446\u0438\u0438 \u0444\u0443\u0442\u0431\u043e\u043b\u044c\u043d\u044b\u0445 \u043c\u0430\u0442\u0447\u0435\u0439 \u0432 \u0445\u043e\u0440\u043e\u0448\u0435\u043c \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435", + "seoDescription": "\u041f\u0440\u044f\u043c\u043e\u0439 \u044d\u0444\u0438\u0440 \u0442\u0435\u043b\u0435\u043a\u0430\u043d\u0430\u043b\u0430 \u00ab\u041c\u0430\u0442\u0447! \u0424\u0443\u0442\u0431\u043e\u043b 1\u00bb - \u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u043e\u043d\u043b\u0430\u0439\u043d \u0432 \u0445\u043e\u0440\u043e\u0448\u0435\u043c \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043d\u0430 \u0441\u0430\u0439\u0442\u0435 \u00ab\u041c\u0430\u0442\u0447 \u0422\u0412\u00bb. \u0422\u0440\u0430\u043d\u0441\u043b\u044f\u0446\u0438\u0438 \u043c\u0430\u0442\u0447\u0435\u0439 \u0435\u0432\u0440\u043e\u043f\u0435\u0439\u0441\u043a\u0438\u0445 \u0444\u0443\u0442\u0431\u043e\u043b\u044c\u043d\u044b\u0445 \u0447\u0435\u043c\u043f\u0438\u043e\u043d\u0430\u0442\u043e\u0432 \u0438 \u043a\u0443\u0431\u043a\u043e\u0432, \u043e\u0431\u0437\u043e\u0440\u044b \u0438\u0433\u0440 \u0438 \u0442\u0443\u0440\u043e\u0432, \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0435 \u043d\u043e\u0432\u043e\u0441\u0442\u0438 \u043d\u0430 \u043a\u0430\u043d\u0430\u043b\u0435 \u00ab\u041c\u0430\u0442\u0447! \u0424\u0443\u0442\u0431\u043e\u043b 1\u00bb!", + "seoKeywords": "\u0424\u0443\u0442\u0431\u043e\u043b 1", + "seoMeta": null, + "seoText": null, + "imageUrl": "https:\/\/fb-cdn.matchtv.ru\/files\/default\/upload\/042c\/80f5\/042c80f5a8074b9d3458af1561ba5ec0.jpg", + "thumbnailUrl": "https:\/\/fb-cdn.matchtv.ru\/files\/default\/upload\/b407\/d1aa\/b407d1aa02288bdfcc7f9736645693d5.png", + "iconUrl": "https:\/\/fb-cdn.matchtv.ru\/files\/default\/upload\/964b\/5631\/964b5631bc31a3141083cbd8520993f1.svg", + "tvChannel": { "id": 8, "name": "\u0424\u0443\u0442\u0431\u043e\u043b 1", "serviceTvId": 205, "priority": 50 }, + "terms": [ + { "id": 118, "title": "\u0424\u0443\u0442\u0431\u043e\u043b" }, + { "id": 213528, "title": "\u0424\u0443\u0442\u0431\u043e\u043b 1" } + ], + "currentTvTransmissions": [ + { + "id": 17828977, + "title": "\u0427\u0435\u043c\u043f\u0438\u043e\u043d\u0430\u0442 \u043c\u0438\u0440\u0430-2026. \u0423\u0440\u0443\u0433\u0432\u0430\u0439 - \u0418\u0441\u043f\u0430\u043d\u0438\u044f. \u0422\u0440\u0430\u043d\u0441\u043b\u044f\u0446\u0438\u044f \u0438\u0437 \u041c\u0435\u043a\u0441\u0438\u043a\u0438 [6+]", + "description": "", + "start": 1782547800, + "finish": 1782555300, + "startTime": "2026-06-27T11:10:00+03:00", + "finishTime": "2026-06-27T13:15:00+03:00", + "ageRating": "6+", + "sourceImagePath": "https:\/\/s-cdn.sportbox.ru\/images\/tv_transmission\/17828977-1782307268.jpg" + } + ] + }, + { + "id": 3, + "weight": 5, + "alias": "futbol-2", + "name": "\u0424\u0443\u0442\u0431\u043e\u043b 2 | \u041c! \u041c\u0430\u043a\u0441\u0438\u043c\u0443\u043c", + "description": "\u003Cp\u003E\u0424\u0443\u0442\u0431\u043e\u043b\u0026nbsp;1,2,3\u0026nbsp;\u2014 \u044d\u0442\u043e \u0441\u0440\u0430\u0437\u0443 \u0442\u0440\u0438 \u043a\u0430\u043d\u0430\u043b\u0430 \u0432\u0026nbsp;\u043e\u0434\u043d\u043e\u043c \u043f\u0440\u0435\u043c\u0438\u0430\u043b\u044c\u043d\u043e\u043c \u043f\u0430\u043a\u0435\u0442\u0435. \u0417\u0434\u0435\u0441\u044c \u043c\u043e\u0436\u043d\u043e \u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0432\u0026nbsp;\u0432\u044b\u0441\u043e\u043a\u043e\u043c \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435:\u003Cbr\u003E\u003C\/p\u003E\u003Cul\u003E\u003Cli\u003E\u043c\u0430\u0442\u0447\u0438 \u0432\u0435\u0434\u0443\u0449\u0438\u0445 \u0447\u0435\u043c\u043f\u0438\u043e\u043d\u0430\u0442\u043e\u0432 \u0438\u0026nbsp;\u043b\u0438\u0433;\u003C\/li\u003E\u003Cli\u003E\u043c\u0430\u0442\u0447\u0438 \u0437\u0430\u0026nbsp;\u0433\u043b\u0430\u0432\u043d\u044b\u0435 \u043a\u0443\u0431\u043a\u0438 \u0444\u0443\u0442\u0431\u043e\u043b\u044c\u043d\u043e\u0433\u043e \u043c\u0438\u0440\u0430;\u003C\/li\u003E\u003Cli\u003E\u043e\u0442\u0431\u043e\u0440\u043e\u0447\u043d\u044b\u0435 \u0442\u0443\u0440\u043d\u0438\u0440\u044b;\u003C\/li\u003E\u003Cli\u003E\u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b \u0438\u0026nbsp;\u0430\u043d\u0430\u043b\u0438\u0442\u0438\u043a\u0430.\u003C\/li\u003E\u003C\/ul\u003E\u003Cp\u003E\u041f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0439\u0442\u0435\u0441\u044c \u0438\u0026nbsp;\u043d\u0430\u0441\u043b\u0430\u0436\u0434\u0430\u0439\u0442\u0435\u0441\u044c \u0442\u043e\u043f\u043e\u0432\u044b\u043c \u0444\u0443\u0442\u0431\u043e\u043b\u043e\u043c \u0432\u0026nbsp;\u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 \u043b\u0443\u0447\u0448\u0438\u0445 \u0444\u0443\u0442\u0431\u043e\u043b\u044c\u043d\u044b\u0445 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0442\u043e\u0440\u043e\u0432 \u0438\u0026nbsp;\u044d\u043a\u0441\u043f\u0435\u0440\u0442\u043e\u0432!\u003C\/p\u003E\u003Cp\u003E\u003Cbr\u003E\u003C\/p\u003E", + "shortDescription": "\u0424\u0443\u0442\u0431\u043e\u043b 1,2,3 \u2014 \u044d\u0442\u043e \u0441\u0440\u0430\u0437\u0443 \u0442\u0440\u0438 \u043a\u0430\u043d\u0430\u043b\u0430 \u0432 \u043e\u0434\u043d\u043e\u043c \u043f\u0440\u0435\u043c\u0438\u0430\u043b\u044c\u043d\u043e\u043c \u043f\u0430\u043a\u0435\u0442\u0435. \u0417\u0434\u0435\u0441\u044c \u043c\u043e\u0436\u043d\u043e \u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0432 \u0432\u044b\u0441\u043e\u043a\u043e\u043c \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043c\u0430\u0442\u0447\u0438 \u0432\u0435\u0434\u0443\u0449\u0438\u0445 \u0447\u0435\u043c\u043f\u0438\u043e\u043d\u0430\u0442\u043e\u0432 \u0438 \u043b\u0438\u0433, \u043c\u0430\u0442\u0447\u0438 \u0437\u0430 \u0433\u043b\u0430\u0432\u043d\u044b\u0435 \u043a\u0443\u0431\u043a\u0438 \u0444\u0443\u0442\u0431\u043e\u043b\u044c\u043d\u043e\u0433\u043e \u043c\u0438\u0440\u0430, \u043e\u0442\u0431\u043e\u0440\u043e\u0447\u043d\u044b\u0435 \u0442\u0443\u0440\u043d\u0438\u0440\u044b, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b \u0438 \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u043a\u0443. \r\n\u041f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0439\u0442\u0435\u0441\u044c \u0438 \u043d\u0430\u0441\u043b\u0430\u0436\u0434\u0430\u0439\u0442\u0435\u0441\u044c \u0442\u043e\u043f\u043e\u0432\u044b\u043c \u0444\u0443\u0442\u0431\u043e\u043b\u043e\u043c \u0432 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 \u043b\u0443\u0447\u0448\u0438\u0445 \u0444\u0443\u0442\u0431\u043e\u043b\u044c\u043d\u044b\u0445 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0442\u043e\u0440\u043e\u0432 \u0438 \u044d\u043a\u0441\u043f\u0435\u0440\u0442\u043e\u0432!", + "videoPlayerCode": "\/\/video.matchtv.ru\/iframe\/feed\/start\/na_79df03f3381d2bac53c7dbce81bf1003\/17_900a338a44154bfccc74e8b251cb4850\/aa7c274e64856c35114ee0ddfc50dfb4\/4934710899?sr=14\u0026type_id=\u0026width=100%25\u0026height=100%25\u0026iframe_width=100%25\u0026iframe_height=100%25\u0026lang=ru\u0026skin_name=matchtv", + "platformVideoId": "900a338a44154bfccc74e8b251cb4850", + "package": "16", + "isNeedAuthorization": false, + "webcasterVideoId": 606437, + "chatRoomId": null, + "seoH1": "\u0424\u0443\u0442\u0431\u043e\u043b 2 | \u041f\u0430\u043a\u0435\u0442 \u0421\u043f\u043e\u0440\u0442", + "seoTitle": "\u041a\u0430\u043d\u0430\u043b \u041c\u0430\u0442\u0447! \u0424\u0443\u0442\u0431\u043e\u043b 2 - \u043f\u0440\u044f\u043c\u043e\u0439 \u044d\u0444\u0438\u0440 \u043e\u043d\u043b\u0430\u0439\u043d, \u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0442\u0440\u0430\u043d\u0441\u043b\u044f\u0446\u0438\u0438 \u0444\u0443\u0442\u0431\u043e\u043b\u044c\u043d\u044b\u0445 \u043c\u0430\u0442\u0447\u0435\u0439 \u0432 \u0445\u043e\u0440\u043e\u0448\u0435\u043c \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435", + "seoDescription": "\u041f\u0440\u044f\u043c\u043e\u0439 \u044d\u0444\u0438\u0440 \u0442\u0435\u043b\u0435\u043a\u0430\u043d\u0430\u043b\u0430 \u00ab\u041c\u0430\u0442\u0447! \u0424\u0443\u0442\u0431\u043e\u043b 2\u00bb - \u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u043e\u043d\u043b\u0430\u0439\u043d \u0432 \u0445\u043e\u0440\u043e\u0448\u0435\u043c \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043d\u0430 \u0441\u0430\u0439\u0442\u0435 \u00ab\u041c\u0430\u0442\u0447 \u0422\u0412\u00bb. \u0422\u0440\u0430\u043d\u0441\u043b\u044f\u0446\u0438\u0438 \u043c\u0430\u0442\u0447\u0435\u0439 \u0435\u0432\u0440\u043e\u043f\u0435\u0439\u0441\u043a\u0438\u0445 \u0444\u0443\u0442\u0431\u043e\u043b\u044c\u043d\u044b\u0445 \u0447\u0435\u043c\u043f\u0438\u043e\u043d\u0430\u0442\u043e\u0432 \u0438 \u043a\u0443\u0431\u043a\u043e\u0432, \u043e\u0431\u0437\u043e\u0440\u044b \u0438\u0433\u0440 \u0438 \u0442\u0443\u0440\u043e\u0432, \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0435 \u043d\u043e\u0432\u043e\u0441\u0442\u0438 \u043d\u0430 \u043a\u0430\u043d\u0430\u043b\u0435 \u00ab\u041c\u0430\u0442\u0447! \u0424\u0443\u0442\u0431\u043e\u043b 2\u00bb!", + "seoKeywords": "\u0424\u0443\u0442\u0431\u043e\u043b 2", + "seoMeta": null, + "seoText": null, + "imageUrl": "https:\/\/fb-cdn.matchtv.ru\/files\/default\/upload\/ab60\/61f4\/ab6061f4cecf5112c21bd1e549f467dc.jpg", + "thumbnailUrl": "https:\/\/fb-cdn.matchtv.ru\/files\/default\/upload\/7013\/6755\/701367555ed778b6fac513ec9060b43e.png", + "iconUrl": "https:\/\/fb-cdn.matchtv.ru\/files\/default\/upload\/1c9d\/f020\/1c9df020717d419561cac6c7b439dc00.svg", + "tvChannel": { "id": 14, "name": "\u0424\u0443\u0442\u0431\u043e\u043b 2", "serviceTvId": 1261, "priority": 60 }, + "terms": [ + { "id": 118, "title": "\u0424\u0443\u0442\u0431\u043e\u043b" }, + { "id": 213529, "title": "\u0424\u0443\u0442\u0431\u043e\u043b 2" } + ], + "currentTvTransmissions": [ + { + "id": 17829068, + "title": "\u0427\u0435\u043c\u043f\u0438\u043e\u043d\u0430\u0442 \u0418\u0441\u043f\u0430\u043d\u0438\u0438. \u0411\u0430\u0440\u0441\u0435\u043b\u043e\u043d\u0430 - \u0410\u043b\u0430\u0432\u0435\u0441 [6+]", + "description": "", + "start": 1782543600, + "finish": 1782550800, + "startTime": "2026-06-27T10:00:00+03:00", + "finishTime": "2026-06-27T12:00:00+03:00", + "ageRating": "6+", + "sourceImagePath": "https:\/\/s-cdn.sportbox.ru\/images\/tv_transmission\/17829068-1782282983.jpg" + } + ] + }, + { + "id": 4, + "weight": 6, + "alias": "futbol-3", + "name": "\u0424\u0443\u0442\u0431\u043e\u043b 3 | \u041c! \u041c\u0430\u043a\u0441\u0438\u043c\u0443\u043c", + "description": "\u003Cp\u003E\u0424\u0443\u0442\u0431\u043e\u043b\u0026nbsp;1,2,3\u0026nbsp;\u2014 \u044d\u0442\u043e \u0441\u0440\u0430\u0437\u0443 \u0442\u0440\u0438 \u043a\u0430\u043d\u0430\u043b\u0430 \u0432\u0026nbsp;\u043e\u0434\u043d\u043e\u043c \u043f\u0440\u0435\u043c\u0438\u0430\u043b\u044c\u043d\u043e\u043c \u043f\u0430\u043a\u0435\u0442\u0435. \u0417\u0434\u0435\u0441\u044c \u043c\u043e\u0436\u043d\u043e \u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0432\u0026nbsp;\u0432\u044b\u0441\u043e\u043a\u043e\u043c \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435:\u003Cbr\u003E\u003C\/p\u003E\u003Cul\u003E\u003Cli\u003E\u043c\u0430\u0442\u0447\u0438 \u0432\u0435\u0434\u0443\u0449\u0438\u0445 \u0447\u0435\u043c\u043f\u0438\u043e\u043d\u0430\u0442\u043e\u0432 \u0438\u0026nbsp;\u043b\u0438\u0433;\u003C\/li\u003E\u003Cli\u003E\u043c\u0430\u0442\u0447\u0438 \u0437\u0430\u0026nbsp;\u0433\u043b\u0430\u0432\u043d\u044b\u0435 \u043a\u0443\u0431\u043a\u0438 \u0444\u0443\u0442\u0431\u043e\u043b\u044c\u043d\u043e\u0433\u043e \u043c\u0438\u0440\u0430;\u003C\/li\u003E\u003Cli\u003E\u043e\u0442\u0431\u043e\u0440\u043e\u0447\u043d\u044b\u0435 \u0442\u0443\u0440\u043d\u0438\u0440\u044b;\u003C\/li\u003E\u003Cli\u003E\u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b \u0438\u0026nbsp;\u0430\u043d\u0430\u043b\u0438\u0442\u0438\u043a\u0430.\u003C\/li\u003E\u003C\/ul\u003E\u003Cp\u003E\u041f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0439\u0442\u0435\u0441\u044c \u0438\u0026nbsp;\u043d\u0430\u0441\u043b\u0430\u0436\u0434\u0430\u0439\u0442\u0435\u0441\u044c \u0442\u043e\u043f\u043e\u0432\u044b\u043c \u0444\u0443\u0442\u0431\u043e\u043b\u043e\u043c \u0432\u0026nbsp;\u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 \u043b\u0443\u0447\u0448\u0438\u0445 \u0444\u0443\u0442\u0431\u043e\u043b\u044c\u043d\u044b\u0445 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0442\u043e\u0440\u043e\u0432 \u0438\u0026nbsp;\u044d\u043a\u0441\u043f\u0435\u0440\u0442\u043e\u0432!\u003C\/p\u003E\u003Cp\u003E\u003Cbr\u003E\u003C\/p\u003E", + "shortDescription": "\u0424\u0443\u0442\u0431\u043e\u043b 1,2,3 \u2014 \u044d\u0442\u043e \u0441\u0440\u0430\u0437\u0443 \u0442\u0440\u0438 \u043a\u0430\u043d\u0430\u043b\u0430 \u0432 \u043e\u0434\u043d\u043e\u043c \u043f\u0440\u0435\u043c\u0438\u0430\u043b\u044c\u043d\u043e\u043c \u043f\u0430\u043a\u0435\u0442\u0435. \u0417\u0434\u0435\u0441\u044c \u043c\u043e\u0436\u043d\u043e \u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0432 \u0432\u044b\u0441\u043e\u043a\u043e\u043c \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043c\u0430\u0442\u0447\u0438 \u0432\u0435\u0434\u0443\u0449\u0438\u0445 \u0447\u0435\u043c\u043f\u0438\u043e\u043d\u0430\u0442\u043e\u0432 \u0438 \u043b\u0438\u0433, \u043c\u0430\u0442\u0447\u0438 \u0437\u0430 \u0433\u043b\u0430\u0432\u043d\u044b\u0435 \u043a\u0443\u0431\u043a\u0438 \u0444\u0443\u0442\u0431\u043e\u043b\u044c\u043d\u043e\u0433\u043e \u043c\u0438\u0440\u0430, \u043e\u0442\u0431\u043e\u0440\u043e\u0447\u043d\u044b\u0435 \u0442\u0443\u0440\u043d\u0438\u0440\u044b, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b \u0438 \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u043a\u0443.", + "videoPlayerCode": "\/\/video.matchtv.ru\/iframe\/feed\/start\/na_1f8dc610f3a99c722390b4da99c3eb97\/17_c21e41488d60529b326f403d57bfc904\/629c2077843e3af30d42fedd5c694a43\/4934710893?sr=14\u0026type_id=\u0026width=100%25\u0026height=100%25\u0026iframe_width=100%25\u0026iframe_height=100%25\u0026lang=ru\u0026skin_name=matchtv", + "platformVideoId": "c21e41488d60529b326f403d57bfc904", + "package": "16", + "isNeedAuthorization": false, + "webcasterVideoId": 606433, + "chatRoomId": null, + "seoH1": "\u0424\u0443\u0442\u0431\u043e\u043b 3", + "seoTitle": "\u041a\u0430\u043d\u0430\u043b \u041c\u0430\u0442\u0447! \u0424\u0443\u0442\u0431\u043e\u043b 3 - \u043f\u0440\u044f\u043c\u043e\u0439 \u044d\u0444\u0438\u0440 \u043e\u043d\u043b\u0430\u0439\u043d, \u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0442\u0440\u0430\u043d\u0441\u043b\u044f\u0446\u0438\u0438 \u0444\u0443\u0442\u0431\u043e\u043b\u044c\u043d\u044b\u0445 \u043c\u0430\u0442\u0447\u0435\u0439 \u0432 \u0445\u043e\u0440\u043e\u0448\u0435\u043c \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435", + "seoDescription": "\u041f\u0440\u044f\u043c\u043e\u0439 \u044d\u0444\u0438\u0440 \u0442\u0435\u043b\u0435\u043a\u0430\u043d\u0430\u043b\u0430 \u00ab\u041c\u0430\u0442\u0447! \u0424\u0443\u0442\u0431\u043e\u043b 3\u00bb - \u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u043e\u043d\u043b\u0430\u0439\u043d \u0432 \u0445\u043e\u0440\u043e\u0448\u0435\u043c \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043d\u0430 \u0441\u0430\u0439\u0442\u0435 \u00ab\u041c\u0430\u0442\u0447 \u0422\u0412\u00bb. \u0422\u0440\u0430\u043d\u0441\u043b\u044f\u0446\u0438\u0438 \u043c\u0430\u0442\u0447\u0435\u0439 \u0435\u0432\u0440\u043e\u043f\u0435\u0439\u0441\u043a\u0438\u0445 \u0444\u0443\u0442\u0431\u043e\u043b\u044c\u043d\u044b\u0445 \u0447\u0435\u043c\u043f\u0438\u043e\u043d\u0430\u0442\u043e\u0432 \u0438 \u043a\u0443\u0431\u043a\u043e\u0432, \u043e\u0431\u0437\u043e\u0440\u044b \u0438\u0433\u0440 \u0438 \u0442\u0443\u0440\u043e\u0432, \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0435 \u043d\u043e\u0432\u043e\u0441\u0442\u0438 \u043d\u0430 \u043a\u0430\u043d\u0430\u043b\u0435 \u00ab\u041c\u0430\u0442\u0447! \u0424\u0443\u0442\u0431\u043e\u043b 3\u00bb!", + "seoKeywords": "\u0424\u0443\u0442\u0431\u043e\u043b 3", + "seoMeta": null, + "seoText": null, + "imageUrl": "https:\/\/fb-cdn.matchtv.ru\/files\/default\/upload\/3d63\/1cbe\/3d631cbef4cc0b09408fc9ac1ada1a99.jpg", + "thumbnailUrl": "https:\/\/fb-cdn.matchtv.ru\/files\/default\/upload\/e434\/26c6\/e43426c648c7fb88f7e4dd0bd0dbf503.png", + "iconUrl": "https:\/\/fb-cdn.matchtv.ru\/files\/default\/upload\/9baa\/c2fe\/9baac2fecd8a8a19f8e7072eb6c87cc7.svg", + "tvChannel": { "id": 140, "name": "\u0424\u0443\u0442\u0431\u043e\u043b 3", "serviceTvId": 2305, "priority": 70 }, + "terms": [ + { "id": 118, "title": "\u0424\u0443\u0442\u0431\u043e\u043b" }, + { "id": 213530, "title": "\u0424\u0443\u0442\u0431\u043e\u043b 3" } + ], + "currentTvTransmissions": [ + { + "id": 17829808, + "title": "\u0427\u0435\u043c\u043f\u0438\u043e\u043d\u0430\u0442 \u0411\u0440\u0430\u0437\u0438\u043b\u0438\u0438. \u0022\u041a\u043e\u0440\u0438\u0442\u0438\u0431\u0430\u0022 - \u0022\u0411\u0430\u0438\u044f\u0022 [6+]", + "description": "", + "start": 1782543600, + "finish": 1782550800, + "startTime": "2026-06-27T10:00:00+03:00", + "finishTime": "2026-06-27T12:00:00+03:00", + "ageRating": "6+", + "sourceImagePath": "https:\/\/s-cdn.sportbox.ru\/images\/tv_transmission\/17829808-1781881048.jpg" + } + ] + }, + { + "id": 1, + "weight": 7, + "alias": "boec", + "name": "\u041c\u0430\u0442\u0447! \u0411\u043e\u0435\u0446 | \u041c! \u041c\u0430\u043a\u0441\u0438\u043c\u0443\u043c", + "description": "\u003Cp\u003E\u003C\/p\u003E\u003Cp\u003E\u0422\u0435\u043b\u0435\u043a\u0430\u043d\u0430\u043b \u041c\u0430\u0442\u0447 \u0411\u043e\u0435\u0446\u0026nbsp;\u2014 \u044d\u0442\u043e \u043c\u0430\u043a\u0441\u0438\u043c\u0443\u043c \u043f\u0440\u044f\u043c\u044b\u0445 \u0442\u0440\u0430\u043d\u0441\u043b\u044f\u0446\u0438\u0439 \u0438\u0437\u0026nbsp;\u0440\u0438\u043d\u0433\u0430 \u0438\u0026nbsp;\u043e\u043a\u0442\u0430\u0433\u043e\u043d\u0430. \u0411\u043e\u043a\u0441, \u041c\u041c\u0410, \u043a\u0438\u043a\u0431\u043e\u043a\u0441\u0438\u043d\u0433, \u0441\u0430\u043c\u0431\u043e \u0438\u0026nbsp;\u0431\u043e\u0440\u044c\u0431\u0430, \u0432\u043e\u0441\u0442\u043e\u0447\u043d\u044b\u0435 \u0435\u0434\u0438\u043d\u043e\u0431\u043e\u0440\u0441\u0442\u0432\u0430 \u0438\u0026nbsp;\u043d\u0435\u0026nbsp;\u0442\u043e\u043b\u044c\u043a\u043e. \u041b\u0443\u0447\u0448\u0438\u0435 \u043f\u043e\u0435\u0434\u0438\u043d\u043a\u0438 \u043e\u0442\u0026nbsp;\u043f\u0440\u043e\u043c\u043e\u0443\u0442\u0435\u0440\u043e\u0432 \u0432\u0441\u0435\u0433\u043e \u043c\u0438\u0440\u0430: \u0431\u043e\u0438 \u043b\u0435\u0433\u0435\u043d\u0434 \u0438\u0026nbsp;\u0432\u044b\u0441\u0442\u0443\u043f\u043b\u0435\u043d\u0438\u044f \u0432\u043e\u0441\u0445\u043e\u0434\u044f\u0449\u0438\u0445 \u0437\u0432\u0435\u0437\u0434. \u041c\u0430\u0442\u0447 \u0411\u043e\u0435\u0446\u0026nbsp;\u2014 \u044d\u0442\u043e \u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0435\u0435 \u0431\u043e\u0435\u0432\u043e\u0435 \u0438\u0441\u043a\u0443\u0441\u0441\u0442\u0432\u043e!\u003C\/p\u003E\u003Cp\u003E\u003Cbr\u003E\u003C\/p\u003E", + "shortDescription": "\u0422\u0435\u043b\u0435\u043a\u0430\u043d\u0430\u043b \u041c\u0430\u0442\u0447 \u0411\u043e\u0435\u0446 \u2014 \u044d\u0442\u043e \u043c\u0430\u043a\u0441\u0438\u043c\u0443\u043c \u043f\u0440\u044f\u043c\u044b\u0445 \u0442\u0440\u0430\u043d\u0441\u043b\u044f\u0446\u0438\u0439 \u0438\u0437 \u0440\u0438\u043d\u0433\u0430 \u0438 \u043e\u043a\u0442\u0430\u0433\u043e\u043d\u0430. \u0411\u043e\u043a\u0441, \u041c\u041c\u0410, \u043a\u0438\u043a\u0431\u043e\u043a\u0441\u0438\u043d\u0433, \u0441\u0430\u043c\u0431\u043e \u0438 \u0431\u043e\u0440\u044c\u0431\u0430, \u0432\u043e\u0441\u0442\u043e\u0447\u043d\u044b\u0435 \u0435\u0434\u0438\u043d\u043e\u0431\u043e\u0440\u0441\u0442\u0432\u0430 \u0438 \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e. \u041b\u0443\u0447\u0448\u0438\u0435 \u043f\u043e\u0435\u0434\u0438\u043d\u043a\u0438 \u043e\u0442 \u043f\u0440\u043e\u043c\u043e\u0443\u0442\u0435\u0440\u043e\u0432 \u0432\u0441\u0435\u0433\u043e \u043c\u0438\u0440\u0430: \u0431\u043e\u0438 \u043b\u0435\u0433\u0435\u043d\u0434 \u0438 \u0432\u044b\u0441\u0442\u0443\u043f\u043b\u0435\u043d\u0438\u044f \u0432\u043e\u0441\u0445\u043e\u0434\u044f\u0449\u0438\u0445 \u0437\u0432\u0435\u0437\u0434. \u041c\u0430\u0442\u0447 \u0411\u043e\u0435\u0446 \u2014 \u044d\u0442\u043e \u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0435\u0435 \u0431\u043e\u0435\u0432\u043e\u0435 \u0438\u0441\u043a\u0443\u0441\u0441\u0442\u0432\u043e!", + "videoPlayerCode": "\/\/video.matchtv.ru\/iframe\/feed\/start\/na_8e011e545b9aa539a9e585eb0015d0d4\/17_6a6ffd269d21331c36923698e5058dff\/27a704d2e26671812d744beb5f2174a9\/4934710901?sr=14\u0026type_id=\u0026width=100%25\u0026height=100%25\u0026iframe_width=100%25\u0026iframe_height=100%25\u0026lang=ru\u0026skin_name=matchtv", + "platformVideoId": "6a6ffd269d21331c36923698e5058dff", + "package": "16", + "isNeedAuthorization": false, + "webcasterVideoId": 606425, + "chatRoomId": null, + "seoH1": "\u041c\u0430\u0442\u0447! \u0411\u043e\u0435\u0446 | \u041f\u0430\u043a\u0435\u0442 \u0421\u043f\u043e\u0440\u0442", + "seoTitle": "\u041a\u0430\u043d\u0430\u043b \u041c\u0430\u0442\u0447! \u0411\u043e\u0435\u0446 - \u043f\u0440\u044f\u043c\u043e\u0439 \u044d\u0444\u0438\u0440 \u043e\u043d\u043b\u0430\u0439\u043d, \u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0442\u0440\u0430\u043d\u0441\u043b\u044f\u0446\u0438\u0438 \u041c\u041c\u0410 \u0438 \u0431\u043e\u043a\u0441\u0430 \u0432 \u0445\u043e\u0440\u043e\u0448\u0435\u043c \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435", + "seoDescription": "\u041f\u0440\u044f\u043c\u043e\u0439 \u044d\u0444\u0438\u0440 \u0442\u0435\u043b\u0435\u043a\u0430\u043d\u0430\u043b\u0430 \u00ab\u041c\u0430\u0442\u0447! \u0411\u043e\u0435\u0446\u00bb - \u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u043e\u043d\u043b\u0430\u0439\u043d \u0432 \u0445\u043e\u0440\u043e\u0448\u0435\u043c \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043d\u0430 \u0441\u0430\u0439\u0442\u0435 \u00ab\u041c\u0430\u0442\u0447 \u0422\u0412\u00bb. \u0422\u0440\u0430\u043d\u0441\u043b\u044f\u0446\u0438\u0438 \u0442\u0443\u0440\u043d\u0438\u0440\u043e\u0432 \u043f\u043e \u041c\u041c\u0410, \u0431\u043e\u0435\u0432 \u043f\u043e \u0431\u043e\u043a\u0441\u0443, \u0441\u043e\u0440\u0435\u0432\u043d\u043e\u0432\u0430\u043d\u0438\u0439 \u043f\u043e \u0434\u0440\u0443\u0433\u0438\u043c \u0435\u0434\u0438\u043d\u043e\u0431\u043e\u0440\u0441\u0442\u0432\u0430\u043c, \u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438 \u043d\u0430 \u043a\u0430\u043d\u0430\u043b\u0435 \u00ab\u041c\u0430\u0442\u0447! \u0411\u043e\u0435\u0446\u00bb!", + "seoKeywords": "\u041c\u0430\u0442\u0447! \u0411\u043e\u0435\u0446", + "seoMeta": "\u003Clink rel=\u0022canonical\u0022 href=\u0022https:\/\/matchtv.ru\/channel\/boec\u0022\u003E", + "seoText": null, + "imageUrl": "https:\/\/fb-cdn.matchtv.ru\/files\/default\/upload\/a5ee\/374a\/a5ee374ac3cfa8d2ad130bf37a29a53b.jpg", + "thumbnailUrl": "https:\/\/fb-cdn.matchtv.ru\/files\/default\/upload\/5b37\/7bf3\/5b377bf386985eb0bc00c7f727c045c6.png", + "iconUrl": "https:\/\/fb-cdn.matchtv.ru\/files\/default\/upload\/dfd7\/8054\/dfd78054f3b2b5a3ee14c527632ce48f.svg", + "tvChannel": { + "id": 3, + "name": "\u041c\u0430\u0442\u0447 \u0411\u043e\u0435\u0446", + "serviceTvId": 554, + "priority": 100 + }, + "terms": [ + { "id": 175983, "title": "\u0411\u043e\u043a\u0441\/MMA" }, + { "id": 213534, "title": "\u041c\u0430\u0442\u0447! \u0411\u043e\u0435\u0446" } + ], + "currentTvTransmissions": [ + { + "id": 17828753, + "title": "\u0411\u043e\u043a\u0441. Bare Knuckle FC. \u041a\u044d\u043c\u0435\u0440\u043e\u043d \u0412\u0430\u043d\u043a\u0430\u043c\u043f \u043f\u0440\u043e\u0442\u0438\u0432 \u0413\u0440\u0435\u0433\u043e\u0440\u0438\u0441\u0430 \u0421\u0438\u0441\u043d\u0435\u0440\u043e\u0441\u0430. \u0410\u0440\u043d\u043e\u043b\u044c\u0434 \u0410\u0434\u0430\u043c\u0441 \u043f\u0440\u043e\u0442\u0438\u0432 \u0421\u0442\u0438\u0432\u0430 \u0411\u044d\u043d\u043a\u0441. \u0422\u0440\u0430\u043d\u0441\u043b\u044f\u0446\u0438\u044f \u0438\u0437 \u0421\u0428\u0410 [16+]", + "description": "", + "start": 1782541800, + "finish": 1782550500, + "startTime": "2026-06-27T09:30:00+03:00", + "finishTime": "2026-06-27T11:55:00+03:00", + "ageRating": "16+", + "sourceImagePath": "https:\/\/s-cdn.sportbox.ru\/images\/tv_transmission\/17828753-1781880649.jpg" + } + ] + }, + { + "id": 8, + "weight": 9, + "alias": "arena", + "name": "\u041c\u0430\u0442\u0447! \u0410\u0440\u0435\u043d\u0430 | \u041c! \u041c\u0430\u043a\u0441\u0438\u043c\u0443\u043c", + "description": "\u0421\u043e\u0440\u0435\u0432\u043d\u043e\u0432\u0430\u043d\u0438\u044f \u043f\u043e\u0026nbsp;\u0431\u0438\u0430\u0442\u043b\u043e\u043d\u0443 \u0438\u0026nbsp;\u043b\u044b\u0436\u043d\u044b\u043c \u0433\u043e\u043d\u043a\u0430\u043c, \u0444\u0438\u0433\u0443\u0440\u043d\u043e\u043c\u0443 \u043a\u0430\u0442\u0430\u043d\u0438\u044e \u0438\u0026nbsp;\u043f\u043b\u0430\u0432\u0430\u043d\u0438\u044e, \u043b\u0435\u0433\u043a\u043e\u0439 \u0430\u0442\u043b\u0435\u0442\u0438\u043a\u0435 \u0438\u0026nbsp;\u0430\u0432\u0442\u043e\u0441\u043f\u043e\u0440\u0442\u0443\u0026nbsp;\u2014 \u043d\u0430\u0026nbsp;\u041c\u0430\u0442\u0447 \u0410\u0440\u0435\u043d\u0430 \u0441\u043e\u0431\u0440\u0430\u043d\u044b \u0432\u0438\u0434\u044b, \u0433\u0434\u0435 \u0443\u0441\u043f\u0435\u0445 \u0437\u0430\u0432\u0438\u0441\u0438\u0442 \u043e\u0442\u0026nbsp;\u0438\u043d\u0434\u0438\u0432\u0438\u0434\u0443\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u043c\u0430\u0441\u0442\u0435\u0440\u0441\u0442\u0432\u0430!\u003Cp\u003E\u003C\/p\u003E", + "shortDescription": "\u0421\u043e\u0440\u0435\u0432\u043d\u043e\u0432\u0430\u043d\u0438\u044f \u043f\u043e \u0431\u0438\u0430\u0442\u043b\u043e\u043d\u0443 \u0438 \u043b\u044b\u0436\u043d\u044b\u043c \u0433\u043e\u043d\u043a\u0430\u043c, \u0444\u0438\u0433\u0443\u0440\u043d\u043e\u043c\u0443 \u043a\u0430\u0442\u0430\u043d\u0438\u044e \u0438 \u043f\u043b\u0430\u0432\u0430\u043d\u0438\u044e, \u043b\u0435\u0433\u043a\u043e\u0439 \u0430\u0442\u043b\u0435\u0442\u0438\u043a\u0435 \u0438 \u0430\u0432\u0442\u043e\u0441\u043f\u043e\u0440\u0442\u0443 \u2014 \u043d\u0430 \u041c\u0430\u0442\u0447 \u0410\u0440\u0435\u043d\u0430 \u0441\u043e\u0431\u0440\u0430\u043d\u044b \u0432\u0438\u0434\u044b, \u0433\u0434\u0435 \u0443\u0441\u043f\u0435\u0445 \u0437\u0430\u0432\u0438\u0441\u0438\u0442 \u043e\u0442 \u0438\u043d\u0434\u0438\u0432\u0438\u0434\u0443\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u043c\u0430\u0441\u0442\u0435\u0440\u0441\u0442\u0432\u0430!", + "videoPlayerCode": "\/\/video.matchtv.ru\/iframe\/feed\/start\/na_a26972ccc9ac0100160dc6dbddf8e692\/17_9a32d7c6e26c38cbf12eac3bdb76849c\/764c339814404f3aec301f92f46f3249\/4934710917?sr=14\u0026type_id=\u0026width=100%25\u0026height=100%25\u0026iframe_width=100%25\u0026iframe_height=100%25\u0026lang=ru\u0026skin_name=matchtv", + "platformVideoId": "9a32d7c6e26c38cbf12eac3bdb76849c", + "package": "16", + "isNeedAuthorization": false, + "webcasterVideoId": 606429, + "chatRoomId": null, + "seoH1": "\u041c\u0430\u0442\u0447! \u0410\u0440\u0435\u043d\u0430 | \u041c! \u041c\u0430\u043a\u0441\u0438\u043c\u0443\u043c", + "seoTitle": "\u041a\u0430\u043d\u0430\u043b \u041c\u0430\u0442\u0447! \u0410\u0440\u0435\u043d\u0430 - \u043f\u0440\u044f\u043c\u043e\u0439 \u044d\u0444\u0438\u0440 \u043e\u043d\u043b\u0430\u0439\u043d, \u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0442\u0440\u0430\u043d\u0441\u043b\u044f\u0446\u0438\u0438 \u0441\u043f\u043e\u0440\u0442\u0438\u0432\u043d\u044b\u0445 \u0441\u043e\u0440\u0435\u0432\u043d\u043e\u0432\u0430\u043d\u0438\u0439 \u0432 \u0445\u043e\u0440\u043e\u0448\u0435\u043c \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435", + "seoDescription": "\u041f\u0440\u044f\u043c\u043e\u0439 \u044d\u0444\u0438\u0440 \u0442\u0435\u043b\u0435\u043a\u0430\u043d\u0430\u043b\u0430 \u00ab\u041c\u0430\u0442\u0447! \u0410\u0440\u0435\u043d\u0430\u00bb - \u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u043e\u043d\u043b\u0430\u0439\u043d \u0432 \u0445\u043e\u0440\u043e\u0448\u0435\u043c \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043d\u0430 \u0441\u0430\u0439\u0442\u0435 \u00ab\u041c\u0430\u0442\u0447 \u0422\u0412\u00bb. \u0422\u0440\u0430\u043d\u0441\u043b\u044f\u0446\u0438\u0438 \u0441\u043e\u0440\u0435\u0432\u043d\u043e\u0432\u0430\u043d\u0438\u0439 \u043f\u043e \u0431\u0438\u0430\u0442\u043b\u043e\u043d\u0443, \u043b\u044b\u0436\u043d\u044b\u043c \u0433\u043e\u043d\u043a\u0430\u043c, \u043b\u0435\u0433\u043a\u043e\u0439 \u0430\u0442\u043b\u0435\u0442\u0438\u043a\u0435 \u0438 \u0434\u0440\u0443\u0433\u0438\u043c \u0432\u0438\u0434\u0430\u043c \u0441\u043f\u043e\u0440\u0442\u0430 \u043d\u0430 \u043a\u0430\u043d\u0430\u043b\u0435 \u00ab\u041c\u0430\u0442\u0447! \u0410\u0440\u0435\u043d\u0430\u00bb!", + "seoKeywords": "\u041c\u0430\u0442\u0447! \u0410\u0440\u0435\u043d\u0430", + "seoMeta": null, + "seoText": null, + "imageUrl": "https:\/\/fb-cdn.matchtv.ru\/files\/default\/upload\/f768\/e9e1\/f768e9e1e6f4580f69c916d5f5a16132.jpg", + "thumbnailUrl": "https:\/\/fb-cdn.matchtv.ru\/files\/default\/upload\/44a3\/6689\/44a366893d98e8cfc1c1491ea5bce6de.png", + "iconUrl": "https:\/\/fb-cdn.matchtv.ru\/files\/default\/upload\/f2f6\/45b7\/f2f645b7cf0962908fdb5bb485bd0cad.svg", + "tvChannel": { + "id": 137, + "name": "\u041c\u0430\u0442\u0447 \u0410\u0440\u0435\u043d\u0430", + "serviceTvId": 2944, + "priority": 80 + }, + "terms": [ + { "id": 38, "title": "\u0424\u043e\u0440\u043c\u0443\u043b\u0430-1" }, + { "id": 12218, "title": "\u0410\u0432\u0442\u043e\u0441\u043f\u043e\u0440\u0442" }, + { + "id": 160328, + "title": "\u0415\u0432\u0440\u043e\u043f\u0435\u0439\u0441\u043a\u0438\u0435 \u0438\u0433\u0440\u044b" + }, + { "id": 176009, "title": "\u041b\u0435\u0442\u043d\u0438\u0435 \u0432\u0438\u0434\u044b" }, + { "id": 213531, "title": "\u041c\u0430\u0442\u0447! \u0410\u0440\u0435\u043d\u0430" } + ], + "currentTvTransmissions": [ + { + "id": 17829580, + "title": "\u0421\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u043e\u0435 \u043f\u043b\u0430\u0432\u0430\u043d\u0438\u0435. \u041a\u0443\u0431\u043e\u043a \u043c\u0438\u0440\u0430. \u0414\u0443\u044d\u0442\u044b. \u0422\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430. \u0422\u0440\u0430\u043d\u0441\u043b\u044f\u0446\u0438\u044f \u0438\u0437 \u041a\u0438\u0442\u0430\u044f [6+]", + "description": "", + "start": 1782540900, + "finish": 1782549300, + "startTime": "2026-06-27T09:15:00+03:00", + "finishTime": "2026-06-27T11:35:00+03:00", + "ageRating": "6+", + "sourceImagePath": "https:\/\/s-cdn.sportbox.ru\/images\/tv_transmission\/17829580-1781880962.jpg" + } + ] + }, + { + "id": 7, + "weight": 10, + "alias": "igra", + "name": "\u041c\u0430\u0442\u0447! \u0418\u0433\u0440\u0430 | \u041c! \u041c\u0430\u043a\u0441\u0438\u043c\u0443\u043c", + "description": "\u003Cp\u003E\u042d\u0442\u043e\u0442 \u043a\u0430\u043d\u0430\u043b \u043f\u043e\u0441\u0432\u044f\u0449\u0435\u043d \u043a\u043e\u043c\u0430\u043d\u0434\u043d\u044b\u043c \u0432\u0438\u0434\u0430\u043c \u0441\u043f\u043e\u0440\u0442\u0430. \u041d\u0430\u0026nbsp;\u00ab\u0418\u0433\u0440\u0435\u00bb\u0026nbsp;\u2014 \u0442\u043e\u043f\u043e\u0432\u044b\u0435 \u0442\u0443\u0440\u043d\u0438\u0440\u044b \u043f\u043e\u0026nbsp;\u0431\u0430\u0441\u043a\u0435\u0442\u0431\u043e\u043b\u0443, \u0433\u0430\u043d\u0434\u0431\u043e\u043b\u0443, \u0432\u043e\u043b\u0435\u0439\u0431\u043e\u043b\u0443 \u0438\u0026nbsp;\u043d\u0435\u0026nbsp;\u0442\u043e\u043b\u044c\u043a\u043e. \u0410\u0026nbsp;\u043d\u0430\u0448\u0430 \u043a\u043e\u043c\u0430\u043d\u0434\u0430 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0442\u043e\u0440\u043e\u0432\u0026nbsp;\u2014 \u0432\u0441\u0435\u0433\u0434\u0430 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0441\u0026nbsp;\u043f\u043e\u043b\u043d\u043e\u0439 \u043e\u0442\u0434\u0430\u0447\u0435\u0439!\u003C\/p\u003E\u003Cp\u003E\u003Cbr\u003E\u003C\/p\u003E", + "shortDescription": "\u042d\u0442\u043e\u0442 \u043a\u0430\u043d\u0430\u043b \u043f\u043e\u0441\u0432\u044f\u0449\u0435\u043d \u043a\u043e\u043c\u0430\u043d\u0434\u043d\u044b\u043c \u0432\u0438\u0434\u0430\u043c \u0441\u043f\u043e\u0440\u0442\u0430. \u041d\u0430 \u00ab\u0418\u0433\u0440\u0435\u00bb \u2014 \u0442\u043e\u043f\u043e\u0432\u044b\u0435 \u0442\u0443\u0440\u043d\u0438\u0440\u044b \u043f\u043e \u0431\u0430\u0441\u043a\u0435\u0442\u0431\u043e\u043b\u0443, \u0433\u0430\u043d\u0434\u0431\u043e\u043b\u0443, \u0432\u043e\u043b\u0435\u0439\u0431\u043e\u043b\u0443 \u0438 \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e. \u0410 \u043d\u0430\u0448\u0430 \u043a\u043e\u043c\u0430\u043d\u0434\u0430 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0442\u043e\u0440\u043e\u0432 \u2014 \u0432\u0441\u0435\u0433\u0434\u0430 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0441 \u043f\u043e\u043b\u043d\u043e\u0439 \u043e\u0442\u0434\u0430\u0447\u0435\u0439!", + "videoPlayerCode": "\/\/video.matchtv.ru\/iframe\/feed\/start\/na_5e5f7b66fb3f1deb56f706bef2366edf\/17_76666997491217f4514cc1c9316ab99d\/791e47a7b142fe09d5040cc98caf676e\/4934710916?sr=14\u0026type_id=\u0026width=100%25\u0026height=100%25\u0026iframe_width=100%25\u0026iframe_height=100%25\u0026lang=ru\u0026skin_name=matchtv", + "platformVideoId": "76666997491217f4514cc1c9316ab99d", + "package": "16", + "isNeedAuthorization": false, + "webcasterVideoId": 606421, + "chatRoomId": null, + "seoH1": "\u041c\u0430\u0442\u0447! \u0418\u0433\u0440\u0430 | \u041c! \u041c\u0430\u043a\u0441\u0438\u043c\u0443\u043c", + "seoTitle": "\u041a\u0430\u043d\u0430\u043b \u041c\u0430\u0442\u0447! \u0418\u0433\u0440\u0430 - \u043f\u0440\u044f\u043c\u043e\u0439 \u044d\u0444\u0438\u0440 \u043e\u043d\u043b\u0430\u0439\u043d, \u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0431\u0435\u0441\u043f\u043b\u0430\u0442\u043d\u043e \u0442\u0440\u0430\u043d\u0441\u043b\u044f\u0446\u0438\u0438 \u0441\u043e\u0440\u0435\u0432\u043d\u043e\u0432\u0430\u043d\u0438\u0439 \u0432 \u0445\u043e\u0440\u043e\u0448\u0435\u043c \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435", + "seoDescription": "\u041f\u0440\u044f\u043c\u043e\u0439 \u044d\u0444\u0438\u0440 \u0444\u0435\u0434\u0435\u0440\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u043e\u0431\u0449\u0435\u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e\u0433\u043e \u0442\u0435\u043b\u0435\u043a\u0430\u043d\u0430\u043b\u0430 \u00ab\u041c\u0430\u0442\u0447! \u0418\u0433\u0440\u0430\u00bb - \u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0431\u0435\u0441\u043f\u043b\u0430\u0442\u043d\u043e \u043e\u043d\u043b\u0430\u0439\u043d \u0432 \u0445\u043e\u0440\u043e\u0448\u0435\u043c \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043d\u0430 \u0441\u0430\u0439\u0442\u0435 \u00ab\u041c\u0430\u0442\u0447 \u0422\u0412\u00bb. \u0422\u0440\u0430\u043d\u0441\u043b\u044f\u0446\u0438\u0438 \u0441\u043e\u0440\u0435\u0432\u043d\u043e\u0432\u0430\u043d\u0438\u0439, \u043d\u043e\u0432\u043e\u0441\u0442\u0438, \u0440\u0435\u043f\u043e\u0440\u0442\u0430\u0436\u0438, \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u043b\u044c\u043d\u044b\u0435 \u0444\u0438\u043b\u044c\u043c\u044b, \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438 \u043d\u0430 \u043a\u0430\u043d\u0430\u043b\u0435 \u00ab\u041c\u0430\u0442\u0447! \u0418\u0433\u0440\u0430\u00bb!", + "seoKeywords": "\u041c\u0430\u0442\u0447! \u0418\u0433\u0440\u0430", + "seoMeta": null, + "seoText": null, + "imageUrl": "https:\/\/fb-cdn.matchtv.ru\/files\/default\/upload\/e939\/2d16\/e9392d16bb9fbda00953e29d7a3af284.jpg", + "thumbnailUrl": "https:\/\/fb-cdn.matchtv.ru\/files\/default\/upload\/6b45\/0490\/6b4504901702d992df910d8072e67eee.png", + "iconUrl": "https:\/\/fb-cdn.matchtv.ru\/files\/default\/upload\/195d\/f488\/195df488b284a339df19aaa6660a70cd.svg", + "tvChannel": { + "id": 138, + "name": "\u041c\u0430\u0442\u0447 \u0418\u0433\u0440\u0430", + "serviceTvId": 2945, + "priority": 90 + }, + "terms": [ + { "id": 45, "title": "\u0411\u0430\u0441\u043a\u0435\u0442\u0431\u043e\u043b" }, + { "id": 169, "title": "\u0422\u0435\u043d\u043d\u0438\u0441" }, + { "id": 178, "title": "\u0412\u043e\u043b\u0435\u0439\u0431\u043e\u043b" } + ], + "currentTvTransmissions": [ + { + "id": 17829708, + "title": "\u0412\u043e\u043b\u0435\u0439\u0431\u043e\u043b. \u041a\u0443\u0431\u043e\u043a \u0420\u043e\u0441\u0441\u0438\u0438. \u0416\u0435\u043d\u0449\u0438\u043d\u044b. \u0424\u0438\u043d\u0430\u043b \u0448\u0435\u0441\u0442\u0438. 1\/2 \u0444\u0438\u043d\u0430\u043b\u0430. \u0022\u0414\u0438\u043d\u0430\u043c\u043e\u0022 (\u041c\u043e\u0441\u043a\u0432\u0430) - \u0022\u0423\u0440\u0430\u043b\u043e\u0447\u043a\u0430-\u041d\u0422\u041c\u041a\u0022 (\u0421\u0432\u0435\u0440\u0434\u043b\u043e\u0432\u0441\u043a\u0430\u044f \u043e\u0431\u043b\u0430\u0441\u0442\u044c). \u0422\u0440\u0430\u043d\u0441\u043b\u044f\u0446\u0438\u044f \u0438\u0437 \u041c\u043e\u0441\u043a\u0432\u044b [6+]", + "description": "", + "start": 1782544500, + "finish": 1782554100, + "startTime": "2026-06-27T10:15:00+03:00", + "finishTime": "2026-06-27T12:55:00+03:00", + "ageRating": "6+", + "sourceImagePath": "https:\/\/s-cdn.sportbox.ru\/images\/tv_transmission\/17829708-1782195506.jpg" + } + ] + } + ] +} diff --git a/tests/data/yandextv/__init__.py b/tests/data/yandextv/__init__.py index 39ecdc9..a8f99bf 100644 --- a/tests/data/yandextv/__init__.py +++ b/tests/data/yandextv/__init__.py @@ -6,5 +6,6 @@ YANDEXTV_MOCK_SOURCE = MockSource( Path(__file__).parent, { "test": "test.html", + "suggest-tv2": "suggest-tv2.json", }, ) diff --git a/tests/data/yandextv/suggest-tv2.json b/tests/data/yandextv/suggest-tv2.json new file mode 100644 index 0000000..03549e6 --- /dev/null +++ b/tests/data/yandextv/suggest-tv2.json @@ -0,0 +1,423 @@ +[ + "матч", + [ + [ + "bemjson", + "Матч!", + { + "url": "https:\/\/tv.yandex.ru\/channels\/1593", + "target": "_self", + "bemjson": [ + { + "elem": "icon", + "elemMods": { + "size": "l" + }, + "png": "\/\/avatars.mds.yandex.net\/get-tv-channel-logos\/70787\/2a0000016e2603ad95657bcd08dc16bad081\/square", + "png": "\/\/avatars.mds.yandex.net\/get-tv-channel-logos\/70787\/2a0000016e2603ad95657bcd08dc16bad081\/square", + "png": "\/\/avatars.mds.yandex.net\/get-tv-channel-logos\/70787\/2a0000016e2603ad95657bcd08dc16bad081\/small", + "png": "\/\/avatars.mds.yandex.net\/get-tv-channel-logos\/70787\/2a0000016e2603ad95657bcd08dc16bad081\/small", + "png": "\/\/avatars.mds.yandex.net\/get-tv-channel-logos\/70787\/2a0000016e2603ad95657bcd08dc16bad081\/40x30", + "png": "\/\/avatars.mds.yandex.net\/get-tv-channel-logos\/70787\/2a0000016e2603ad95657bcd08dc16bad081\/40x30", + "png": "\/\/avatars.mds.yandex.net\/get-tv-channel-logos\/70787\/2a0000016e2603ad95657bcd08dc16bad081\/48x72", + "png": "\/\/avatars.mds.yandex.net\/get-tv-channel-logos\/70787\/2a0000016e2603ad95657bcd08dc16bad081\/48x68", + "png": "\/\/avatars.mds.yandex.net\/get-tv-channel-logos\/70787\/2a0000016e2603ad95657bcd08dc16bad081\/48x72", + "png": "\/\/avatars.mds.yandex.net\/get-tv-channel-logos\/70787\/2a0000016e2603ad95657bcd08dc16bad081\/48x68", + "png": "\/\/avatars.mds.yandex.net\/get-tv-channel-logos\/70787\/2a0000016e2603ad95657bcd08dc16bad081\/60x45", + "png": "\/\/avatars.mds.yandex.net\/get-tv-channel-logos\/70787\/2a0000016e2603ad95657bcd08dc16bad081\/60x45", + "png": "\/\/avatars.mds.yandex.net\/get-tv-channel-logos\/70787\/2a0000016e2603ad95657bcd08dc16bad081\/64x36", + "png": "\/\/avatars.mds.yandex.net\/get-tv-channel-logos\/70787\/2a0000016e2603ad95657bcd08dc16bad081\/alice_64_48", + "png": "\/\/avatars.mds.yandex.net\/get-tv-channel-logos\/70787\/2a0000016e2603ad95657bcd08dc16bad081\/64x36", + "png": "\/\/avatars.mds.yandex.net\/get-tv-channel-logos\/70787\/2a0000016e2603ad95657bcd08dc16bad081\/alice_64_48", + "png": "\/\/avatars.mds.yandex.net\/get-tv-channel-logos\/70787\/2a0000016e2603ad95657bcd08dc16bad081\/x", + "png": "\/\/avatars.mds.yandex.net\/get-tv-channel-logos\/70787\/2a0000016e2603ad95657bcd08dc16bad081\/x", + "png": "\/\/avatars.mds.yandex.net\/get-tv-channel-logos\/70787\/2a0000016e2603ad95657bcd08dc16bad081\/80x60", + "png": "\/\/avatars.mds.yandex.net\/get-tv-channel-logos\/70787\/2a0000016e2603ad95657bcd08dc16bad081\/80x45", + "png": "\/\/avatars.mds.yandex.net\/get-tv-channel-logos\/70787\/2a0000016e2603ad95657bcd08dc16bad081\/80x60", + "png": "\/\/avatars.mds.yandex.net\/get-tv-channel-logos\/70787\/2a0000016e2603ad95657bcd08dc16bad081\/80x45", + "png": "\/\/avatars.mds.yandex.net\/get-tv-channel-logos\/70787\/2a0000016e2603ad95657bcd08dc16bad081\/114x80", + "png": "\/\/avatars.mds.yandex.net\/get-tv-channel-logos\/70787\/2a0000016e2603ad95657bcd08dc16bad081\/114x80", + "png": "\/\/avatars.mds.yandex.net\/get-tv-channel-logos\/70787\/2a0000016e2603ad95657bcd08dc16bad081\/120x90", + "png": "\/\/avatars.mds.yandex.net\/get-tv-channel-logos\/70787\/2a0000016e2603ad95657bcd08dc16bad081\/middle", + "png": "\/\/avatars.mds.yandex.net\/get-tv-channel-logos\/70787\/2a0000016e2603ad95657bcd08dc16bad081\/120x90", + "png": "\/\/avatars.mds.yandex.net\/get-tv-channel-logos\/70787\/2a0000016e2603ad95657bcd08dc16bad081\/middle", + "png": "\/\/avatars.mds.yandex.net\/get-tv-channel-logos\/70787\/2a0000016e2603ad95657bcd08dc16bad081\/130x80", + "png": "\/\/avatars.mds.yandex.net\/get-tv-channel-logos\/70787\/2a0000016e2603ad95657bcd08dc16bad081\/130x80", + "png": "\/\/avatars.mds.yandex.net\/get-tv-channel-logos\/70787\/2a0000016e2603ad95657bcd08dc16bad081\/y", + "png": "\/\/avatars.mds.yandex.net\/get-tv-channel-logos\/70787\/2a0000016e2603ad95657bcd08dc16bad081\/y", + "png": "\/\/avatars.mds.yandex.net\/get-tv-channel-logos\/70787\/2a0000016e2603ad95657bcd08dc16bad081\/214x121", + "png": "\/\/avatars.mds.yandex.net\/get-tv-channel-logos\/70787\/2a0000016e2603ad95657bcd08dc16bad081\/368x280", + "png": "\/\/avatars.mds.yandex.net\/get-tv-channel-logos\/70787\/2a0000016e2603ad95657bcd08dc16bad081\/184x140", + "png": "\/\/avatars.mds.yandex.net\/get-tv-channel-logos\/70787\/2a0000016e2603ad95657bcd08dc16bad081\/428x280", + "png": "\/\/avatars.mds.yandex.net\/get-tv-channel-logos\/70787\/2a0000016e2603ad95657bcd08dc16bad081\/z", + "png": "\/\/avatars.mds.yandex.net\/get-tv-channel-logos\/70787\/2a0000016e2603ad95657bcd08dc16bad081\/170x100", + "png": "\/\/avatars.mds.yandex.net\/get-tv-channel-logos\/70787\/2a0000016e2603ad95657bcd08dc16bad081\/340x200", + "png": "\/\/avatars.mds.yandex.net\/get-tv-channel-logos\/70787\/2a0000016e2603ad95657bcd08dc16bad081\/260x160", + "png": "\/\/avatars.mds.yandex.net\/get-tv-channel-logos\/70787\/2a0000016e2603ad95657bcd08dc16bad081\/160x90", + "png": "\/\/avatars.mds.yandex.net\/get-tv-channel-logos\/70787\/2a0000016e2603ad95657bcd08dc16bad081\/160x120", + "png": "\/\/avatars.mds.yandex.net\/get-tv-channel-logos\/70787\/2a0000016e2603ad95657bcd08dc16bad081\/160x160", + "png": "\/\/avatars.mds.yandex.net\/get-tv-channel-logos\/70787\/2a0000016e2603ad95657bcd08dc16bad081\/orig", + "png": "\/\/avatars.mds.yandex.net\/get-tv-channel-logos\/70787\/2a0000016e2603ad95657bcd08dc16bad081\/214x121", + "png": "\/\/avatars.mds.yandex.net\/get-tv-channel-logos\/70787\/2a0000016e2603ad95657bcd08dc16bad081\/368x280", + "png": "\/\/avatars.mds.yandex.net\/get-tv-channel-logos\/70787\/2a0000016e2603ad95657bcd08dc16bad081\/184x140", + "png": "\/\/avatars.mds.yandex.net\/get-tv-channel-logos\/70787\/2a0000016e2603ad95657bcd08dc16bad081\/428x280", + "png": "\/\/avatars.mds.yandex.net\/get-tv-channel-logos\/70787\/2a0000016e2603ad95657bcd08dc16bad081\/z", + "png": "\/\/avatars.mds.yandex.net\/get-tv-channel-logos\/70787\/2a0000016e2603ad95657bcd08dc16bad081\/170x100", + "png": "\/\/avatars.mds.yandex.net\/get-tv-channel-logos\/70787\/2a0000016e2603ad95657bcd08dc16bad081\/340x200", + "png": "\/\/avatars.mds.yandex.net\/get-tv-channel-logos\/70787\/2a0000016e2603ad95657bcd08dc16bad081\/260x160", + "png": "\/\/avatars.mds.yandex.net\/get-tv-channel-logos\/70787\/2a0000016e2603ad95657bcd08dc16bad081\/160x90", + "png": "\/\/avatars.mds.yandex.net\/get-tv-channel-logos\/70787\/2a0000016e2603ad95657bcd08dc16bad081\/160x120", + "png": "\/\/avatars.mds.yandex.net\/get-tv-channel-logos\/70787\/2a0000016e2603ad95657bcd08dc16bad081\/160x160", + "png": "\/\/avatars.mds.yandex.net\/get-tv-channel-logos\/70787\/2a0000016e2603ad95657bcd08dc16bad081\/orig", + "attrs": { + "style": "margin-right: 5px;" + } + }, + { + "elem": "text", + "content": "Матч!" + } + ], + "label": "Каналы" + } + ], + [ + "bemjson", + "Матч Премьер", + { + "url": "https:\/\/tv.yandex.ru\/channels\/1861", + "target": "_self", + "bemjson": [ + { + "elem": "icon", + "elemMods": { + "size": "l" + }, + "png": "\/\/avatars.mds.yandex.net\/get-tv-channel-logos\/28884\/2a00000164ea55a8e4e47294c57caf3f249c\/square", + "png": "\/\/avatars.mds.yandex.net\/get-tv-channel-logos\/28884\/2a00000164ea55a8e4e47294c57caf3f249c\/square", + "png": "\/\/avatars.mds.yandex.net\/get-tv-channel-logos\/28884\/2a00000164ea55a8e4e47294c57caf3f249c\/small", + "png": "\/\/avatars.mds.yandex.net\/get-tv-channel-logos\/28884\/2a00000164ea55a8e4e47294c57caf3f249c\/small", + "png": "\/\/avatars.mds.yandex.net\/get-tv-channel-logos\/28884\/2a00000164ea55a8e4e47294c57caf3f249c\/40x30", + "png": "\/\/avatars.mds.yandex.net\/get-tv-channel-logos\/28884\/2a00000164ea55a8e4e47294c57caf3f249c\/40x30", + "png": "\/\/avatars.mds.yandex.net\/get-tv-channel-logos\/28884\/2a00000164ea55a8e4e47294c57caf3f249c\/60x45", + "png": "\/\/avatars.mds.yandex.net\/get-tv-channel-logos\/28884\/2a00000164ea55a8e4e47294c57caf3f249c\/60x45", + "png": "\/\/avatars.mds.yandex.net\/get-tv-channel-logos\/28884\/2a00000164ea55a8e4e47294c57caf3f249c\/alice_64_48", + "png": "\/\/avatars.mds.yandex.net\/get-tv-channel-logos\/28884\/2a00000164ea55a8e4e47294c57caf3f249c\/alice_64_48", + "png": "\/\/avatars.mds.yandex.net\/get-tv-channel-logos\/28884\/2a00000164ea55a8e4e47294c57caf3f249c\/x", + "png": "\/\/avatars.mds.yandex.net\/get-tv-channel-logos\/28884\/2a00000164ea55a8e4e47294c57caf3f249c\/x", + "png": "\/\/avatars.mds.yandex.net\/get-tv-channel-logos\/28884\/2a00000164ea55a8e4e47294c57caf3f249c\/80x60", + "png": "\/\/avatars.mds.yandex.net\/get-tv-channel-logos\/28884\/2a00000164ea55a8e4e47294c57caf3f249c\/80x60", + "png": "\/\/avatars.mds.yandex.net\/get-tv-channel-logos\/28884\/2a00000164ea55a8e4e47294c57caf3f249c\/114x80", + "png": "\/\/avatars.mds.yandex.net\/get-tv-channel-logos\/28884\/2a00000164ea55a8e4e47294c57caf3f249c\/114x80", + "png": "\/\/avatars.mds.yandex.net\/get-tv-channel-logos\/28884\/2a00000164ea55a8e4e47294c57caf3f249c\/120x90", + "png": "\/\/avatars.mds.yandex.net\/get-tv-channel-logos\/28884\/2a00000164ea55a8e4e47294c57caf3f249c\/middle", + "png": "\/\/avatars.mds.yandex.net\/get-tv-channel-logos\/28884\/2a00000164ea55a8e4e47294c57caf3f249c\/120x90", + "png": "\/\/avatars.mds.yandex.net\/get-tv-channel-logos\/28884\/2a00000164ea55a8e4e47294c57caf3f249c\/middle", + "png": "\/\/avatars.mds.yandex.net\/get-tv-channel-logos\/28884\/2a00000164ea55a8e4e47294c57caf3f249c\/130x80", + "png": "\/\/avatars.mds.yandex.net\/get-tv-channel-logos\/28884\/2a00000164ea55a8e4e47294c57caf3f249c\/130x80", + "png": "\/\/avatars.mds.yandex.net\/get-tv-channel-logos\/28884\/2a00000164ea55a8e4e47294c57caf3f249c\/y", + "png": "\/\/avatars.mds.yandex.net\/get-tv-channel-logos\/28884\/2a00000164ea55a8e4e47294c57caf3f249c\/y", + "png": "\/\/avatars.mds.yandex.net\/get-tv-channel-logos\/28884\/2a00000164ea55a8e4e47294c57caf3f249c\/184x140", + "png": "\/\/avatars.mds.yandex.net\/get-tv-channel-logos\/28884\/2a00000164ea55a8e4e47294c57caf3f249c\/160x120", + "png": "\/\/avatars.mds.yandex.net\/get-tv-channel-logos\/28884\/2a00000164ea55a8e4e47294c57caf3f249c\/160x90", + "png": "\/\/avatars.mds.yandex.net\/get-tv-channel-logos\/28884\/2a00000164ea55a8e4e47294c57caf3f249c\/260x160", + "png": "\/\/avatars.mds.yandex.net\/get-tv-channel-logos\/28884\/2a00000164ea55a8e4e47294c57caf3f249c\/428x280", + "png": "\/\/avatars.mds.yandex.net\/get-tv-channel-logos\/28884\/2a00000164ea55a8e4e47294c57caf3f249c\/340x200", + "png": "\/\/avatars.mds.yandex.net\/get-tv-channel-logos\/28884\/2a00000164ea55a8e4e47294c57caf3f249c\/z", + "png": "\/\/avatars.mds.yandex.net\/get-tv-channel-logos\/28884\/2a00000164ea55a8e4e47294c57caf3f249c\/214x121", + "png": "\/\/avatars.mds.yandex.net\/get-tv-channel-logos\/28884\/2a00000164ea55a8e4e47294c57caf3f249c\/160x160", + "png": "\/\/avatars.mds.yandex.net\/get-tv-channel-logos\/28884\/2a00000164ea55a8e4e47294c57caf3f249c\/368x280", + "png": "\/\/avatars.mds.yandex.net\/get-tv-channel-logos\/28884\/2a00000164ea55a8e4e47294c57caf3f249c\/170x100", + "png": "\/\/avatars.mds.yandex.net\/get-tv-channel-logos\/28884\/2a00000164ea55a8e4e47294c57caf3f249c\/orig", + "png": "\/\/avatars.mds.yandex.net\/get-tv-channel-logos\/28884\/2a00000164ea55a8e4e47294c57caf3f249c\/184x140", + "png": "\/\/avatars.mds.yandex.net\/get-tv-channel-logos\/28884\/2a00000164ea55a8e4e47294c57caf3f249c\/160x120", + "png": "\/\/avatars.mds.yandex.net\/get-tv-channel-logos\/28884\/2a00000164ea55a8e4e47294c57caf3f249c\/160x90", + "png": "\/\/avatars.mds.yandex.net\/get-tv-channel-logos\/28884\/2a00000164ea55a8e4e47294c57caf3f249c\/260x160", + "png": "\/\/avatars.mds.yandex.net\/get-tv-channel-logos\/28884\/2a00000164ea55a8e4e47294c57caf3f249c\/428x280", + "png": "\/\/avatars.mds.yandex.net\/get-tv-channel-logos\/28884\/2a00000164ea55a8e4e47294c57caf3f249c\/340x200", + "png": "\/\/avatars.mds.yandex.net\/get-tv-channel-logos\/28884\/2a00000164ea55a8e4e47294c57caf3f249c\/z", + "png": "\/\/avatars.mds.yandex.net\/get-tv-channel-logos\/28884\/2a00000164ea55a8e4e47294c57caf3f249c\/214x121", + "png": "\/\/avatars.mds.yandex.net\/get-tv-channel-logos\/28884\/2a00000164ea55a8e4e47294c57caf3f249c\/160x160", + "png": "\/\/avatars.mds.yandex.net\/get-tv-channel-logos\/28884\/2a00000164ea55a8e4e47294c57caf3f249c\/368x280", + "png": "\/\/avatars.mds.yandex.net\/get-tv-channel-logos\/28884\/2a00000164ea55a8e4e47294c57caf3f249c\/170x100", + "png": "\/\/avatars.mds.yandex.net\/get-tv-channel-logos\/28884\/2a00000164ea55a8e4e47294c57caf3f249c\/orig", + "attrs": { + "style": "margin-right: 5px;" + } + }, + { + "elem": "text", + "content": "Матч Премьер" + } + ], + "label": "Каналы" + } + ], + [ + "bemjson", + "Матч! Арена", + { + "url": "https:\/\/tv.yandex.ru\/channels\/1667", + "target": "_self", + "bemjson": [ + { + "elem": "icon", + "elemMods": { + "size": "l" + }, + "png": "\/\/avatars.mds.yandex.net\/get-tv-channel-logos\/27485\/2a000001600802507cc14a8dfebd96835e47\/square", + "png": "\/\/avatars.mds.yandex.net\/get-tv-channel-logos\/27485\/2a000001600802507cc14a8dfebd96835e47\/square", + "png": "\/\/avatars.mds.yandex.net\/get-tv-channel-logos\/27485\/2a000001600802507cc14a8dfebd96835e47\/small", + "png": "\/\/avatars.mds.yandex.net\/get-tv-channel-logos\/27485\/2a000001600802507cc14a8dfebd96835e47\/small", + "png": "\/\/avatars.mds.yandex.net\/get-tv-channel-logos\/27485\/2a000001600802507cc14a8dfebd96835e47\/40x30", + "png": "\/\/avatars.mds.yandex.net\/get-tv-channel-logos\/27485\/2a000001600802507cc14a8dfebd96835e47\/40x30", + "png": "\/\/avatars.mds.yandex.net\/get-tv-channel-logos\/27485\/2a000001600802507cc14a8dfebd96835e47\/60x45", + "png": "\/\/avatars.mds.yandex.net\/get-tv-channel-logos\/27485\/2a000001600802507cc14a8dfebd96835e47\/60x45", + "png": "\/\/avatars.mds.yandex.net\/get-tv-channel-logos\/27485\/2a000001600802507cc14a8dfebd96835e47\/alice_64_48", + "png": "\/\/avatars.mds.yandex.net\/get-tv-channel-logos\/27485\/2a000001600802507cc14a8dfebd96835e47\/alice_64_48", + "png": "\/\/avatars.mds.yandex.net\/get-tv-channel-logos\/27485\/2a000001600802507cc14a8dfebd96835e47\/x", + "png": "\/\/avatars.mds.yandex.net\/get-tv-channel-logos\/27485\/2a000001600802507cc14a8dfebd96835e47\/x", + "png": "\/\/avatars.mds.yandex.net\/get-tv-channel-logos\/69315\/2a00000160080262b3c5f1b231e9c1a50c16\/orig", + "png": "\/\/avatars.mds.yandex.net\/get-tv-channel-logos\/69315\/2a00000160080262b3c5f1b231e9c1a50c16\/orig", + "png": "\/\/avatars.mds.yandex.net\/get-tv-channel-logos\/27485\/2a000001600802507cc14a8dfebd96835e47\/114x80", + "png": "\/\/avatars.mds.yandex.net\/get-tv-channel-logos\/27485\/2a000001600802507cc14a8dfebd96835e47\/114x80", + "png": "\/\/avatars.mds.yandex.net\/get-tv-channel-logos\/27485\/2a000001600802507cc14a8dfebd96835e47\/middle", + "png": "\/\/avatars.mds.yandex.net\/get-tv-channel-logos\/30303\/2a0000016008026461f08cb3fdd86e3a2457\/orig", + "png": "\/\/avatars.mds.yandex.net\/get-tv-channel-logos\/27485\/2a000001600802507cc14a8dfebd96835e47\/middle", + "png": "\/\/avatars.mds.yandex.net\/get-tv-channel-logos\/30303\/2a0000016008026461f08cb3fdd86e3a2457\/orig", + "png": "\/\/avatars.mds.yandex.net\/get-tv-channel-logos\/27485\/2a000001600802507cc14a8dfebd96835e47\/y", + "png": "\/\/avatars.mds.yandex.net\/get-tv-channel-logos\/27485\/2a000001600802507cc14a8dfebd96835e47\/y", + "png": "\/\/avatars.mds.yandex.net\/get-tv-channel-logos\/51763\/2a0000016008026771d2f3c7dac0e8d437f9\/orig", + "png": "\/\/avatars.mds.yandex.net\/get-tv-channel-logos\/69315\/2a000001600802686dbbbed380ec99afc655\/orig", + "png": "\/\/avatars.mds.yandex.net\/get-tv-channel-logos\/51763\/2a000001600802653c391d2e32075819e8f6\/orig", + "png": "\/\/avatars.mds.yandex.net\/get-tv-channel-logos\/70787\/2a0000016008026696804b8c4e42f226e439\/orig", + "png": "\/\/avatars.mds.yandex.net\/get-tv-channel-logos\/27485\/2a000001600802507cc14a8dfebd96835e47\/orig", + "png": "\/\/avatars.mds.yandex.net\/get-tv-channel-logos\/51763\/2a0000016008026771d2f3c7dac0e8d437f9\/orig", + "png": "\/\/avatars.mds.yandex.net\/get-tv-channel-logos\/69315\/2a000001600802686dbbbed380ec99afc655\/orig", + "png": "\/\/avatars.mds.yandex.net\/get-tv-channel-logos\/51763\/2a000001600802653c391d2e32075819e8f6\/orig", + "png": "\/\/avatars.mds.yandex.net\/get-tv-channel-logos\/70787\/2a0000016008026696804b8c4e42f226e439\/orig", + "png": "\/\/avatars.mds.yandex.net\/get-tv-channel-logos\/27485\/2a000001600802507cc14a8dfebd96835e47\/orig", + "attrs": { + "style": "margin-right: 5px;" + } + }, + { + "elem": "text", + "content": "Матч! Арена" + } + ], + "label": "Каналы" + } + ], + [ + "bemjson", + "Матч! Боец", + { + "url": "https:\/\/tv.yandex.ru\/channels\/454", + "target": "_self", + "bemjson": [ + { + "elem": "icon", + "elemMods": { + "size": "l" + }, + "png": "\/\/avatars.mds.yandex.net\/get-tv-channel-logos\/69315\/2a000001600802bf4bc9e92d4f31f4a9878b\/square", + "png": "\/\/avatars.mds.yandex.net\/get-tv-channel-logos\/69315\/2a000001600802bf4bc9e92d4f31f4a9878b\/square", + "png": "\/\/avatars.mds.yandex.net\/get-tv-channel-logos\/69315\/2a000001600802bf4bc9e92d4f31f4a9878b\/small", + "png": "\/\/avatars.mds.yandex.net\/get-tv-channel-logos\/69315\/2a000001600802bf4bc9e92d4f31f4a9878b\/small", + "png": "\/\/avatars.mds.yandex.net\/get-tv-channel-logos\/69315\/2a000001600802bf4bc9e92d4f31f4a9878b\/40x30", + "png": "\/\/avatars.mds.yandex.net\/get-tv-channel-logos\/69315\/2a000001600802bf4bc9e92d4f31f4a9878b\/40x30", + "png": "\/\/avatars.mds.yandex.net\/get-tv-channel-logos\/69315\/2a000001600802bf4bc9e92d4f31f4a9878b\/60x45", + "png": "\/\/avatars.mds.yandex.net\/get-tv-channel-logos\/69315\/2a000001600802bf4bc9e92d4f31f4a9878b\/60x45", + "png": "\/\/avatars.mds.yandex.net\/get-tv-channel-logos\/69315\/2a000001600802bf4bc9e92d4f31f4a9878b\/alice_64_48", + "png": "\/\/avatars.mds.yandex.net\/get-tv-channel-logos\/69315\/2a000001600802bf4bc9e92d4f31f4a9878b\/alice_64_48", + "png": "\/\/avatars.mds.yandex.net\/get-tv-channel-logos\/69315\/2a000001600802bf4bc9e92d4f31f4a9878b\/x", + "png": "\/\/avatars.mds.yandex.net\/get-tv-channel-logos\/69315\/2a000001600802bf4bc9e92d4f31f4a9878b\/x", + "png": "\/\/avatars.mds.yandex.net\/get-tv-channel-logos\/27485\/2a000001600802e5ce16abfff4ef6582314b\/orig", + "png": "\/\/avatars.mds.yandex.net\/get-tv-channel-logos\/27485\/2a000001600802e5ce16abfff4ef6582314b\/orig", + "png": "\/\/avatars.mds.yandex.net\/get-tv-channel-logos\/69315\/2a000001600802bf4bc9e92d4f31f4a9878b\/114x80", + "png": "\/\/avatars.mds.yandex.net\/get-tv-channel-logos\/69315\/2a000001600802bf4bc9e92d4f31f4a9878b\/114x80", + "png": "\/\/avatars.mds.yandex.net\/get-tv-channel-logos\/27485\/2a000001600802ed550b3e50934bd9590a8d\/orig", + "png": "\/\/avatars.mds.yandex.net\/get-tv-channel-logos\/69315\/2a000001600802bf4bc9e92d4f31f4a9878b\/middle", + "png": "\/\/avatars.mds.yandex.net\/get-tv-channel-logos\/27485\/2a000001600802ed550b3e50934bd9590a8d\/orig", + "png": "\/\/avatars.mds.yandex.net\/get-tv-channel-logos\/69315\/2a000001600802bf4bc9e92d4f31f4a9878b\/middle", + "png": "\/\/avatars.mds.yandex.net\/get-tv-channel-logos\/69315\/2a000001600802bf4bc9e92d4f31f4a9878b\/y", + "png": "\/\/avatars.mds.yandex.net\/get-tv-channel-logos\/69315\/2a000001600802bf4bc9e92d4f31f4a9878b\/y", + "png": "\/\/avatars.mds.yandex.net\/get-tv-channel-logos\/69315\/2a000001600802fb1f6c51e988763d812c9a\/orig", + "png": "\/\/avatars.mds.yandex.net\/get-tv-channel-logos\/70787\/2a000001600803041768d758a55eb7e2badb\/orig", + "png": "\/\/avatars.mds.yandex.net\/get-tv-channel-logos\/30303\/2a0000016008030a3439b27b50315e0282d5\/orig", + "png": "\/\/avatars.mds.yandex.net\/get-tv-channel-logos\/69315\/2a000001600802f430b56de4f7f74fa9d062\/orig", + "png": "\/\/avatars.mds.yandex.net\/get-tv-channel-logos\/69315\/2a000001600802bf4bc9e92d4f31f4a9878b\/orig", + "png": "\/\/avatars.mds.yandex.net\/get-tv-channel-logos\/69315\/2a000001600802fb1f6c51e988763d812c9a\/orig", + "png": "\/\/avatars.mds.yandex.net\/get-tv-channel-logos\/70787\/2a000001600803041768d758a55eb7e2badb\/orig", + "png": "\/\/avatars.mds.yandex.net\/get-tv-channel-logos\/30303\/2a0000016008030a3439b27b50315e0282d5\/orig", + "png": "\/\/avatars.mds.yandex.net\/get-tv-channel-logos\/69315\/2a000001600802f430b56de4f7f74fa9d062\/orig", + "png": "\/\/avatars.mds.yandex.net\/get-tv-channel-logos\/69315\/2a000001600802bf4bc9e92d4f31f4a9878b\/orig", + "attrs": { + "style": "margin-right: 5px;" + } + }, + { + "elem": "text", + "content": "Матч! Боец" + } + ], + "label": "Каналы" + } + ], + [ + "bemjson", + "Матч Поинт", + { + "url": "https:\/\/tv.yandex.ru\/program\/8975707?eventId=258920426", + "target": "_self", + "label": "Передачи", + "bemjson": [ + { + "elem": "info", + "content": [ + { + "elem": "img", + "elemMods": { + "size": "m" + }, + "src": "\/\/avatars.mds.yandex.net\/get-tv-shows\/28313\/2a0000019e1b8bb6911cbc36699f5e382156\/120x90" + }, + { + "elem": "text", + "elemMods": { + "type": "title-url" + }, + "content": "Матч Поинт" + }, + { + "elem": "desc", + "content": "КИНОМАН, сегодня, 18:00" + } + ] + } + ] + } + ], + [ + "bemjson", + "Матч", + { + "url": "https:\/\/tv.yandex.ru\/program\/9094736?eventId=258988710", + "target": "_self", + "label": "Передачи", + "bemjson": [ + { + "elem": "info", + "content": [ + { + "elem": "img", + "elemMods": { + "size": "m" + }, + "src": "\/\/avatars.mds.yandex.net\/get-tv-shows\/27487\/2a0000019ee0cfaf7272900dc66e5da38072\/120x90" + }, + { + "elem": "text", + "elemMods": { + "type": "title-url" + }, + "content": "Матч" + }, + { + "elem": "desc", + "content": "Союзный, завтра, 19:00" + } + ] + } + ] + } + ], + [ + "bemjson", + "Матч-реванш", + { + "url": "https:\/\/tv.yandex.ru\/program\/8045748?eventId=258901794", + "target": "_self", + "label": "Передачи", + "bemjson": [ + { + "elem": "info", + "content": [ + { + "elem": "img", + "elemMods": { + "size": "m" + }, + "src": "\/\/avatars.mds.yandex.net\/get-tv-shows\/28886\/2a0000019590a3a76b641bcec6df9bb179cc\/120x90" + }, + { + "elem": "text", + "elemMods": { + "type": "title-url" + }, + "content": "Матч-реванш" + }, + { + "elem": "desc", + "content": "Советские мультфильмы, сегодня, 20:04" + } + ] + } + ] + } + ], + [ + "bemjson", + "Матч-реванш", + { + "url": "https:\/\/tv.yandex.ru\/program\/7398398?eventId=258967472", + "target": "_self", + "label": "Передачи", + "bemjson": [ + { + "elem": "info", + "content": [ + { + "elem": "img", + "elemMods": { + "size": "m" + }, + "src": "\/\/avatars.mds.yandex.net\/get-tv-shows\/26422\/2a0000019409646c1723839178f3274f0a03\/120x90" + }, + { + "elem": "text", + "elemMods": { + "type": "title-url" + }, + "content": "Матч-реванш" + }, + { + "elem": "desc", + "content": "Чижик, завтра, 07:55" + } + ] + } + ] + } + ], + [ + "bemjson", + "Все результаты", + { + "url": "https:\/\/tv.yandex.ru\/search?text=%D0%BC%D0%B0%D1%82%D1%87", + "target": "_self", + "label": "Другое", + "bemjson": [ + { + "elem": "info", + "elemMods": { + "type": "title_url" + }, + "content": "Все результаты" + } + ] + } + ] + ] +] \ No newline at end of file diff --git a/tests/test_matchtv_api.py b/tests/test_matchtv_api.py index 9b882d7..11ae815 100644 --- a/tests/test_matchtv_api.py +++ b/tests/test_matchtv_api.py @@ -3,7 +3,6 @@ import datetime import pytest from gallery.painting.matchtv.api import MatchTvApi -from gallery.sketch.schedule.model import ChannelId from tests.data.matchtv import MATCHTV_MOCK_SOURCE @@ -14,9 +13,12 @@ def matchtv_api_fixture() -> MatchTvApi: return api +async def test_search(matchtv_api: MatchTvApi): + result = await matchtv_api.find_channels("матч") + assert len(result) == 6 + + async def test_channel(matchtv_api: MatchTvApi): - result = await matchtv_api.get_channel_schedule( - ChannelId.TEST, datetime.date.today() - ) + result = await matchtv_api.get_channel_schedule("test", datetime.date.today()) assert result is not None assert len(result.values) > 0 diff --git a/tests/test_yandextv_api.py b/tests/test_yandextv_api.py index caf3d5b..686dfab 100644 --- a/tests/test_yandextv_api.py +++ b/tests/test_yandextv_api.py @@ -2,8 +2,7 @@ import datetime import pytest -from gallery.painting.yandextv.api import CHANNELS_MAP, YandexTvApi -from gallery.sketch.schedule.model import ChannelId +from gallery.painting.yandextv.api import YandexTvApi from tests.data.yandextv import YANDEXTV_MOCK_SOURCE @@ -11,13 +10,15 @@ from tests.data.yandextv import YANDEXTV_MOCK_SOURCE def yandextv_api_fixture() -> YandexTvApi: api = YandexTvApi() api.SOURCE = YANDEXTV_MOCK_SOURCE - CHANNELS_MAP[ChannelId("test")] = "test" return api +async def test_search(yandextv_api: YandexTvApi): + result = await yandextv_api.find_channels("матч") + assert len(result) == 8 + + async def test_channel(yandextv_api: YandexTvApi): - result = await yandextv_api.get_channel_schedule( - ChannelId.TEST, datetime.date.today() - ) + result = await yandextv_api.get_channel_schedule("test", datetime.date.today()) assert result is not None assert len(result.values) > 0