about summary refs log tree commit diff stats
path: root/crates (follow)
Commit message (Collapse)AuthorAge
* fix(crates/yt/storage/migrate): Merge the `videos` and `video_options` tablesBenedikt Peetz14 days
| | | | Keeping them separate was just introducing unnecessary friction.
* feat(crates/yt/storage): Migrate inserts to operations and use methodsBenedikt Peetz14 days
| | | | | | | This allows us to re-use the operations and in the future to provide undo-capabilities and a git-reflog like changelog. This commit also fixes some bugs with the old design.
* refactor(crates/yt): Make every `pub` item `pub(crate)`Benedikt Peetz2025-07-10
| | | | | Otherwise, rust will not warn use about unused code (and `yt` is not a library).
* docs(crates/libmpv2): Correctly format doc-testBenedikt Peetz2025-07-10
|
* refactor(crates/yt/config): Use a macro to generate the config parsing codeBenedikt Peetz2025-07-10
| | | | | | This makes adding new config values easier and makes it harder to introduce slight bugs (with the old config system the cli `--db-path` flag did only take effect, after the value in the config file).
* refactor(crates/yt_dlp): Port to `pyo3` againBenedikt Peetz2025-07-10
| | | | | | | | Rustpyton is slower, does not implement everything correctly and worst of all, contains code produced by LLM's. Using the freethreaded mode of pyo3 also works nicely around the GIL, and enables parallel execution.
* refactor(crates/bytes): Move into ytBenedikt Peetz2025-07-10
| | | | `yt_dlp` no longer depends on it.
* fix(yt/subscribe): Don't hard-error on failed subscribe, if it was not specifiedBenedikt Peetz2025-06-28
| | | | | | The user did not specify to subscribe to the `videos`, `streams` and `shorts` variants, as such we should not error if one of them fails, as the other one could succeed.
* fix(yt/{subscribe,storage/subscriptions}): Fix more instances of the ↵Benedikt Peetz2025-06-28
| | | | capitalize Playlist type
* chore(yt_dlp/package_hacks): Add missing license headersBenedikt Peetz2025-06-28
|
* chore(yt/storage/video_database/set): Apply some of clippy's suggestionsBenedikt Peetz2025-06-28
|
* fix(yt/select/split): Also use persist the selection fileBenedikt Peetz2025-06-28
| | | | This makes re-editing after a selection failure possible.
* fix(yt/select/cmds/add): Use the correct names for the download typeBenedikt Peetz2025-06-28
| | | | Otherwise, adding anything is impossible.
* fix(yt/select/cmds/add): Don't print the title as value, cast it firstBenedikt Peetz2025-06-28
| | | | | Otherwise, we would silently ignore an invalid type, if the title type ever changes.
* fix(yt/download/progress_hook): Remove superfluous apostrophesBenedikt Peetz2025-06-28
| | | | | | The start and end of the title is already apparent, as it is coloured differently than the rest. Adding the single quotes around it does not improve it and is just visual clatter.
* build({flake,Cargo}.lock): UpdateBenedikt Peetz2025-06-28
|
* fix(yt_dlp): Polyfill missing rustpython features used in urllib3Benedikt Peetz2025-06-28
| | | | Otherwise, anything that depends on urllib3 just fails to initialize.
* revert: "build(treewide): Update"Benedikt Peetz2025-06-28
| | | | | | This reverts commit e6aa91c56ca51a8593b9a58ec5746741888db7f9. The update of urllib3 to v2.4.0 broke our `yt-dlp` integration.
* build(treewide): UpdateBenedikt Peetz2025-06-24
|
* build(yt_dlp/Cargo.toml): Pin git dependenciesBenedikt Peetz2025-06-24
|
* fix(yt_dlp/post_processors/dearrow): Don't try to access the drained vecBenedikt Peetz2025-06-24
| | | | | | If all titles were declared “bad” the pp previously tried to access the first title in the array, which was already drained. We now simply clone the array to facilitate this usage.
* feat(yt/version): Add the (rust)python version againBenedikt Peetz2025-06-24
|
* fix(yt/update/grouped): Don't drop the verbosity levelBenedikt Peetz2025-06-24
| | | | Otherwise, the sub-processes run with the default verbosity level.
* feat(yt/cli): Also add completion for subscription namesBenedikt Peetz2025-06-24
|
* chore(treewide): Assure that `nix fmt` and `reuse lint` are happyBenedikt Peetz2025-06-17
|
* refactor(yt_dlp): Split the big `lib.rs` file upBenedikt Peetz2025-06-17
|
* refactor(yt_dlp/progress_hook): Use public api via `__priv` moduleBenedikt Peetz2025-06-17
| | | | | That makes it clear that these parts are only exposed to facilitate macro use and not as part of the public API.
* fix(yt_dlp/post_processing/dearrow): Correctly type the `CasualVote` fieldBenedikt Peetz2025-06-17
|
* refactor(yt_dlp/logging): Avoid adding to the `__all__` listBenedikt Peetz2025-06-17
| | | | | This seems to have no apparent effect on anything. As such I went ahead and removed this dead code.
* fix(yt_dlp): Typos in stringsBenedikt Peetz2025-06-17
|
* fix(yt_dlp/post_processors): Register in pythonBenedikt Peetz2025-06-17
| | | | | | | | | | | We need to tell yt_dlp about our post processors, as they would otherwise not take full effect. For example, changing the title would previously only have changed the title in the *in-memory* info json, the actual file on disk (video and .info.json) would still have the old title, as yt_dlp did not know about our post processor. Registering it via their api also has the upside of being able to determine when to run.
* fix(yt_dlp/post_processors/dearrow): Migrate to curl for api requestsBenedikt Peetz2025-06-17
| | | | | | The reqwest crate will panic if it is blockingly run inside another executor. But we cannot make this function async, as the whole api is forced to be sync by python ffi.
* fix(yt_dlp/): Include the frozen python stdlibBenedikt Peetz2025-06-16
| | | | | This avoids the dependency on a real std-library (i.e., python3) at runtime.
* style(treewide): ReformatBenedikt Peetz2025-06-16
|
* chore(treewide): Add missing copyright headersBenedikt Peetz2025-06-16
|
* style(yt/select): Apply clippy's suggestionsBenedikt Peetz2025-06-16
|
* fix(yt/update): Also handle the newly introduced error conditionsBenedikt Peetz2025-06-16
|
* feat(yt_dlp): Support a DeArrow post processorBenedikt Peetz2025-06-16
|
* refactor(yt_dlp/lib): De-duplicate the info json sanitize codeBenedikt Peetz2025-06-16
|
* refactor(yt_dlp/lib): Explicitly convert python exceptions into an errorBenedikt Peetz2025-06-16
| | | | This avoids having to wrap all blocks into a `match` statement.
* refactor(yt/select/selection_file): Migrate from `trinitry` to `shlex`Benedikt Peetz2025-06-16
| | | | shlex is better maintained, and _actually_ meant for this purpose .
* test(yt/cli): Test the CLIBenedikt Peetz2025-06-16
|
* fix(libmpv2-sys): Avoid generating comments, that confuse rustdocBenedikt Peetz2025-06-16
|
* fix(yt/cli): Remove duplicated short flag key (help also uses 'h')Benedikt Peetz2025-06-16
|
* feat(yt/cli): Add support for command line completionsBenedikt Peetz2025-06-16
|
* feat(yt/select/split): Make sorting configurableBenedikt Peetz2025-06-16
| | | | | I also moved that to a separate subcommand, as we would otherwise have too many `requires`/`conflicts_with` statements.
* feat(yt/videos/list): Replace the nucleo matcher with a simple `contains`Benedikt Peetz2025-06-16
| | | | | | The matching behaviour was not predictable at all (probably due to a bad config), which than led to using `yt videos ls | grep -i <query>` instead.
* fix(yt/download/get_file_size): Correct deal with `filesize_approx` = NullBenedikt Peetz2025-06-15
|
* fix(yt_dlp/json_{cast,get}): Improve error reportingBenedikt Peetz2025-06-15
|
* fix(yt/update): Correct the progress display in `--grouped` modeBenedikt Peetz2025-06-15
|