This bot helps us buy Nvidia Founders Edition GPUs as soon as they become available.
- Continuously monitor the availability of target GPU on www.nvidia.com
- Automatically checkout item using PayPal or as guest (credit card)
- Automatically submit the order for credit card payment
- Support for multiple locales (as defined in
config/customer.json
) - Support for multiple GPUs (as defined in
data/gpus.json
)
- GeForce RTX 3090
- GeForce RTX 3080
- GeForce RTX 3070
- NVIDIA TITAN RTX
- GeForce RTX 2080 Super
- GeForce RTX 2070 Super
- GeForce RTX 2060 Super
To run the bot, we need the following things:
- Python 3.8
- Pipenv
- Firefox
sudo apt install firefox python3 pipenv
cd nvidia-sniper
pipenv install
- Install the latest version of Firefox
- Install brew package manager
- Install Pipenv using
brew install pipenv
- Navigate to project directory using
cd nvidia-sniper
- Install project dependencies using
pipenv install
- Check if you already have a Python 3.8 installation by opening Windows PowerShell and executing
python --version
- If you see
Python 3.8.0
or higher, skip to step 4 - If you see
Python 3.7.9
or lower, skip to step 2 - If you see
python : The term 'python' is not recognized
, continue to step 2
- If you see
- Install the latest Python 3.8 for Windows
- Ensure you have the correct Python on your PATH
- Open the Start menu and enter
PATH
, then press Enter - Click the
Environment Vairables...
button - In the
User variables for user
section, click the variablePath
, then click theEdit...
button - A new window called
Edit environment variable
will pop up, ensureC:\Users\user\AppData\Local\Microsoft\WindowsApps
exists in this list, whereuser
is your username in Windows - If that path is not in the list, add it using the
New
button - Remove all other PATHs which contain anything to do with Python, Pip, or Idle by clicking them, then clicking the
Delete
button - Click
OK
to close theEdit environment variable
window - Click
OK
to close theEnvironment Variables
window - Click
OK
to close theSystem Properties
window
- Open the Start menu and enter
- Install the latest version of Firefox
- Exit all PowerShell windows, then open a new PowerShell and install Pipenv using
pip install pipenv
- Navigate to project directory
- If you downloaded (using git clone, or ZIP and extract) the project to
C:\Users\user\Documents\nvidia-sniper
, then use the following command:cd C:\Users\user\Documents\nvidia-sniper
- If you downloaded (using git clone, or ZIP and extract) the project to
- Install project dependencies using
pipenv install
- Install curses for Windows using
pipenv install windows-curses
If step 7 results in `pipenv : The term 'pipenv' is not recognized`
- Setup a virtual environment using
python -m venv .venv
- Ensure you have the latest Python version using
python -m venv --upgrade .venv
- Activate the virtual environment using
.venv/Scripts/activate
- Install
pipenv
again usingpip install pipenv
- Install project dependencies using
pipenv install
- Install curses for Windows using
pipenv install windows-curses
To enable CAPTCHA support, follow these steps.
-
Download the ReCaptcha Solver extension using the link https://addons.mozilla.org/firefox/downloads/file/3423472/recaptcha_solver-5.7-fx.xpi. If you open this link in Firefox, it will automatically attempt to add the extension to your browser. That's not what we want. We want to download the *.xpi file. Try using the link in a browser other than Firefox.
-
Put the *.xpi file inside the root of the
nvidia-sniper
directory. -
Create an account using one of ReCaptcha Solver's supported APIs, ex. 2captcha. Deposit money into your account. A few ๐ต should be enough.
-
Start the bot as per the instructions in the Usage section. After you go through the bot's selection process, you should see the ReCaptcha Solver extension in the browser.
-
Copy your API key from the provider of your choice. Add this key to the extension. Also, enable the checkboxes as shown below.
To update nvidia-sniper
use, git pull
or download a fresh .zip
archive from GitHub.
Make sure to back up the customer.json
in advance as it might get replaced in the process.
To use the bot, fill out config/customer.json
and run the script.
cd nvidia-sniper
pipenv run python -m sniper
It is highly recommended that after starting the bot, you open gmail(or another Google service) in a new tab of the bot's browser and login. Afterwards, you can close that tab. This greatly reduces the possibility of recaptcha requiring you to pass an image test, thus speeding up the checkout significantly.
In the config
folder a customer.json
file and notifications.json
file are used to configure the data used to auto fill the forms and to configure the bots notifications. To get started, copy and rename the two template files and customize the fields to your liking.
The bot can send multiple push notifications, including a screenshot attachment along the checkout process. See https://github.com/caronc/apprise#supported-notifications for more information. Add additional entries to the services
dictionary in the notifications.json
file for multiple providers. For each notification, a custom message
can be set. Additionally, the screenshot
attachment can be toggled per provider.
A couple of example URLs for different notification services:
pover://user@token
: Pushovertgram://bottoken/ChatID
: Telegramdiscord://webhook_id/webhook_token
: Discord
In the customer.json
file you can configure your locale and the field contents used for auto-filling the checkout forms. Some fields require specific values.
The locale
field can have the following values:
de-at
: Austriafr-fr
: Belgiumen-ca
: Canadacs-cz
: Czech Republicda-dk
: Denmarkfi-fi
: Finlandfr-fr
: Francede-de
: Germanyit-it
: Italyfr-fr
: Luxembourgnl-nl
: Netherlandspl-pl
: Polandru-ru
: Russian Federationes-es
: Spainsv-se
: Swedenen-gb
: United Kingdomen-us
: United States
The speed
field can have the following values:
shippingOptionID2
: Standard GroundshippingOptionID3
: Next Business day AfternoonshippingOptionID4
: Second Business Day Afternoon
There has been a common issue related to shipping speeds not being available when cards are available.
true
: (Default) Fallback to using the standard shipping speed when the desired speed isn't availablefalse
: Stop the bot from continuing with checkout
The country
field can have the following values:
AT
: AustriaBE
: BelgiumCA
: CanadaCZ
: Czech RepublicDK
: DenmarkFI
: FinlandFR
: FranceDE
: GermanyIT
: ItalyLU
: LuxembourgNL
: NetherlandsPL
: PolandRU
: Russian FederationES
: SpainSE
: SwedenGB
: United KingdomUS
: United States
For en-us
locale, the state
field can have the following values:
AL
: AlabamaAK
: AlaskaAB
: AlbertaAS
: American SamoaAZ
: ArizonaAR
: ArkansasAA
: Armed Forces AmericaAE
: Armed Forces EuropeAP
: Armed Forces PacificBC
: British ColumbiaCA
: CaliforniaCO
: ColoradoCT
: ConnecticutDE
: DelawareDC
: District Of ColumbiaFM
: Federated States of MicronesiaFL
: FloridaGA
: GeorgiaGU
: GuamHI
: HawaiiID
: IdahoIL
: IllinoisIN
: IndianaIA
: IowaKS
: KansasKY
: KentuckyLA
: LouisianaME
: MaineMB
: ManitobaMH
: Marshall IslandsMD
: MarylandMA
: MassachusettsMI
: MichiganMN
: MinnesotaMS
: MississippiMO
: MissouriMT
: MontanaNE
: NebraskaNV
: NevadaNB
: New BrunswickNH
: New HampshireNJ
: New JerseyNM
: New MexicoNY
: New YorkNL
: Newfoundland and LabradorNC
: North CarolinaND
: North DakotaMP
: Northern Mariana IslandsNT
: Northwest TerritoriesNS
: Nova ScotiaNU
: NunavutOH
: OhioOK
: OklahomaON
: OntarioOR
: OregonPW
: PalauPA
: PennsylvaniaPE
: Prince Edward IslandPR
: Puerto RicoQC
: QuebecRI
: Rhode IslandSK
: SaskatchewanSC
: South CarolinaSD
: South DakotaTN
: TennesseeTX
: TexasUT
: UtahVT
: VermontVI
: Virgin IslandsVA
: VirginiaWA
: WashingtonWV
: West VirginiaWI
: WisconsinWY
: WyomingYT
: Yukon