JableDownloader v4: A Fast CLI for Downloading Jable.TV Videos

August 30, 2026

If you regularly watch videos on Jable.TV and want a simple way to save them locally, JableDownloader provides a convenient command-line solution.

JableDownloader is a Go-based CLI application that downloads Jable.TV videos using HLS streams. It supports individual video downloads, search, latest and trending videos, progress tracking, resume support, parallel downloads, and automatic updates.

Source code, documentation, and releases are available on GitHub: github.com/jooservices/go-jabledownloader.

Please use this tool responsibly. Download only content you are legally permitted to save, and follow Jable.TV’s terms of service and applicable copyright laws.

What Is JableDownloader?

JableDownloader is a single-binary command-line tool designed for users who prefer a fast and scriptable workflow.

Main features include:

  • Download a video using its code or URL
  • Search for videos
  • Download the latest videos
  • Download trending videos
  • Interactive video selection
  • Parallel HLS segment downloads
  • Retry and resume support
  • Download size estimates with dry-run mode
  • Progress bars, ETA, and download speed
  • Automatic output naming
  • Self-update from GitHub Releases
  • Shell completion for Bash, Zsh, Fish, and PowerShell
  • Optional OpenTelemetry monitoring
  • Docker support for development and container-based execution

Downloaded files use the following naming format:

<video-code>-<codec>.mp4

For example:

jur-827-h264.mp4

By default, videos are stored in:

./videos/<video-code>/

Requirements

If you use a prebuilt release archive, you do not need Go or Docker.

JableDownloader requires:

  • Chrome or Chromium for page access and Cloudflare handling
  • FFmpeg for video processing and concatenation
  • A supported operating system and CPU architecture

Docker is optional when running a released binary, but it is recommended for building and testing the project from source.

Installation

Download the archive matching your operating system and architecture from the JableDownloader GitHub Releases page.

Example for macOS on Apple Silicon:

tar -xzf jabledownloader_v4.0.0_darwin_arm64.tar.gz
sudo mv jabledownloader /usr/local/bin/

Check that the installation works:

jabledownloader --help

You can also check the installed version:

jabledownloader version

If the binary is not installed globally, run it from the current directory:

./jabledownloader --help

Download a Video by Code

The simplest option is to provide a video code:

jabledownloader get jur-827

The video will be downloaded to:

./videos/jur-827/

Download a Video by URL

You can also provide the full Jable.TV video URL:

jabledownloader get https://en.jable.tv/videos/jur-827/

This is useful when copying a video link directly from your browser.

Preview a Download Without Downloading

Use --dry-run to inspect the video and estimate the download without saving the file:

jabledownloader get jur-827 --dry-run

This is useful when you want to check the video duration, estimated size, and output plan before starting.

Search for Videos

Search by keyword:

jabledownloader search cute

JableDownloader displays matching videos in an interactive picker. Select the videos you want to download and confirm the operation.

To preview search results without downloading:

jabledownloader search cute --dry-run

Skip interactive selection and confirmation when appropriate:

jabledownloader search cute --yes

Download the Latest Videos

Download the latest videos:

jabledownloader latest

By default, the command processes 10 videos. To choose a different number:

jabledownloader latest --count 5

Download Trending Videos

Use the hot command to download trending videos:

jabledownloader hot

Specify the number of videos:

jabledownloader hot --count 5

Control Concurrent Downloads

JableDownloader downloads HLS segments in parallel. The default worker count is 16.

To use a custom number of workers:

jabledownloader get jur-827 --workers 8

A lower worker count may be useful on slower connections or machines with limited resources. A higher value may improve performance, but it can also increase network and CPU usage.

Choose a Different Output Directory

Use the --out option:

jabledownloader get jur-827 --out /Volumes/Media/videos

You can also set the output directory in the configuration file:

~/.config/jabledownloader/config.json

Example:

{
  "output_dir": "/Volumes/Media/videos",
  "worker_count": 16
}

Re-download an Existing Video

If the output file already exists, JableDownloader avoids downloading it again.

Use --force to download it again:

jabledownloader get jur-827 --force

Quiet and Verbose Modes

For minimal output:

jabledownloader get jur-827 --quiet

For additional diagnostic information such as URLs, HLS links, and codec details:

jabledownloader get jur-827 --verbose

Disable terminal colors:

jabledownloader get jur-827 --no-color

These options are useful when integrating JableDownloader into scripts or automated workflows.

Resume Interrupted Downloads

If a download is interrupted, run the same command again:

jabledownloader get jur-827

The downloader reports existing progress and resumes where possible instead of starting blindly from the beginning.

Update JableDownloader

Check whether a newer version is available:

jabledownloader update --check

Install the latest release:

jabledownloader update

The update command uses the project’s GitHub Releases assets and selects the archive for the current operating system and architecture.

Enable Shell Completion

Generate a completion script for your shell.

Bash:

jabledownloader completion bash

Zsh:

jabledownloader completion zsh

Fish:

jabledownloader completion fish

PowerShell:

jabledownloader completion powershell

Follow your shell’s standard instructions to save and load the generated completion script.

Optional Telemetry

Telemetry is disabled by default. JableDownloader works normally without any monitoring service.

OpenTelemetry export can be enabled using these environment variables:

export OBS_ENDPOINT="http://localhost:5080"
export OBS_ORG="jooservices"
export OBS_STREAM="jabledownloader"
export OBS_USER="your-ingestion-user"
export OBS_PASSWORD="your-ingestion-password"

After configuring the variables, run a normal command:

jabledownloader get jur-827

If the telemetry server is unavailable, the download continues. Monitoring is designed to be fail-open and must not interrupt the main workflow.

Docker Usage

Docker can be used to build and run the application.

Build the binary:

make build

Build the Docker image:

make docker-build

Run a command through Docker:

make docker-run ARGS="get jur-827"

Run the project quality checks:

make ci

Common Examples

# Download one video
jabledownloader get jur-827

# Download from a URL
jabledownloader get https://en.jable.tv/videos/jur-827/

# Preview a search
jabledownloader search cute --dry-run

# Download five latest videos
jabledownloader latest --count 5

# Download five trending videos
jabledownloader hot --count 5

# Use eight concurrent workers
jabledownloader get jur-827 --workers 8

# Force a re-download
jabledownloader get jur-827 --force

# Check for updates
jabledownloader update --check

Exit Codes

JableDownloader uses standard exit codes:

Exit codeMeaning
0Successful operation or cancelled run
1General error
2Partial batch failure

Exit code 2 is especially useful in scripts because it indicates that some videos succeeded while others failed.

Important v4.0.0 Compatibility Note

Version 4.0.0 is a complete rebuild and is not backward compatible with the previous v3.x line.

Older configuration files and legacy video.mp4 output files are not automatically reused. The new output format is:

<code>-<codec>.mp4

For example:

start-166-h264.mp4

Conclusion

JableDownloader is a practical choice for users who want a fast, scriptable, and resumable way to download Jable.TV videos.

Its main workflow is simple:

jabledownloader get <video-code-or-url>

For discovery and batch downloads, use:

jabledownloader search <query>
jabledownloader latest
jabledownloader hot

With support for parallel downloads, progress reporting, dry-run previews, automatic updates, and optional monitoring, JableDownloader provides a flexible command-line experience for managing permitted offline video downloads.

Visit the JableDownloader GitHub repository to view the source code, read the latest documentation, report issues, or download a release.