https://github.com/imlinguin/nile
Unofficial Amazon Games client
https://github.com/imlinguin/nile
amazon amazon-games gaming linux prime-gaming wine
Last synced: 29 days ago
JSON representation
Unofficial Amazon Games client
- Host: GitHub
- URL: https://github.com/imlinguin/nile
- Owner: imLinguin
- License: gpl-3.0
- Created: 2022-03-03T16:34:17.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2025-02-10T12:40:52.000Z (4 months ago)
- Last Synced: 2025-05-11T08:16:08.691Z (about 1 month ago)
- Topics: amazon, amazon-games, gaming, linux, prime-gaming, wine
- Language: Python
- Homepage:
- Size: 276 KB
- Stars: 326
- Watchers: 11
- Forks: 19
- Open Issues: 7
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- License: LICENSE.md
Awesome Lists containing this project
README
![]()
# Nile
Cross platform Amazon Games client, based on [this research](https://github.com/Lariaa/GameLauncherResearch/wiki/Amazon-Games)Nile aims to be CLI and GUI tool for managing and playing games from Amazon.
## Features
- Login to Amazon Account
- Download games
- Play games (with Wine/Proton on Linux)
- Play games using [Bottles](https://usebottles.com) (`--bottle` parameter)## Might not work
- Online games, that use `FuelPump` (I don't have any game like that to test)## Purpose
This is my attempt to make Amazon Games useful for Linux users, who want to play titles obtained thanks to [Prime](https://prime.amazon.com) membership.## Usage
At the moment, Nile is a command line application. If you are looking for graphical user interface, make sure to checkout
- [Heroic Games Launcher](https://heroicgameslauncher.com) - uses Nile as a backend for Amazon Games
- [Lutris](https://lutris.net) - has implementation really similar to what Nile provides(Recommended) The bundled program is available on the [releases page](https://github.com/imLinguin/nile/releases/latest)
If you wish to run nile from source, see instructions below.
## Dependencies
### Arch and derivatives (Manjaro, Garuda, EndeavourOS)
`sudo pacman -S python-pycryptodome python-zstandard python-requests python-protobuf python-json5`
### Debian and derivatives (Ubuntu, Pop!_OS)
`sudo apt install python3-pycryptodome python3-requests python3-zstandard python3-protobuf python3-json5`### With pip
> Do this after cloning the repo and cd into the directory
> Do not install if you installed dependencies through your package managerThis is **NOT** recommended as it can potentially collide with distribution packages [source](https://peps.python.org/pep-0668/)
new versions of `pip` will prevent you from doing it outside of virtual environment`pip3 install -r requirements.txt`
## Building PyInstaller executable
If you wish to test nile in Heroic flatpak you likely need to build the `nile` executable using pyinstaller
- Get pyinstaller
```
pip install pyinstaller
```- Build the binary (assuming you are in the nile directory)
```
pyinstaller --onefile --name nile nile/cli.py
```## Contributing
I'm always open for contributors
black is used for code formatting
## Setting up dev environment:
- Clone the repo `git clone https://github.com/imLinguin/nile`
- CD into the directory `cd nile`
- Setup virtual environment `python3 -m venv env`
- Install [dependencies](#dependencies)
- Run nile `./bin/nile`## Prior work
This is based on Rodney's work here: https://github.com/derrod/twl.py
Some of his code is implemented in nile, since nothing changed since then in terms of downloading and patching