iptv_org_api
A fully typed, cached, isolate-parsed relational Dart client for the public iptv-org global dataset (channels, feeds, logos, streams, guides, categories, languages, countries, timezones, and blocklists).
Features
- 13 Relational Datasets: Strongly typed models for
channels,streams,feeds,logos,guides,categories,languages,countries,subdivisions,cities,regions,timezones, andblocklist. - Isolate Offloading: Uses
run_off_mainto decode large dataset JSON responses away from the UI thread. - ETag Caching: HTTP ETag caching transport to minimize redundant network requests.
- Relational Indexing: Build fast in-memory indexes connecting channels to their respective streams, logos, and EPG guides.
Installation
dependencies:
iptv_org_api: ^1.0.0
Usage
import 'package:iptv_org_api/iptv_org_api.dart';
void main() async {
final client = IptvOrgApiClient();
// Fetch typed channel catalog
final channels = await client.fetchChannels();
print('Loaded ${channels.length} global channels!');
// Fetch streams
final streams = await client.fetchStreams();
print('Loaded ${streams.length} live stream endpoints!');
}
License
MIT License - see LICENSE for details.
Libraries
- iptv_org_api
- Typed, cached access to the public iptv-org relational API.