Download mediafiles from YouTube, Twitter (X), Instagram, Reddit & more. CLI wrapper and python module for @imputnet's cobalt processing instance api.
Project description
pybalt
CLI tool and python module for downloading media through Cobalt processing instances.
Installation
Install pybalt using PowerShell on Windows
Downloads install.bat and executes it.
powershell -Command "Invoke-WebRequest -Uri https://raw.githubusercontent.com/nichind/pybalt/main/install.bat -OutFile install.bat; .\install.bat"
Install using PIP
pip install pybalt
This should create aliases pybalt
and cobalt
in your shell.
Try running cobalt -h
to see the help message.
If for some reason it didn't work, try using it directly from python package:
python -m pybalt
Usage & Examples
Selecting processing instance
You can set processing instance URL, API key, and user-agent as environment variables; pybalt will use them if none are provided.
COBALT_API_URL=YOUR_INSTANCE_URL
COBALT_API_KEY=YOUR_API_KEY
COBALT_USER_AGENT=YOUR_USER_AGENT
By default, pybalt attempts to use any available instance for you provided by public list of instances. It is recommended to host your own instance or request an
API key
from someone else's instance.
As a CLI
Every command here uses the cobalt
alias; you can also use pybalt
or python -m pybalt
.
By default, all downloads are saved in the user's downloads folder ~/Downloads
, or the one specified by the -f
(-folder
) flag.
Get a list of all available commands by running:
cobalt -h
Download video from URL
cobalt -u 'https://youtube.com/watch?v=8ZP5eqm4JqM'
You can also provide the URL as a positional argument:
cobalt 'https://youtube.com/watch?v=8ZP5eqm4JqM'
Download YouTube playlist
cobalt -pl 'https://youtube.com/playlist?list=PL_93TBqf4ymR9GsuI9W4kQ-G3WM7d2Tqj'
Download from text file
Create a text file with URLs on each line:
https://youtube.com/watch?v=8ZP...
.....
....
...
Then run:
cobalt -l 'path/to/file.txt'
More examples
Download all videos from a YouTube playlist in 720p
to folder /Music/
, with filename style classic
, using instance https://dwnld.nichind.dev
and API key
authorization:
cobalt -pl 'https://youtube.com/playlist?list=PL_93TBqf4ymR9GsuI9W4kQ-G3WM7d2Tqj' -q 720 -f './Music/' -fs 'classic' -i 'https://dwnld.nichind.dev' -k 'YOUR_API_KEY'
As a module
Download video from URL
from pybalt import Cobalt
from asyncio import run
async def main():
cobalt = Cobalt()
path = await cobalt.download('https://youtube.com/watch?v=8ZP5eqm4JqM')
print('Downloaded: ', path) # Downloaded: /Users/%USER%/Downloads/8ZP5eqm4JqM.mp4
run(main())
You can pass arguments inside the Cobalt object:
from pybalt import Cobalt
from asyncio import run
async def main():
cobalt = Cobalt(api_instance='YOUR_INSTANCE_URL', api_key='YOUR_API_KEY', headers={...})
path = await cobalt.download(url='https://youtube.com/watch?v=8ZP5eqm4JqM', quality='1080')
print('Downloaded: ', path) # Downloaded: /Users/%USER%/Downloads/8ZP5eqm4JqM.mp4
run(main())
Contributing
If you have any questions or suggestions, please open an issue or create a pull request.
Contributors
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file pybalt-2024.11.15.tar.gz
.
File metadata
- Download URL: pybalt-2024.11.15.tar.gz
- Upload date:
- Size: 12.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.1.1 CPython/3.12.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | bce2c46028e537d562025e9c03db62bbc06e8182d247fc5a5a4892bcd1d31c8d |
|
MD5 | e1d91f6ef5cec509fb932c0ae54b5460 |
|
BLAKE2b-256 | 04e69877ee78c63885257ec2972cd1eac1a95bc42eca335d627aa9c5b7ea8496 |
Provenance
The following attestation bundles were made for pybalt-2024.11.15.tar.gz
:
Publisher:
publish.yml
on nichind/pybalt
-
Statement type:
https://in-toto.io/Statement/v1
- Predicate type:
https://docs.pypi.org/attestations/publish/v1
- Subject name:
pybalt-2024.11.15.tar.gz
- Subject digest:
bce2c46028e537d562025e9c03db62bbc06e8182d247fc5a5a4892bcd1d31c8d
- Sigstore transparency entry: 149248132
- Sigstore integration time:
- Predicate type:
File details
Details for the file pybalt-2024.11.15-py3-none-any.whl
.
File metadata
- Download URL: pybalt-2024.11.15-py3-none-any.whl
- Upload date:
- Size: 11.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.1.1 CPython/3.12.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1b23d76ea93b22be96d86534a79fd7294d69ca51ccadbd4a9f791e428e4cb8b1 |
|
MD5 | 3dfa608b366b3b77d9ee7fc679fdb4e5 |
|
BLAKE2b-256 | 5ef2282d6da935b8ae070b14dfc06929bff962e743d48587d855b446090379b2 |
Provenance
The following attestation bundles were made for pybalt-2024.11.15-py3-none-any.whl
:
Publisher:
publish.yml
on nichind/pybalt
-
Statement type:
https://in-toto.io/Statement/v1
- Predicate type:
https://docs.pypi.org/attestations/publish/v1
- Subject name:
pybalt-2024.11.15-py3-none-any.whl
- Subject digest:
1b23d76ea93b22be96d86534a79fd7294d69ca51ccadbd4a9f791e428e4cb8b1
- Sigstore transparency entry: 149248133
- Sigstore integration time:
- Predicate type: