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.0.tar.gz (24.1 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.0-py3-none-any.whl (13.8 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: sn_skipera-1.0.0.tar.gz
  • Upload date:
  • Size: 24.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.15

File hashes

Hashes for sn_skipera-1.0.0.tar.gz
Algorithm Hash digest
SHA256 1d140a849f8e8f3cbf37c7978af6255927605b11e0ea7b2436d8ce19d88de3b1
MD5 68840e1d53422455e1c8129d8fcc7b6a
BLAKE2b-256 9d34e6262fe0da940f0c1bceadd804d7915a99baabc36022304e756e27ea1b6d

See more details on using hashes here.

File details

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

File metadata

  • Download URL: sn_skipera-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 13.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.15

File hashes

Hashes for sn_skipera-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 037e2559066770f7c5bc1d6e8ce6916f987532817c86888b5dd8bc6432bb0767
MD5 d5008019849a84ca7ad04f6ae58357bb
BLAKE2b-256 9a24399ce9728eda685d2eb7fda4b0713cda588e28625d95c262129bf3e23e90

See more details on using hashes here.

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