Skip to content

A Node.js application that tracks iOS app version updates from the App Store and notifies via Discord webhook

Notifications You must be signed in to change notification settings

DDatiOSCheat/iOS-App-Version-Tracker

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

iOS App Version Tracker

A Node.js application that tracks iOS app version updates from the App Store and notifies via Discord webhook. It fetches both the latest app metadata via iTunes API and full version history by scraping the App Store page.


Features

  • Fetch the latest app info using iTunes Lookup API.
  • Scrape the full version history from the App Store page (supports multiple App Store UI structures).
  • Persist version history using Vercel KV.
  • Send notifications to Discord webhook when a new version is detected.
  • Provides a simple web UI and JSON API for viewing version history.
  • Cron job support to check for updates automatically.

Requirements

  • Node.js v18+
  • Vercel KV for storage (or compatible KV store)
  • Discord webhook URL (optional, for notifications)

Installation

  1. Clone the repository:
git clone <repo-url>
cd <repo-folder>
  1. Install dependencies:
npm install
  1. Create a .env file in the project root:
PORT=3000
APP_ID=1190307500          # Default app to track
COUNTRIES=vn,us            # Comma-separated list of countries
DISCORD_WEBHOOK=<your-webhook-url>
CRON_SCHEDULE=*/10 * * * * # Every 10 minutes (default)
ENABLE_CRON=true
TIMEZONE=Asia/Bangkok

Usage

Start the server

npm start

The server will run at http://localhost:3000 by default.


Web UI

Open your browser and visit:

http://localhost:3000/?appId=<APP_ID>&country=<COUNTRY_CODE>

Example:

http://localhost:3000/?appId=1190307500&country=vn

The UI shows:

  • Latest app metadata (version, release notes)
  • Full version history stored in Vercel KV

API Endpoints

  • GET /api/changelog?appId=<appId>&country=<country> Returns JSON changelog (saved or live fetch if not present).

  • POST /api/refresh Force fetch and save latest version info.

{
  "appId": "1190307500",
  "country": "vn",
  "lang": "vi"
}

Cron Job

Automatically checks for new versions based on CRON_SCHEDULE in .env. If a new version is detected, it:

  1. Saves it to Vercel KV
  2. Sends a Discord webhook notification

Default schedule: every 10 minutes (*/10 * * * *).


Environment Variables

Variable Description Default
PORT Port for Express server 3000
APP_ID Default App Store app ID to track 1190307500
COUNTRIES Comma-separated list of country codes to track vn,us
DISCORD_WEBHOOK Discord webhook URL for notifications -
CRON_SCHEDULE Cron schedule for automatic checks */10 * * * *
ENABLE_CRON Enable or disable cron job true
TIMEZONE Timezone for cron job Asia/Bangkok

Dependencies


License

MIT License


Notes

  • Supports multiple App Store UI structures for version scraping.
  • Automatically merges new versions with existing history in Vercel KV.
  • Discord notifications are optional but recommended for real-time alerts.

About

A Node.js application that tracks iOS app version updates from the App Store and notifies via Discord webhook

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published