AbyssVideoDownloader is a command-line Kotlin application that allows users to download Abyss.to videos. It supports downloading videos in different resolutions.
Before using AbyssVideoDownloader, ensure you have Java Development Kit (JDK 21) is installed.
Linux
To install JDK 21 on a Linux machine using the command line:
-
Open Terminal on your Linux machine.
-
Update package index:
sudo apt update
-
Install OpenJDK 21 (if available via your package manager):
sudo apt install openjdk-21-jdk
If JDK 21 is not available in your distribution’s package manager, you can manually download and install it:
-
Download JDK 21 from Oracle's official site.
-
Extract the downloaded archive (replace
jdk-21_linux-x64_bin.tar.gz
with the actual file name):tar -xvzf jdk-21_linux-x64_bin.tar.gz
-
Move the JDK folder to
/opt
:sudo mv jdk-21 /opt/
-
Set environment variables:
sudo update-alternatives --install /usr/bin/java java /opt/jdk-21/bin/java 1 sudo update-alternatives --install /usr/bin/javac javac /opt/jdk-21/bin/javac 1
-
Verify the installation:
java -version
-
Windows
To install JDK 21 on a Windows machine:
-
Download JDK 21 from Oracle's official site.
-
Run the installer and follow the on-screen instructions.
-
During the installation, make sure to select the option to add Java to your system’s PATH.
-
Verify the installation:
-
Open Command Prompt (
cmd
). -
Type the following command:
java -version
-
If command return the version number (e.g., java 21
), then the installation was successful.
You have two options for obtaining the abyss-dl.jar
file:
-
Download the Latest JAR File:
- You can download the latest
abyss-dl.jar
file from the Releases section of this repository.
- You can download the latest
-
Build the JAR File Manually:
- If you prefer to build the project yourself or want the latest updates, follow the instructions in the Building the Project section below.
To download a video, follow these steps:
-
Run the Command: Open your terminal and enter the following command:
java -jar abyss-dl.jar [-H <header>] [--header <header>] [-o <output_file_path>] [-c <number_of_connections>]
- Add HTTP Headers (Optional):
- Use
-H <header>
or--header <header>
to include additional information with your request. - Example:
-H "Authorization: Bearer TOKEN"
- You can add multiple headers by repeating the
-H
or--header
option.
- Use
- Specify Output File (Optional):
- Use
-o <output_file_path>
to choose where to save the downloaded video. - Example:
-o /path/to/my_video.mp4
- If you don’t specify a path, the video will be saved in the current directory with a default name.
- Use
- Set Number of Connections (Optional):
- Use
-c <number_of_connections>
or--connections <number_of_connections>
to set how many connections to use for downloading. This can help speed up the download. - The number must be between 1 and 10; by default, it is set to 4.
- Example:
-c 7
- Use
- Verbose Mode (Optional):
- Use the
--verbose
flag to enable verbose output.
- Use the
-
Download a video and save it with a specific name in a chosen folder:
java -jar abyss-dl.jar -o /path/to/directory/my_video.mp4
-
Download a video and save it with the default name in the current directory:
java -jar abyss-dl.jar
-
Download a video using custom headers:
java -jar abyss-dl.jar -H "Authorization: Bearer TOKEN" --header "Referer: https://example.com" -o my_video.mp4
-
Download a video with multiple connections:
java -jar abyss-dl.jar -c 7 -o my_video.mp4
-
Download a video using custom headers and multiple connections:
java -jar abyss-dl.jar -H "Authorization: Bearer TOKEN" --header "Referer: https://example.com" -c 3 -o /path/to/my_video.mp4
-
After running the command, you will be prompted for the video URL:
enter the video URL or ID: https://abysscdn.com/?v=K8R6OOjS7
You can build the AbyssVideoDownloader project using GitHub Actions by following these steps:
-
Fork the Repository:
- Click the "Fork".
-
Open the Actions Tab:
- Navigate to your forked repository and click on the "Actions" tab.
-
Run the Build Workflow:
- Find the build workflow
build AbyssVideoDownloader
, click on it, and then select "Run workflow".
- Find the build workflow
-
Access the Releases Section:
- After the build completes, navigate to the Releases section of your repository. The JAR file,
abyss-dl.jar
, will be available for download there.
- After the build completes, navigate to the Releases section of your repository. The JAR file,
Here are the planned tasks and features for future updates:
- Clean Code.
- Add support for multiple parallel downloads.
- Integrate dependency injection
- Improve error handling and provide more descriptive messages for common issues.
- Implement retry and resume logic for failed downloads.
- Enhance logging with different verbosity levels (e.g., debug, info, error).
- Add support for proxy configuration.
- Add a graphical user interface (GUI) for easier interaction or maybe an android app
Feel free to contribute by picking any task or suggesting new ones!