Convenient command line and library wrapper for youtube-dl.
Latest release 20210906: New -j jobs options to control parallelism, default 4.
The youtube-dl tool and associated youtube_dl Python module
are very useful for downloading media from various websites.
However, as an end user who almost never streams because of my
soggy internet link, I find fetching several items is quite serial and
visually noisy.
This module provides a command line tool ydl which:
- runs multiple downloads in parallel with progress bars
- prints the downloaded filename as each completes
Interactively, I keep this shell function:
ydl(){
( set -ue
dldir=${DL:-$HOME/dl}/v
[ -d "$dldir" ] || set-x mkdir "$dldir"
cd "$dldir"
command ydl ${1+"$@"}
)
}
which runs the downloader in my preferred download area
without tedious manual cding.
Function main(argv=None)
Main command line.
Class OverYDL
A manager for multiple YDL instances.
Method OverYDL.queue(self, *a, **kw)
Queue a fetch of url and return a Result.
Method OverYDL.queue_iter(self, urls)
Queue the URLs of the iterable urls,
essentially a convenience wrapper for the queue method.
Returns a list of the Results for each queued URL.
Method OverYDL.report(self, Rs=None)
Wrapper returning cs.result.report(.Rs).
Rs defaults to list(self.Rs, the accumulated Results.
Class YDL
Manager for a download process.
Method YDL.__init__(self, url, *, fstags, upd=None, tick=None, over_progress=None, sem, **kw_opts)
Initialise the manager.
Parameters:
url: the URL to downloadfstags: mandatory keyword argument, acs.fstags.FSTagsinstanceupd: optionalcs.upd.Updinstance for progress reportingtick: optional callback to indicate state changeover_progress: anOverProgressto which to add each newProgressinstancesem: a sharedSemaphoregoverning download parallelismkw_opts: other keyword arguments are used to initialise the options for the underlyingYoutubeDLinstance
Method YDL.bg(self)
Return the Result for this download,
starting the download if necessary.
Property YDL.output_filename
The target output filename.
Method YDL.process_info(ie_result)
Process info hook called by youtube_dl, seems uncalled :-(
Class YDLCommand(cs.cmdutils.BaseCommand)
ydl command line implementation.
Command line usage:
Usage: ydl [-f] [-j jobs] {URLs|-}...
-f Force download - do not use the cache.
-j jobs Number of jobs (downloads) to run in parallel.
Default: 4
Method YDLCommand.apply_defaults(self)
Initial defaults options.
Method YDLCommand.apply_opts(self, opts)
Command line main switches.
Method YDLCommand.main(self, argv)
Command line main programme.
Release Log
Release 20210906: New -j jobs options to control parallelism, default 4.
Release 20210404: Update for recent cs.cmdutils change.
Release 20210306: Assorted internal updates.
Release 20200621:
- YDL.run: just catch the youtube_dl DownloadError.
- Changes to the default output filename template.
- Other minor internal changes.
Release 20200615.1: Add usage message to docstring.
Release 20200615:
- Initial "daemon" mode, suitable for "tail -f .ydld-queue | ydl -", handy for keeping around in a tmux session.
- Assorted small bugfixes.
Release 20200521: Initial PyPI release.
Metadata
Release files for cs.app.ydl 20210906
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| cs.app.ydl-20210906.tar.gz | 7.7 kB | Without provenance | Details for cs.app.ydl-20210906.tar.gz |
Release files / cs.app.ydl-20210906.tar.gz
| Download URL | cs.app.ydl-20210906.tar.gz |
|---|---|
| Size | 7.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
fd282024b25ea42e33134a6587bd7605cdfc6cc79f519791ab02d593d14db344
|
|
BLAKE2b-256 checksum How to use checksums |
9d0b2d74d64b7fb65b2350299f37197ba23dc59122f36e674b922dc6b4605630
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.3.0 pkginfo/1.6.1 requests/2.25.1 setuptools/49.2.1 requests-toolbelt/0.9.1 tqdm/4.55.0 CPython/3.9.6
|
Security for cs.app.ydl 20210906
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.