{"id":41048495,"url":"https://github.com/kumpelblase2/proxtop","last_synced_at":"2026-01-22T11:17:12.815Z","repository":{"id":3569517,"uuid":"43164167","full_name":"kumpelblase2/proxtop","owner":"kumpelblase2","description":"An experimental proxer.me desktop client for doing the most common things.","archived":false,"fork":false,"pushed_at":"2023-01-14T00:00:51.000Z","size":8236,"stargazers_count":5,"open_issues_count":27,"forks_count":1,"subscribers_count":5,"default_branch":"master","last_synced_at":"2024-04-14T22:23:42.013Z","etag":null,"topics":["anime","cross-platform","electron","javascript","typescript"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/kumpelblase2.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-09-25T17:24:26.000Z","updated_at":"2021-03-09T19:59:21.000Z","dependencies_parsed_at":"2023-01-14T11:13:54.696Z","dependency_job_id":null,"html_url":"https://github.com/kumpelblase2/proxtop","commit_stats":null,"previous_names":[],"tags_count":11,"template":false,"template_full_name":null,"purl":"pkg:github/kumpelblase2/proxtop","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kumpelblase2%2Fproxtop","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kumpelblase2%2Fproxtop/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kumpelblase2%2Fproxtop/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kumpelblase2%2Fproxtop/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kumpelblase2","download_url":"https://codeload.github.com/kumpelblase2/proxtop/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kumpelblase2%2Fproxtop/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28661901,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-22T01:17:37.254Z","status":"online","status_checked_at":"2026-01-22T02:00:07.137Z","response_time":144,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["anime","cross-platform","electron","javascript","typescript"],"created_at":"2026-01-22T11:17:12.293Z","updated_at":"2026-01-22T11:17:12.809Z","avatar_url":"https://github.com/kumpelblase2.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Proxtop - A proxer.me desktop client\n\n![icon](static/assets/proxtop_logo_256.png)\n\nProxtop is an experimental attempt to create a desktop client for the popular german anime site [proxer.me](https://proxer.me).\n\nThis is considered experimental because there's no official API in place so this app parses the site itself to provide the content. Thus, the application might be less responsive as expected or even unusable. Another problem with this route is that UI changes _may_ break this application entirely.\n\n![landing](screenshots/landing.png) _(You can find more screenshots in the \"screenshots\" directory)_\n\n## Goals\n\nThese goals are features/use cases that I want this app to provide to the user. All of them should be implemented until I consider this experiment 'done'.\n\n- [x] Use your existing proxer.me account\n- [x] View watchlist\n- [x] Watch proxer HD streams\n- [x] Update watchlist\n- [x] Watch streams with favorite video player (prefered: MPV)\n- [x] Get notifications on new watchlist releases\n- [x] Read \u0026 Write messages\n- [ ] Have a somewhat nice looking UI\n\n## Optional Goals\n\nGoals that I would like to implement afterwards, if I have interest in continuing. These might never be included.\n\n- Browse animes and search\n- Add same functionalities for mangas\n- Forum notifications\n\n## Technologies\n\n- Electron\n- Angularjs\n\n## What this application is and is not\n- It is _not_ a complete frontend/replacement for proxer.me, it is just an alternative frontend for doing the most common tasks on the site, such as watching anime.\n- It is so far _not_ officially supported and thus just a community/personal effort.\n\n## Packaged releases\n\nYou can find the latest packaged/stable releases under [Releases](https://github.com/kumpelblase2/proxtop/releases/latest) in the repository. There you can download the right archive for your platform. Extract it and run the `Proxtop` executable inside the directory. I currently provide packaged releases for Windows (32bit + 64bit), OSX and Debian, while also providing a general Linux archive. Arch Linux users can find the PKGBUILD files at [my pkbuild repo](https://github.com/kumpelblase2/pkgbuilds) for both stable and latest versions.\n\n## How to run\n\nTo run this application from source you first need an API key from proxer. See \n[the thread](https://proxer.me/forum/18-ankuendigungen-und-projekte/378833-die-wiedergeburt-der-proxer-api) for details.\n\nFirst get all required dependencies (requires NPM to be installed):\n```\nnpm ci\n```\n\nRun tests via:\n```\nnpm test\n```\n\nRun the application via:\n```\nPROXER_API_KEY=your_proxer_api_key npm run start\n# Or\nPROXER_API_KEY=your_proxer_api_key ./run.sh\n```\n\nOr if you want to build the application:\n```\nnpm run clean\nPROXER_API_KEY=your_proxer_api_key npm run dist\n# And if you want to package it:\nPROXER_API_KEY=your_proxer_api_key npm run build:windows\n```\n\n## Debugging/Development\n\nProxtop is running inside Electron using TypeScript/JavaScript and is split in two halves: the \"backend\" and the \"frontend\". The backend is doing \nall the heavy lifting, e.g. doing API requests, caching data and checking for new releases. On the other hand, the frontend is mostly for \ndisplaying the information it receives from the backend and taking in user interaction, it shouldn't do many logic on its own.\n\nThese two communicate using the IPC provided by electron which is essentially events with a JSON payload.\n\nThe source is split accordingly, under `src/main` is the backend and under `src/renderer` is the frontend code.\n\nAs with this split, the application also needs to be debugged separately. The frontend can be debugged by pressing `Ctrl+Shift+I` while the app is \nrunning to bring up Chrome Dev Tools which allows for client side debugging. While this is straight forward, it has one downside: Making a change \nin the code requires you yo restart the application. Since this is not ideal, you can instead start the application in the following way. This \nrequires two consoles/shells as it requires two commands to be running concurrently.\n\nIn the first shell, run the following:\n```\nnpm run webpack\n```\nThen in the second shell, you need to run this:\n```\nnpm run debug\n```\n\nThe first command starts webpack and tell it to watch for changes. Any time you now change a file, you can just reload the app (`Ctrl+R`) to reload\n the changes. Sadly, the backend doesn't support that, so for backend changes an app restart is still necessary.\nAdditionally to webpack watching for files, the second command instructs electron to open a debug port at `5858` which can be used by your \nIDE/editor to attach and debug the backend process. Once you're attached you can set breakpoints and debug along.\n\n## FAQ\n\n\u003e This seems like a hard and terrible way to do it!\n\nYou might say that and you wouldn't be wrong. However, until the API is out, which might take forever, I still want something like this app to exist and that I can use. Even if it will end up in a state where only myself could use it, as long as it is there. Also, I've done some small parts this way in the past and those still work, so I don't really have a problem doing it this way.\n\n\u003e Why do you need an app on desktop if you have the browser?\n\nThis is a reasonable question, so let me tell you this:\n\n1. In the browser the page is fixed, meaning the layout, menu and style are not really modifiable by me. If I don't like the style or if I want to make certain workflows faster, how would I do that? I don't want to end up with millions of lines of injected js code to change the site and get totally thrown off once the design changes. I'll probably end up with the same thing here, but in a separate app it's far easier to manage than a hacky script that ends up getting injected.\n2. I cannot easily embed the content of the web page into other things, like a video player. There's no nice way for example to open the video in my local media player. Why would I want this? Better video controls, less memory footprint (some of the player are just ... ugh, shitty. Do you remember flash?) and brings more flexibility.\n3. I can easily add new functionality without, again, fiddling with content scripts or maybe even doing things totally different.\n\nTL;DR: Convenience, because I like to do things differently.\n\n\u003e Doesn't this hurt the page creators?!\n\nPage load: Page load is a concern, as this is a hobby website and thus only limited resources are available. However, this is not really a concern as this app does similar/identical requests to the page as if a user would do the same steps. However, with convenience features like watchlist notification, this might be less true, as it has to check in the background if new ones are available which would cause more page loads to happen. I do believe however this is no big concern as by default these requests do not happen often.\n\nAdvertisements: There are three cases\n1. You donate to the creators already, which results in no ads on the site, thus no difference.\n2. You have an adblocker installed so you there's no difference either.\n3. You have no adblocker installed and would normally see ads. This is the only case ad revenue would be missed.\n\nI hate ads myself, so I don't see this app getting ads to increase revenue for the creators being a thing. Just donate; makes everyone happier.\n\n## License\nThis application is licensed under the MIT license. See the `LICENSE` file in this repository for more information.\n\nThe Proxtop Logo is licensed under the Creative Commons BY-NC-SA 4.0. You can find more details and the full license text at http://creativecommons.org/licenses/by-nc-sa/4.0/ .\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkumpelblase2%2Fproxtop","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkumpelblase2%2Fproxtop","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkumpelblase2%2Fproxtop/lists"}