Commit message (Collapse) | Author | Age | |
---|---|---|---|
* | chore(treewide): Assure that `nix fmt` and `reuse lint` are happy | Benedikt Peetz | 37 hours |
| | |||
* | refactor(yt_dlp): Split the big `lib.rs` file up | Benedikt Peetz | 37 hours |
| | |||
* | refactor(yt_dlp/progress_hook): Use public api via `__priv` module | Benedikt Peetz | 37 hours |
| | | | | | 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 | 37 hours |
| | |||
* | refactor(yt_dlp/logging): Avoid adding to the `__all__` list | Benedikt Peetz | 37 hours |
| | | | | | 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 | 37 hours |
| | |||
* | fix(yt_dlp/post_processors): Register in python | Benedikt Peetz | 37 hours |
| | | | | | | | | | | | 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 | 37 hours |
| | | | | | | 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. | ||
* | chore(treewide): Add missing copyright headers | Benedikt Peetz | 2 days |
| | |||
* | feat(yt_dlp): Support a DeArrow post processor | Benedikt Peetz | 2 days |
| | |||
* | refactor(yt_dlp/lib): De-duplicate the info json sanitize code | Benedikt Peetz | 2 days |
| | |||
* | refactor(yt_dlp/lib): Explicitly convert python exceptions into an error | Benedikt Peetz | 2 days |
| | | | | This avoids having to wrap all blocks into a `match` statement. | ||
* | fix(yt_dlp/json_{cast,get}): Improve error reporting | Benedikt Peetz | 3 days |
| | |||
* | fix(yt_dlp): Avoid writing the json output to disk | Benedikt Peetz | 3 days |
| | | | | | There is no point in doing this anymore, as we no longer need to deserialize it. | ||
* | feat({yt/update,yt_dlp}): Use yt_dlp errors again | Benedikt Peetz | 4 days |
| | | | | | This code was temporarily commented out, as I had not migrated it in the pyo3 -> rustpython migration. | ||
* | feat({yt_dlp,yt}): Migrate from pyo3 to rustpython | Benedikt Peetz | 5 days |
| | | | | | | | | That allows us to avoid cpython's GIL and gives us full ability to leverage async/concurrent code to speed up python operations. I have also taken the opportunity to change the `InfoJson` struct to an untyped json value, as that is what it actually is. | ||
* | chore(yt_dlp/wrappers/info_json): Add additional missing field | Benedikt Peetz | 2025-03-21 |
| | |||
* | refactor(yt_dlp): Remove the unneeded `async` from the public functions | Benedikt Peetz | 2025-03-21 |
| | |||
* | chore(treewide): Add/Update the license headers | Benedikt Peetz | 2025-02-22 |
| | |||
* | chore(crates/yt_dlp/wrappers/info_json): Add further fields | Benedikt Peetz | 2025-02-21 |
| | |||
* | style(treewide): Re-format | Benedikt Peetz | 2025-02-16 |
| | |||
* | fix(crates/yt_dlp/wrappers/info_json): Serialize the `InfoType`s with their ↵ | Benedikt Peetz | 2025-02-16 |
| | | | | correct name | ||
* | fix(crates/yt_dlp/wrappers/info_json): Don't serialize `None` values | Benedikt Peetz | 2025-02-16 |
| | | | | This keeps the jsons, which we internally parse, shorter. | ||
* | feat(crates/yt_dlp/lib): Wrap `process_ie_result` function | Benedikt Peetz | 2025-02-16 |
| | |||
* | fix(crates/yt_dlp/lib): Actually resolve the `entries` generator object | Benedikt Peetz | 2025-02-16 |
| | | | | Previously, we just ignored it. | ||
* | fix(crates/yt_dlp/lib): Swallow all error logs from yt_dlp | Benedikt Peetz | 2025-02-16 |
| | | | | | | These are already returned as `PythonError`s and thus often printed twice. As such, removing the python print gives the consumer more liberty of how to handle the error. | ||
* | fix(crates/yt_dlp/progress_hook): Print the progress to stderr | Benedikt Peetz | 2025-02-16 |
| | |||
* | fix(crates/yt_dlp/error::PythonError): Add the python type as `kind` | Benedikt Peetz | 2025-02-16 |
| | |||
* | chore(crates/yt_dlp/wrappers/info_json): Add further fields | Benedikt Peetz | 2025-02-14 |
| | |||
* | test(crates/yt_dlp): Ignore tests that hang forever | Benedikt Peetz | 2025-02-14 |
| | |||
* | fix(crates/yt_dlp): Actually return errors instead of panicing | Benedikt Peetz | 2025-02-14 |
| | |||
* | fix(crates/yt_dlp): Avoid printing the file extension in the progress display | Benedikt Peetz | 2025-02-14 |
| | | | | The file extension should not be relevant for a user. | ||
* | fix(yt_dlp/wrappers/info_json): Add further fields to `RequestedDownloads` | Benedikt Peetz | 2024-12-14 |
| | |||
* | fix(yt_dlp/wrappers/info_json): Add missing fields to `Subtitle` | Benedikt Peetz | 2024-12-14 |
| | |||
* | fix(yt_dlp/wrappers/info_json): Treat `Extractor` and `ExtractorKey` as Strings | Benedikt Peetz | 2024-12-14 |
| | | | | | There are too many possible extractors to mandate hard-coding them in a enumeration. | ||
* | build(treewide): Update dependencies | Benedikt Peetz | 2024-11-16 |
| | |||
* | fix(yt_dlp/progress_hook): Mark estimates as such | Benedikt Peetz | 2024-11-04 |
| | | | | | Currently, the wildly changing estimate numbers are not differentiated from the valid numbers. | ||
* | style(treewide): Format | Benedikt Peetz | 2024-10-29 |
| | |||
* | chore(yt_dlp/wrapper/info_json): Add further structure fields | Benedikt Peetz | 2024-10-29 |
| | |||
* | fix(yt_dlp/lib/progress_hook): Avoid overriding previous messages | Benedikt Peetz | 2024-10-29 |
| | | | | Otherwise, the hook would simply cancel the already printed line. | ||
* | fix(yt_dlp/lib/progress_hook): Estimate `total_byte_size` better | Benedikt Peetz | 2024-10-19 |
| | | | | | | This still is sort of weird, because the total byte size changes whilst downloading, but it is still immensely better than just putting a `0` there. | ||
* | test(treewide): Fix, so they compile and ignore | Benedikt Peetz | 2024-10-14 |
| | | | | | The tests are just not in an ideal state right now. Running them via `cargo test` still works, but the `yt_dlp` test simply seem to deadlock? | ||
* | refactor(treewide): Conform to the clippy and rust lints | Benedikt Peetz | 2024-10-14 |
| | |||
* | fix(crates/yt_dlp/wrappers/info_json): Add further info.json fields | Benedikt Peetz | 2024-10-07 |
| | |||
* | feat(crates/yt_dlp): Make saving the downloaded info.json configurable | Benedikt Peetz | 2024-10-07 |
| | | | | | This avoids having to recompile the application to save the downloaded info.json, and simply requires setting an environment variable. | ||
* | style(treewide): Reformat | Benedikt Peetz | 2024-08-25 |
| | |||
* | refactor(treewide): Conform to `cargo clippy` | Benedikt Peetz | 2024-08-25 |
| | |||
* | docs(yt_dlp/progress_hook): Add a note about the possibility to calculate ↵ | Benedikt Peetz | 2024-08-25 |
| | | | | video sizes | ||
* | fix(yt_dlp/info_json): Accept further missing fields in the info_json | Benedikt Peetz | 2024-08-25 |
| | |||
* | fix(yt_dlp/lib/hook): Don't print download progress, when debug is logged | Benedikt Peetz | 2024-08-25 |
| | | | | This makes interpreting the debug output easier. |