about summary refs log tree commit diff stats
path: root/crates/yt_dlp/src/lib.rs (follow)
Commit message (Collapse)AuthorAge
* fix(treewide): Use `json_try_get!` instead of `json.get(..).map(|| ..)`Benedikt Peetz3 days
| | | | | | | `json.get` will return `Some(Value::Null)` if the json key exists but has been set to `null`. This is obviously not what we want, and as such we also need to check that the value is not null, before calling map. The `json_try_get!` macro does exactly that.
* fix(crates/yt/downloader): Correctly treat the download as blockingBenedikt Peetz13 days
| | | | | This change _might_ also allow aborting the current download, but I'm not yet sure.
* 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.
* fix(yt_dlp): Polyfill missing rustpython features used in urllib3Benedikt Peetz2025-06-28
| | | | Otherwise, anything that depends on urllib3 just fails to initialize.
* feat(yt/version): Add the (rust)python version againBenedikt Peetz2025-06-24
|
* refactor(yt_dlp): Split the big `lib.rs` file upBenedikt Peetz2025-06-17
|
* 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.
* chore(treewide): Add missing copyright headersBenedikt 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.
* fix(yt_dlp/json_{cast,get}): Improve error reportingBenedikt Peetz2025-06-15
|
* fix(yt_dlp): Avoid writing the json output to diskBenedikt Peetz2025-06-15
| | | | | 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 againBenedikt Peetz2025-06-14
| | | | | 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 rustpythonBenedikt Peetz2025-06-13
| | | | | | | | 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.
* refactor(yt_dlp): Remove the unneeded `async` from the public functionsBenedikt Peetz2025-03-21
|
* style(treewide): Re-formatBenedikt Peetz2025-02-16
|
* feat(crates/yt_dlp/lib): Wrap `process_ie_result` functionBenedikt Peetz2025-02-16
|
* fix(crates/yt_dlp/lib): Actually resolve the `entries` generator objectBenedikt Peetz2025-02-16
| | | | Previously, we just ignored it.
* fix(crates/yt_dlp/lib): Swallow all error logs from yt_dlpBenedikt Peetz2025-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 stderrBenedikt Peetz2025-02-16
|
* fix(crates/yt_dlp): Actually return errors instead of panicingBenedikt Peetz2025-02-14
|
* fix(crates/yt_dlp): Avoid printing the file extension in the progress displayBenedikt Peetz2025-02-14
| | | | The file extension should not be relevant for a user.
* build(treewide): Update dependenciesBenedikt Peetz2024-11-16
|
* fix(yt_dlp/progress_hook): Mark estimates as suchBenedikt Peetz2024-11-04
| | | | | Currently, the wildly changing estimate numbers are not differentiated from the valid numbers.
* style(treewide): FormatBenedikt Peetz2024-10-29
|
* fix(yt_dlp/lib/progress_hook): Avoid overriding previous messagesBenedikt Peetz2024-10-29
| | | | Otherwise, the hook would simply cancel the already printed line.
* fix(yt_dlp/lib/progress_hook): Estimate `total_byte_size` betterBenedikt Peetz2024-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.
* refactor(treewide): Conform to the clippy and rust lintsBenedikt Peetz2024-10-14
|
* feat(crates/yt_dlp): Make saving the downloaded info.json configurableBenedikt Peetz2024-10-07
| | | | | This avoids having to recompile the application to save the downloaded info.json, and simply requires setting an environment variable.
* refactor(treewide): Conform to `cargo clippy`Benedikt Peetz2024-08-25
|
* docs(yt_dlp/progress_hook): Add a note about the possibility to calculate ↵Benedikt Peetz2024-08-25
| | | | video sizes
* fix(yt_dlp/info_json): Accept further missing fields in the info_jsonBenedikt Peetz2024-08-25
|
* fix(yt_dlp/lib/hook): Don't print download progress, when debug is loggedBenedikt Peetz2024-08-25
| | | | This makes interpreting the debug output easier.
* refactor(yt_dlp): Also move the `crates` subdirectoryBenedikt Peetz2024-08-23