Commit message (Collapse) | Author | Age | |
---|---|---|---|
* | fix(crates/yt/cli): Use the correct `--plackback-speed` option name | Benedikt Peetz | 13 days |
| | |||
* | feat(crates/yt/subscribe): Support a `--no-check` argument | Benedikt Peetz | 13 days |
| | |||
* | feat(crates/yt): Support a `--format` argument for most commands with output | Benedikt Peetz | 13 days |
| | |||
* | fix(crates/yt/update): Remove the `--grouped` update support | Benedikt Peetz | 13 days |
| | | | | Our python implementation no longer leaks memory. | ||
* | feat(crates/yt/watch): Support `--headless` and `--provide-ipc-socket` flags | Benedikt Peetz | 13 days |
| | |||
* | refactor(crates/yt/comments): Remove dead code | Benedikt Peetz | 13 days |
| | |||
* | fix(crates/yt/downloader): Correctly treat the download as blocking | Benedikt Peetz | 13 days |
| | | | | | This change _might_ also allow aborting the current download, but I'm not yet sure. | ||
* | refactor(crates/yt): Allow `missing_panic_docs` and use expect | Benedikt Peetz | 13 days |
| | |||
* | refactor(crates/yt/download/progress_hook): Use `json_{get,cast}` and owu-colors | Benedikt Peetz | 13 days |
| | |||
* | refactor(crates/yt): Use the new storage layer | Benedikt Peetz | 13 days |
| | |||
* | fix(crates/yt/storage/migrate): Merge the `videos` and `video_options` tables | Benedikt Peetz | 13 days |
| | | | | Keeping them separate was just introducing unnecessary friction. | ||
* | feat(crates/yt/storage): Migrate inserts to operations and use methods | Benedikt Peetz | 13 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 Peetz | 2025-07-10 |
| | | | | | Otherwise, rust will not warn use about unused code (and `yt` is not a library). | ||
* | docs(crates/libmpv2): Correctly format doc-test | Benedikt Peetz | 2025-07-10 |
| | |||
* | refactor(crates/yt/config): Use a macro to generate the config parsing code | Benedikt Peetz | 2025-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` again | Benedikt Peetz | 2025-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 yt | Benedikt Peetz | 2025-07-10 |
| | | | | `yt_dlp` no longer depends on it. | ||
* | fix(yt/subscribe): Don't hard-error on failed subscribe, if it was not specified | Benedikt Peetz | 2025-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 Peetz | 2025-06-28 |
| | | | | capitalize Playlist type | ||
* | chore(yt_dlp/package_hacks): Add missing license headers | Benedikt Peetz | 2025-06-28 |
| | |||
* | chore(yt/storage/video_database/set): Apply some of clippy's suggestions | Benedikt Peetz | 2025-06-28 |
| | |||
* | fix(yt/select/split): Also use persist the selection file | Benedikt Peetz | 2025-06-28 |
| | | | | This makes re-editing after a selection failure possible. | ||
* | fix(yt/select/cmds/add): Use the correct names for the download type | Benedikt Peetz | 2025-06-28 |
| | | | | Otherwise, adding anything is impossible. | ||
* | fix(yt/select/cmds/add): Don't print the title as value, cast it first | Benedikt Peetz | 2025-06-28 |
| | | | | | Otherwise, we would silently ignore an invalid type, if the title type ever changes. | ||
* | fix(yt/download/progress_hook): Remove superfluous apostrophes | Benedikt Peetz | 2025-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): Update | Benedikt Peetz | 2025-06-28 |
| | |||
* | fix(yt_dlp): Polyfill missing rustpython features used in urllib3 | Benedikt Peetz | 2025-06-28 |
| | | | | Otherwise, anything that depends on urllib3 just fails to initialize. | ||
* | revert: "build(treewide): Update" | Benedikt Peetz | 2025-06-28 |
| | | | | | | This reverts commit e6aa91c56ca51a8593b9a58ec5746741888db7f9. The update of urllib3 to v2.4.0 broke our `yt-dlp` integration. | ||
* | build(treewide): Update | Benedikt Peetz | 2025-06-24 |
| | |||
* | build(yt_dlp/Cargo.toml): Pin git dependencies | Benedikt Peetz | 2025-06-24 |
| | |||
* | fix(yt_dlp/post_processors/dearrow): Don't try to access the drained vec | Benedikt Peetz | 2025-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 again | Benedikt Peetz | 2025-06-24 |
| | |||
* | fix(yt/update/grouped): Don't drop the verbosity level | Benedikt Peetz | 2025-06-24 |
| | | | | Otherwise, the sub-processes run with the default verbosity level. | ||
* | feat(yt/cli): Also add completion for subscription names | Benedikt Peetz | 2025-06-24 |
| | |||
* | chore(treewide): Assure that `nix fmt` and `reuse lint` are happy | Benedikt Peetz | 2025-06-17 |
| | |||
* | refactor(yt_dlp): Split the big `lib.rs` file up | Benedikt Peetz | 2025-06-17 |
| | |||
* | refactor(yt_dlp/progress_hook): Use public api via `__priv` module | Benedikt Peetz | 2025-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` field | Benedikt Peetz | 2025-06-17 |
| | |||
* | refactor(yt_dlp/logging): Avoid adding to the `__all__` list | Benedikt Peetz | 2025-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 strings | Benedikt Peetz | 2025-06-17 |
| | |||
* | fix(yt_dlp/post_processors): Register in python | Benedikt Peetz | 2025-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 requests | Benedikt Peetz | 2025-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 stdlib | Benedikt Peetz | 2025-06-16 |
| | | | | | This avoids the dependency on a real std-library (i.e., python3) at runtime. | ||
* | style(treewide): Reformat | Benedikt Peetz | 2025-06-16 |
| | |||
* | chore(treewide): Add missing copyright headers | Benedikt Peetz | 2025-06-16 |
| | |||
* | style(yt/select): Apply clippy's suggestions | Benedikt Peetz | 2025-06-16 |
| | |||
* | fix(yt/update): Also handle the newly introduced error conditions | Benedikt Peetz | 2025-06-16 |
| | |||
* | feat(yt_dlp): Support a DeArrow post processor | Benedikt Peetz | 2025-06-16 |
| | |||
* | refactor(yt_dlp/lib): De-duplicate the info json sanitize code | Benedikt Peetz | 2025-06-16 |
| | |||
* | refactor(yt_dlp/lib): Explicitly convert python exceptions into an error | Benedikt Peetz | 2025-06-16 |
| | | | | This avoids having to wrap all blocks into a `match` statement. |