========================================================================= TiviMate - Xtream Codes API Data Models (decompiled) ========================================================================= === XTREAM API DATA CLASSES === Package: ar.tvplayer.core.data.network.xtreamcodes class XtreamCodes { ... } class XtreamCodes.Params { // API parameters: username, password, server, port } class UserAndServerInfo { UserInfo user_info; ServerInfo server_info; } class UserInfo { String username; String password; String auth; // authentication token String message; int auth_valid; int is_trial; int active_cons; int created_at; int max_connections; String exp_date; // expiration date (YYYY-MM-DD) boolean is_mag; String[] tags; } class ServerInfo { String url; String port; String https_port; String server_protocol; boolean rtmp_port; int timezone; int timestamp_now; String timezone_name; } class CatchupData { int ᵲᵶᵳˈ; // day offset Integer ʽˈˋ; // duration in minutes // Fields are obfuscated but represent: // - Day index (0 = today, 1 = yesterday) // - Number of days of catch-up available // - Stream URL for catch-up playback } === XTREAM API ENDPOINTS (inferred from data models) === Base URL pattern: http://{server}:{port}/player_api.php ?username={user}&password={pass} -> Returns UserAndServerInfo (auth status + server info) ?username={user}&password={pass}&action=live -> Returns all live channels ?username={user}&password={pass}&action=vod -> Returns all VOD content ?username={user}&password={pass}&action=series -> Returns all series content ?username={user}&password={pass}&action=get_live_categories -> Returns categories/groups ?username={user}&password={pass}&action=get_vod_categories -> VOD categories ?username={user}&password={pass}&action=get_series_categories -> Series categories ?username={user}&password={pass}&action=get_short_epg -> EPG data (short term) ?username={user}&password={pass}&action=get_simple_data_table&stream_id={id} -> Single stream EPG === M3U URL PATTERN (from Xtream) === http://{server}:{port}/get.php?username={user}&password={pass}&type=m3u_plus -> Full M3U playlist with tvg-* attributes http://{server}:{port}/get.php?username={user}&password={pass}&type=m3u_plus&no_zip=1 -> Same, uncompressed ========================================================================= These data models map 1:1 to the Xtream Codes API spec. You can implement from scratch using these field names. =========================================================================