{"id":41834903,"url":"https://github.com/bitxeno/atvloadly","last_synced_at":"2026-01-25T09:01:55.937Z","repository":{"id":177774683,"uuid":"660906024","full_name":"bitxeno/atvloadly","owner":"bitxeno","description":"Easily sideload the IPA to AppleTV","archived":false,"fork":false,"pushed_at":"2026-01-18T02:49:40.000Z","size":2759,"stargazers_count":984,"open_issues_count":17,"forks_count":54,"subscribers_count":5,"default_branch":"master","last_synced_at":"2026-01-18T14:41:58.499Z","etag":null,"topics":["altserver","appletv","docker","golang","sideloading"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bitxeno.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":"bitxeno","ko_fi":"bitxeno","custom":["https://afdian.com/a/bitxeno"]}},"created_at":"2023-07-01T07:14:14.000Z","updated_at":"2026-01-18T04:52:57.000Z","dependencies_parsed_at":"2026-01-03T21:07:12.580Z","dependency_job_id":null,"html_url":"https://github.com/bitxeno/atvloadly","commit_stats":null,"previous_names":["bitxeno/atvloadly"],"tags_count":22,"template":false,"template_full_name":null,"purl":"pkg:github/bitxeno/atvloadly","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bitxeno%2Fatvloadly","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bitxeno%2Fatvloadly/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bitxeno%2Fatvloadly/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bitxeno%2Fatvloadly/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bitxeno","download_url":"https://codeload.github.com/bitxeno/atvloadly/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bitxeno%2Fatvloadly/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28750633,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-25T09:00:19.176Z","status":"ssl_error","status_checked_at":"2026-01-25T09:00:04.131Z","response_time":113,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["altserver","appletv","docker","golang","sideloading"],"created_at":"2026-01-25T09:01:54.884Z","updated_at":"2026-01-25T09:01:55.925Z","avatar_url":"https://github.com/bitxeno.png","language":"Go","funding_links":["https://github.com/sponsors/bitxeno","https://ko-fi.com/bitxeno","https://afdian.com/a/bitxeno"],"categories":["侧载"],"sub_categories":["系统工具"],"readme":"\u003cp align=\"center\"\u003e\n  \u003cimg width=\"500\" src=\"./doc/preview/logo.svg\"\u003e\n\u003c/p\u003e\n\n\n\u003cdiv align=\"center\"\u003e\n\n[![platform](https://img.shields.io/badge/platform-linux%20%7C%20openwrt-989898)](https://github.com/bitxeno/atvloadly/internal/releases)\n[![release](https://img.shields.io/docker/v/bitxeno/atvloadly?label=docker%20latest\u0026sort=semver)](https://hub.docker.com/r/bitxeno/atvloadly)\n[![Docker Image Size](https://img.shields.io/docker/image-size/bitxeno/atvloadly)](https://hub.docker.com/r/bitxeno/atvloadly)\n[![Docker Pulls](https://img.shields.io/docker/pulls/bitxeno/atvloadly)](https://hub.docker.com/r/bitxeno/atvloadly)\n[![license](https://img.shields.io/github/license/bitxeno/atvloadly)](https://github.com/bitxeno/atvloadly/internal/blob/master/LICENSE)\n\n\u003c/div\u003e\n\n\u003cdiv align=\"center\"\u003e\n\nEnglish | [中文](./README_cn.md)\n\n\u003c/div\u003e\n\natvloadly is a web service that supports sideloading app on Apple TV. It uses [PlumeImpactor](https://github.com/khcrysalis/PlumeImpactor) as the underlying technology for sideloading and automatically refreshes the app to ensure its long-term availability.\n\n## Features\n\n* Docker running (only supports Linux/OpenWrt platforms)\n* Supports AppleTV pairing\n* Supports automatic app refresh\n* Supports use of multiple Apple ID accounts\n* I18n support\n\n## Screenshots\n\n\u003cp align=\"center\"\u003e\n  \u003cimg width=\"600\" src=\"./doc/preview/home_en.png\"\u003e\n\u003c/p\u003e\n\u003cp align=\"center\"\u003e\n  \u003cimg width=\"600\" src=\"./doc/preview/install_en.png\"\u003e\n\u003c/p\u003e\n\n## Installation\n\n\u003e 😔 **Only supports Linux/OpenWrt systems, does not support Mac/Windows systems.**\n\n1. The Linux/OpenWrt host needs to install `avahi-deamon`.\n   \n   **OpenWrt：**\n   ```\n   opkg install avahi-dbus-daemon\n   /etc/init.d/avahi-daemon start\n   ```\n   \n   **Ubuntu:**\n   ```\n   sudo apt-get -y install avahi-daemon\n   sudo systemctl restart avahi-daemon\n   ```\n\n2. Please refer to the following command for installation, remember to modify the mount directory.\n   \n   **Docker:**\n   ```\n   docker run --privileged -d --name=atvloadly --restart=always -p 5533:80 -v /path/to/mount/dir:/data -v /var/run/dbus:/var/run/dbus -v /var/run/avahi-daemon:/var/run/avahi-daemon bitxeno/atvloadly:latest\n   ```\n\n   The `/var/run/dbus` and `/var/run/avahi-daemon` of the host machine need to be shared with the docker container for use.\n\n   If you want to use the HOST network and want to modify the listening port, you can add environment variables to container:\n\n   ```\n   SERVICE_PORT=5533\n   ```\n\n   **Docker Compose:**\n   ```\n   wget https://raw.githubusercontent.com/bitxeno/atvloadly/refs/heads/master/docker-compose.yml\n   docker compose pull\n   docker compose up -d\n   ```\n\n\n\n## Getting Started\n\n### Preparation (very important‼️)\n\n1. A burned account\n\u003e Dedicated Apple ID installation account, both free or developer accounts are acceptable (**For security reasons, avoid using commonly used accounts. Instead, create a burned account for installation!**)\n2. A phone to 2FA Verification\n\u003e atvloadly needs to be authorized as a trusted device (it will be virtualized as a MacBook). . When logging in, Apple will send a 2FA verification code to the registered phone number of your account or to a device that has already logged in with the installation account. Please authorize and verify promptly.\n\n### Operation process\n\n1. Open the Apple TV settings menu, select `Remote and Devices -\u003e Remote App and Devices`, enter pairing mode.\n2. Open the web management page, normally it will display the pairable `AppleTV`.\n3. Click on the `AppleTV` device to enter the pairing page and complete the pairing operation.\n4. After successful pairing, return to the home page, where the connected `AppleTV` will be displayed.\n5. Click on the connected `AppleTV` to enter the sideload installation page, select the IPA file that needs to be sideloaded, and click `Install`.\n\n## FAQ\n\n1. How many apps can be installed with a free account?\n\n\u003e Each free Apple ID can register up to 10 apps and activate up to 3 apps simultaneously. Installing more than 3 will cause previously installed apps to become unavailable.\n\n2. Unable to find AppleTV\n\n\u003e Please turn off the VPN, restart the AppleTV, re-enter pairing mode, make sure **[Tool]** can detect devices of the `_apple-pairable._tcp` type, and pair again.\n\n3. Failed to log in to Apple account\n\n\u003e This may have triggered Apple's risk control. Apple has login restrictions for certain regions. You can try adding a proxy in the settings. Alternatively, try creating a new account.\n\n4. IPA crashes after installation\n\n\u003e If the IPA requires permissions such as CloudKit, only paid developer accounts can sign and enable them. After sideloading with atvloadly, the IPA's `Bundle Identifier` will be modified, and some IPAs may restrict this, causing crashes.\n\n5. Installation failure after system upgrade.\n\n\u003e After upgrading the system, re-pairing is required. Generally, newly released systems are not supported. It is recommended to disable automatic system updates.\n\n6. Can App-specific passwords be used for passwords? Is it more secure this way?\n\n\u003e Currently does not support it.\n\n\n## How to build\n\n[\u003e\u003e wiki](https://github.com/bitxeno/atvloadly/wiki/How-to-build)\n\n## Credits\n\n[PlumeImpactor](https://github.com/khcrysalis/PlumeImpactor)\n\n[idevice](https://github.com/jkcoxson/idevice)\n\n[usbmuxd2](https://github.com/tihmstar/usbmuxd2)\n\n\n## Disclaimer\n\n* This software is only for learning and communication purposes. The author does not assume any legal responsibility for the security risks or losses caused by the use of this software.\n* Before using this software, you should understand and bear corresponding risks, including but not limited to account freezing, which are unrelated to this software.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbitxeno%2Fatvloadly","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbitxeno%2Fatvloadly","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbitxeno%2Fatvloadly/lists"}