{"id":23983409,"url":"https://github.com/regulad/jellyfin-plugin-thetvapp","last_synced_at":"2026-07-13T14:30:15.221Z","repository":{"id":270296835,"uuid":"909736350","full_name":"regulad/jellyfin-plugin-thetvapp","owner":"regulad","description":"📺 A Jellyfin plugin that enables playback of FTA TV channels from TheTVApp service 📡","archived":false,"fork":false,"pushed_at":"2024-12-31T21:11:59.000Z","size":354,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-01-07T12:16:22.747Z","etag":null,"topics":["csharp","dotnet","free-to-air","fta","iptv","jellyfin","jellyfin-plugin","live-tv","media-server","streaming","tv-channels"],"latest_commit_sha":null,"homepage":"https://thetvapp.to","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/regulad.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-12-29T16:21:30.000Z","updated_at":"2024-12-31T21:12:02.000Z","dependencies_parsed_at":"2024-12-30T05:29:56.590Z","dependency_job_id":"1b2873ab-163c-484d-a3c2-ff804f1d0771","html_url":"https://github.com/regulad/jellyfin-plugin-thetvapp","commit_stats":null,"previous_names":["regulad/jellyfin-plugin-thattvapp"],"tags_count":0,"template":false,"template_full_name":"jellyfin/jellyfin-plugin-template","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/regulad%2Fjellyfin-plugin-thetvapp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/regulad%2Fjellyfin-plugin-thetvapp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/regulad%2Fjellyfin-plugin-thetvapp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/regulad%2Fjellyfin-plugin-thetvapp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/regulad","download_url":"https://codeload.github.com/regulad/jellyfin-plugin-thetvapp/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":240576485,"owners_count":19823293,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["csharp","dotnet","free-to-air","fta","iptv","jellyfin","jellyfin-plugin","live-tv","media-server","streaming","tv-channels"],"created_at":"2025-01-07T12:16:26.773Z","updated_at":"2026-07-13T14:30:15.159Z","avatar_url":"https://github.com/regulad.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# TheTVApp for Jellyfin\n\n_My first C# project!_\n\n![Screenshot 2024-12-29 at 11.30.02 PM.png](screenshots/Screenshot%202024-12-29%20at%2011.30.02%E2%80%AFPM.png)\n\nTheTVApp (https://thetvapp.to) is an aggregation service for FTA (free-to-air; https://en.wikipedia.org/wiki/Free-to-air) TV channels, but the interface on their website leaves much to be desired. This plugin enables the channels on TheTVApp to be played on Jellyfin.\n\nAfter installing the plugin, no additional configuration is required, and you can immediately start watching the channels after performing a simple guide refresh.\n\n## Building\n\nTo build the plugin, run the following commands:\n\n```bash\ndotnet build --configuration Release\n```\n\nThe plugin will be output to `Jellyfin.Plugin.TheTVApp/bin/Release/net8.0/Jellyfin.Plugin.TheTVApp.dll`.\n\n## Installation\n\nIf you built the plugin yourself, use the `dll` file(s) you generated. If you didn't, download the latest nightly build [here](https://nightly.link/regulad/jellyfin-plugin-thetvapp/workflows/build.yaml/master/build-artifact.zip).\n\nThe files needed are:\n\n- `Jellyfin.Plugin.TheTVApp.dll`\n- `OpenAI.dll`\n- `System.Memory.Data.dll`\n- `System.ClientModel.dll`\n\n- Put the files in `/config/plugins/thetvapp` (or the directory for your installation method) and restart Jellyfin. Jellyfin will take care of the rest.\n\nTested on Jellyfin 10.10.3.\n\n## Setup\n\nThis plugin requires a little bit of configuration. To pick up channels, the plugin needs an OpenAI API key so it can deobfuscate the encryption key for the HLS streams.\n\nIt uses the typical configuration flow for a plugin.\n\nTo get the key, go to [OpenAI's API website](https://platform.openai.com/docs/overview) and sign up for a key.\n\n## Challenges\n\nTheTVApp encrypts their HLS Stream URLs with a custom Vigenère-like cipher, but the key itself is obfuscated in the client-side JavaScript.\n\nThere's no easy way to write a program that can extract the key from the JavaScript, so instead we use an LLM with a finely tuned system prompt to extract the key.\n\nYou can see the system prompt [here](llm/prompt.md) and my reverse engineering journal [here](re/README.md).\n\n## License\n\nThis project is GPLv3 licensed, like the rest of Jellyfin.\n\n## TODO\n\nIf you are better at C# than I am, please feel free to contribute to this project with a PR.\n\n- [ ] Add better marquee pictures to the channels (currently using the same image for all channels)\n- [ ] Fetch channel numbers\n- [ ] Add DVR functionality\n- [ ] Add more specific tags to programs: `IsLive`, `IsForKids`, `IsNews`, `IsSports`, etc.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fregulad%2Fjellyfin-plugin-thetvapp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fregulad%2Fjellyfin-plugin-thetvapp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fregulad%2Fjellyfin-plugin-thetvapp/lists"}