Skip to main content

SN-Skipera

Auto-complete ServiceNow NowLearning course videos via browser automation.

Opens your Firefox/Zen browser (with your existing Okta session), plays each course video to completion, and moves to the next item. Handles SSO re-authentication automatically.

What it does

  • Videos — Detects <video-js> Brightcove players, seeks to the last 15 seconds, plays to end, waits 5s for server confirmation.
  • Knowledge checks — Same video-based approach (these are also video items).
  • Quizzes — If you provide a Gemini API key, the tool can answer quiz questions automatically via --gemini-key.
  • Labs — Lab exercises are not automated (hands-on instance work). The tool skips non-video items gracefully.

Items are completed sequentially (prerequisite-locked items unlock automatically as earlier items finish).

Prerequisites

  • Python 3.10+
  • Firefox (or Zen Browser, any Firefox-based browser)
  • geckodriverDownload and place in your PATH
  • An active Okta session in your browser profile — You must be logged into learning.servicenow.com via Okta in your browser before running the tool. The tool reuses your existing session; it does not handle login from scratch.

Install

From GitHub:

pip install git+https://github.com/YOUR_USER/sn-skipera.git

# Or with uv:
uv tool install git+https://github.com/YOUR_USER/sn-skipera.git

From source:

git clone https://github.com/YOUR_USER/sn-skipera.git
cd sn-skipera
uv tool install .

Usage

Quick start

sn-skipera "https://learning.servicenow.com/lxp/en/pages/learning-course?id=learning_course&course_id=..." --browser
  1. Copy the full course URL from your browser's address bar.
  2. Run the command above.
  3. The tool opens your browser, navigates to the course, and starts completing items one by one.

Headless mode (no visible window)

sn-skipera "COURSE_URL" --browser --headless

Answer quizzes with Gemini

# Save your API key once:
sn-skipera --set-gemini-key

# Then run normally — quizzes are answered automatically:
sn-skipera "COURSE_URL" --browser

Or pass the key each time:

sn-skipera "COURSE_URL" --browser --gemini-key "YOUR_KEY"

Or set GEMINI_API_KEY environment variable.

Specify a browser profile

sn-skipera "COURSE_URL" --browser --profile /path/to/profile

Or set SN_PROFILE_PATH environment variable.

Debug mode

sn-skipera "COURSE_URL" --browser --debug

Saves page source and state dumps to ~/.sn-skipera/ for troubleshooting.

Configuration

Environment variable Purpose
SN_BROWSER_BINARY Path to Firefox/Zen browser binary
SN_GECKODRIVER_PATH Path to geckodriver executable
SN_PROFILE_PATH Path to browser profile directory
GEMINI_API_KEY Gemini API key for quiz answering

How it works

  1. Launches Firefox/Zen with your browser profile (preserves Okta SSO session).
  2. Loads the course page and extracts all items from the Angular scope.
  3. For each incomplete item:
    • If it's a video: seeks to duration - 15s, plays muted to the end, waits 5s.
    • If it's a quiz and Gemini key is available: scrapes questions, calls Gemini API, clicks answers, submits.
    • Otherwise: skipped (labs, etc.).
  4. Refreshes the course page to unlock subsequent items.
  5. Repeats until all items are complete.

Limitations

  • Labs are not automated. The tool skips lab items (they require hands-on interaction in a ServiceNow instance).
  • Only works with ServiceNow NowLearning (learning.servicenow.com).
  • You must be logged in via Okta before running. The tool reuses your existing session.
  • Quiz support is experimental. Works best with multiple-choice and true/false questions.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

sn_skipera-1.0.2.tar.gz (24.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

sn_skipera-1.0.2-py3-none-any.whl (13.8 kB view details)

Uploaded Python 3

File details

Details for the file sn_skipera-1.0.2.tar.gz.

File metadata

  • Download URL: sn_skipera-1.0.2.tar.gz
  • Upload date:
  • Size: 24.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for sn_skipera-1.0.2.tar.gz
Algorithm Hash digest
SHA256 96691379e07e3274ce884321d817727c6ad25be73a7477eb67a1737250923621
MD5 5c1987fa66e1ea3df44f21fcb1f0bcb4
BLAKE2b-256 0c4c04a83e4431299e0c4a93a0e1d8a4cd2aac1ce77d0e5c8396ebe7b4b600de

See more details on using hashes here.

Provenance

The following attestation bundles were made for sn_skipera-1.0.2.tar.gz:

Publisher: publish.yml on medakshchoudhary/sn-skipera

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file sn_skipera-1.0.2-py3-none-any.whl.

File metadata

  • Download URL: sn_skipera-1.0.2-py3-none-any.whl
  • Upload date:
  • Size: 13.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for sn_skipera-1.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 5ed0300b414b2a943aa7d22ceda7a6542a12a1b5584f751622b79b6c76493e45
MD5 aaa92a88fb366534f379671bbf919ff0
BLAKE2b-256 d29fdaeffc2c8c855f1b53f1a8e1918084c1914fc10608d8b722889ac4a8420e

See more details on using hashes here.

Provenance

The following attestation bundles were made for sn_skipera-1.0.2-py3-none-any.whl:

Publisher: publish.yml on medakshchoudhary/sn-skipera

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page