English / 英文
中文 / Chinese
Project Overview / 项目介绍
- TV Like : Any website, like a TV app.
- TV Like : 让任何网站,都能像原生应用一样在电视机浏览
TV Like is an AI-driven experimental project, providing a simple, readable extraction specification to pull key elements from web pages—such as images, text, videos, and hyperlinks—and outputs a unified structure optimized for TV interfaces. Powered by QuickUI.
TV Like 是一个由 AI 主导的实验性项目,提供简单、易读的提取规范,用于从网页中提取主要元素(如图片、文字、视频、超链接),并输出统一的 TV 端适配结构,由 QuickUI 支持。
TV Like
TV Like 是一个由 AI 主导的实验性开源项目,将普通网页转换为适合电视大屏浏览的样式和结构。
提供简单易读的 DSL(领域特定语言)来提取网页核心元素,并输出统一 JSON 数据结构,可交给电视端 UI 框架(如 QuickUI)渲染,实现遥控器交互体验。
Features
- 网页内容提取:使用类 CSS 选择器的 DSL 精准提取网页主要内容
- 标准化输出:统一 JSON 数据结构,便于电视端模板渲染
- DSL 加载:
- 内嵌 DSL 脚本到目标网页
- 上传至远程 DSL Hub(默认:https://tvai.tv),页面中不存在 DSL 时尝试读取
- 灵活配置:支持页面级别规则配置,如路径匹配、条件显示、图片比例、文本变换
- 电视适配优化:使用 QuickUI 框架,专为大屏焦点导航设计
- 运行环境:Java 8+
Usage
1. DSL 编写方式
在网页 <head> 或 <body> 中内嵌以下 DSL 脚本:
<script type="text/plain" name="tv-like">
# 页面类型
page-type: video-detail
# 全局配置
globals {
base-url: "https://example.com"
exclude: ".ads"
}
# 分类页规则示例
path: /category/** {
section:tab .top-navigation {
items: ul.nav-list li.nav-item {
text: a
link: a [attr: href]
} [limit: 8]
}
section:top-title .page-header h1 {
text: span.title-text
link: a.header-link
}
section:recommend .grid-container {
items: .item-card.type-a {
text: .item-title a
img: .item-poster img [attr: data-src]
link: .item-title a
}
}
}
</script>
2. JSON 输出示例
[
{
"section": "tab",
"items": {
"value": [
{ "link": { "value": "/" }, "text": { "value": "首页" } },
{ "link": { "value": "/category/1.html" }, "text": { "value": "分类A" } }
]
}
}
]
3. 与 QuickUI 集成
解析得到的 JSON 数据可直接传入 QuickUI 的电视模板组件,实现焦点移动、遥控器操作等原生电视交互体验。
Contributing
欢迎贡献!尤其欢迎:
- 新网站的 DSL 规则贡献
- DSL 语法增强建议
- 性能优化
- 文档改进
License
本项目采用 MIT License,详见 LICENSE 文件。