JableDownloader v4: A Fast CLI for Downloading Jable.TV Videos
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 code | Meaning |
|---|---|
0 | Successful operation or cancelled run |
1 | General error |
2 | Partial 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.

