yaydl-0.2.6 is not a library.
yaydl
yet another youtube (and more) down loader
% yaydl "https://www.youtube.com/watch?v=jNQXAC9IVRw"
How? What? Why?
% yaydl --help
Features
- Can download videos.
- Can optionally keep only the audio part of them.
- Could convert the resulting file to something else (requires
ffmpeg
). - Comes as a single binary (once compiled) - take it everywhere on your thumbdrive, no Python cruft required.
Currently supported sites
- YouTube.com
- Vimeo.com
There is an easy way to add more supported sites, see below for details.
Non-features
The list of features is deliberately kept short:
- No output quality choice.
yaydl
assumes that you have a large hard drive and your internet connection is good enough, or else you would stream, not download. - No complex filters. This is a downloading tool.
- No image file support. Videos only.
Missing features (patches are welcome)
yaydl
currently ignores video meta data (except the title) unless they are a part of the video file.- Playlists are not supported yet.
How to install
From the source code
Install Rust (e.g. with rustup), then:
using Fossil:
% fossil clone https://code.rosaelefanten.org/yaydl yaydl.fossil
% mkdir yaydl ; cd yaydl ; fossil open ../yaydl.fossil
% cargo build --release
using Git:
% git clone https://github.com/dertuxmalwieder/yaydl
% cd yaydl
% cargo build --release
From Cargo
% cargo install yaydl
From your package manager
Nobody has provided any packages for yaydl
yet. You can help!
How to contribute code
- Read and agree to the Code of
ConductMerit. - Implicitly agree to the LICENSE. Nobody reads those. I don't either.
- Find out if anyone has filed a GitHub Issue or even sent a Pull Request yet. Act accordingly.
- Send me a patch, either via e-mail (
yaydl at tuxproject dot de
), on the IRC or as a GitHub Pull Request. Note that GitHub only provides a mirror, so you'd double my work if you choose the latter. :-)
If you do that well (and regularly) enough, I'll probably grant you commit access to the upstream Fossil repository.
Add support for new sites
- Implement
definitions::SiteDefinition
ashandlers/<YourSite>.rs
. - Push the new handler to the inventory:
inventory::submit! { &YourSiteHandler as &dyn SiteDefinition }
- Add the new module to
handlers.rs
. - Optionally, add new requirements to
Cargo.toml
. - Send me a patch, preferably with an example. (I cannot know all sites.)
Minimal example that does nothing
// handlers/noop.rs
use Result;
use crate SiteDefinition;
;
// Push the site definition to the list of known handlers:
submit!
Fix some bugs or add new features
- Do so.
- Send me a patch.
Donations
Writing this software and keeping it available is eating some of the time which most people would spend with their friends. Naturally, I absolutely accept financial compensation.
- PayPal: GebtmireuerGeld
- Liberapay: Cthulhux
Thank you.
Contact
- Twitter: @tux0r
- IRC:
irc.freenode.net/yaydl
- Matrix: @Cthulhux:matrix.org