Skip to content

Latest commit

 

History

76 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Python CloakBrowser Cloudflare License Stars

Visa Open

Automated visa appointment checker with Cloudflare bypass
Monitors VFS Global for available dates

Features · Quick Start · Configuration · Usage · How It Works · Cities · Contact


Features

  • Cloudflare Bypass — Automatically solves Cloudflare Interstitial and Turnstile challenges using CloakBrowser stealth browser
  • Date Monitoring — Checks all visa types and subcategories for a selected city every 10 minutes
  • Async Architecture — Built on Playwright async API for reliable, non-blocking automation
  • GeoIP Integration — Matches timezone, locale, and geolocation to proxy exit node for stealth
  • Fingerprint Randomization — Unique browser fingerprint per session via BrowserForge

Quick Start

Prerequisites

  • Python 3.11+
  • uv (recommended) or pip

Installation

git clone https://github.com/kravchenski/visa-open.git
cd visa-open

# Using uv (recommended)
uv sync

# Or using pip
pip install .

Setup

  1. Copy the environment file and fill in your credentials:
cp .env.example .env
  1. Edit .env with your VFS Global login and appointment parameters (see Configuration)

  2. Run:

python main.py

Configuration

All configuration is done through the .env file.

Login Credentials

email_login=your@email.com
password_login=your_password

Get these from VFS Global.

Appointment Parameters

appointment_center=Poland Visa Application Center-Grodno
appointment_category=National D Visa
appointment_subcategory=D- Karta Polaka

Environment Variables Reference

Variable Description Example
email_login VFS account email user@email.com
password_login VFS account password pass123
appointment_center Appointment center option text Poland Visa Application Center-Grodno
appointment_category Appointment category option text National D Visa
appointment_subcategory Appointment subcategory option text D- Karta Polaka

How It Works

┌─────────────────────────────────────────────────────────────┐
│                        main.py                              │
│                                                             │
│  ┌──────────────┐  ┌──────────────┐  ┌───────────────────┐  │
│  │ CloakBrowser │─▶│ solve_captcha│─▶│ Cloudflare passed │  │
│  │ (Stealth)    │  │ (interstitial│  │                   │  │
│  └──────────────┘  │  + turnstile)│  └────────┬──────────┘  │
│                    └──────────────┘           │              │
│                                               ▼              │
│  ┌────────────────────────────────────────────────────────┐  │
│  │                    login_to_vfs()                       │  │
│  │  1. Navigate to VFS login page                          │  │
│  │  2. Solve Cloudflare challenges                         │  │
│  │  3. Click turnstile in iframe                           │  │
│  │  4. Fill email/password                                 │  │
│  │  5. Submit → Dashboard                                  │  │
│  └────────────────────────┬───────────────────────────────┘  │
│                           ▼                                  │
│  ┌────────────────────────────────────────────────────────┐  │
│  │         check_dates_for_all_visa_types()                │  │
│  │  For each visa type:                                    │  │
│  │    For each subcategory:                                │  │
│  │      → Select city/type/subcategory                     │  │
│  │      → Enter birth date                                 │  │
│  │      → Read available dates                             │  │
│  │      → Print results                                    │  │
│  └────────────────────────┬───────────────────────────────┘  │
│                           ▼                                  │
│                    ↻ Repeat every 60s                        │
└─────────────────────────────────────────────────────────────┘

Supported Cities

City National Visa D Schengen Visa C
Baranovichi Driver D-visa · Other D-visa · Work D-visa · Work D-visa krome Brest oblast Other C Visa
Brest Driver D-visa · Other D-visa · Work D-visa · Work D-visa krome Brest oblast Other C Visa
Gomel Driver D-visa · Other D-visa Visits C-Visa
Grodno Other D-visa · Work D-visa · Postal D-visa Other C Visa
Lida Other D-visa · Work D-visa · Postal D-visa
Minsk Other D-visa · Driver D-visa · Postal D-visa Other C Visa · Visits C-Visa
Mogilev Driver D-visa · Other D-visa Visits C-Visa
Pinsk Driver D-visa · Other D-visa · Work D-visa · Work D-visa krome Brest oblast Other C Visa

Project Structure

visa-open/
├── main.py              # Entry point — browser loop with retry logic
├── cloudflare.py        # Cloudflare Interstitial + Turnstile bypass
├── session.py           # Session expiry detection and recovery
├── utils.py             # Shared helpers (screenshot, delays, loader wait)
├── pages/
│   ├── login.py         # VFS Global login flow
│   ├── check_dates.py   # Visa appointment date checker
│   └── fill_form.py     # Application form auto-fill
├── .env.example         # Configuration template
├── pyproject.toml       # Dependencies & build config
└── README.md

Tech Stack

Component Technology
Browser CloakBrowser (stealth Chromium)
Automation Playwright (async API)
Config python-dotenv

Contributing

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'feat: add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

Disclaimer

This project is for educational purposes only. Use at your own risk and in accordance with VFS Global's terms of service. The authors are not responsible for any misuse.

Contact

Telegram Discord


Made with ❤️ for the visa appointment struggle

About

Application checks avaliable dates for visa every 10 minutes in Python

Resources

Stars

2 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages