<feed xmlns='http://www.w3.org/2005/Atom'>
<title>yt/crates/yt_dlp/src/post_processors, branch prime</title>
<subtitle>A fully featured command line YouTube client</subtitle>
<id>http://git.foss-syndicate.org/bpeetz/clients/yt/atom?h=prime</id>
<link rel='self' href='http://git.foss-syndicate.org/bpeetz/clients/yt/atom?h=prime'/>
<link rel='alternate' type='text/html' href='http://git.foss-syndicate.org/bpeetz/clients/yt/'/>
<updated>2025-11-30T14:28:05+00:00</updated>
<entry>
<title>fix(treewide): Avoid using deprecated functions or patterns</title>
<updated>2025-11-30T14:28:05+00:00</updated>
<author>
<name>Benedikt Peetz</name>
<email>benedikt.peetz@b-peetz.de</email>
</author>
<published>2025-11-30T14:28:05+00:00</published>
<link rel='alternate' type='text/html' href='http://git.foss-syndicate.org/bpeetz/clients/yt/commit/?id=8158bcf6da8163fd35f26b59a08fc7f5a9abce11'/>
<id>urn:sha1:8158bcf6da8163fd35f26b59a08fc7f5a9abce11</id>
<content type='text'>
</content>
</entry>
<entry>
<title>refactor(crates/yt_dlp): Port to `pyo3` again</title>
<updated>2025-07-10T14:36:42+00:00</updated>
<author>
<name>Benedikt Peetz</name>
<email>benedikt.peetz@b-peetz.de</email>
</author>
<published>2025-07-10T14:36:42+00:00</published>
<link rel='alternate' type='text/html' href='http://git.foss-syndicate.org/bpeetz/clients/yt/commit/?id=82277ca7513eff82365ed54fe9836aae5bd45fe1'/>
<id>urn:sha1:82277ca7513eff82365ed54fe9836aae5bd45fe1</id>
<content type='text'>
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.
</content>
</entry>
<entry>
<title>fix(yt_dlp/post_processors/dearrow): Don't try to access the drained vec</title>
<updated>2025-06-24T12:50:07+00:00</updated>
<author>
<name>Benedikt Peetz</name>
<email>benedikt.peetz@b-peetz.de</email>
</author>
<published>2025-06-24T12:50:07+00:00</published>
<link rel='alternate' type='text/html' href='http://git.foss-syndicate.org/bpeetz/clients/yt/commit/?id=9b4f09cf736e68bdbd246dca17d7a3c6b8eba3ea'/>
<id>urn:sha1:9b4f09cf736e68bdbd246dca17d7a3c6b8eba3ea</id>
<content type='text'>
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.
</content>
</entry>
<entry>
<title>chore(treewide): Assure that `nix fmt` and `reuse lint` are happy</title>
<updated>2025-06-17T07:09:55+00:00</updated>
<author>
<name>Benedikt Peetz</name>
<email>benedikt.peetz@b-peetz.de</email>
</author>
<published>2025-06-17T07:09:55+00:00</published>
<link rel='alternate' type='text/html' href='http://git.foss-syndicate.org/bpeetz/clients/yt/commit/?id=d847968fab7dc55b30f8a137dbce2bae07112c82'/>
<id>urn:sha1:d847968fab7dc55b30f8a137dbce2bae07112c82</id>
<content type='text'>
</content>
</entry>
<entry>
<title>fix(yt_dlp/post_processing/dearrow): Correctly type the `CasualVote` field</title>
<updated>2025-06-17T07:00:06+00:00</updated>
<author>
<name>Benedikt Peetz</name>
<email>benedikt.peetz@b-peetz.de</email>
</author>
<published>2025-06-17T07:00:06+00:00</published>
<link rel='alternate' type='text/html' href='http://git.foss-syndicate.org/bpeetz/clients/yt/commit/?id=528c2d4a4842647da3a91a034c810c44ebf9b949'/>
<id>urn:sha1:528c2d4a4842647da3a91a034c810c44ebf9b949</id>
<content type='text'>
</content>
</entry>
<entry>
<title>fix(yt_dlp/post_processors): Register in python</title>
<updated>2025-06-17T06:56:36+00:00</updated>
<author>
<name>Benedikt Peetz</name>
<email>benedikt.peetz@b-peetz.de</email>
</author>
<published>2025-06-17T06:56:36+00:00</published>
<link rel='alternate' type='text/html' href='http://git.foss-syndicate.org/bpeetz/clients/yt/commit/?id=1a6d3639e6fddb731735554d407d1eea77f053c6'/>
<id>urn:sha1:1a6d3639e6fddb731735554d407d1eea77f053c6</id>
<content type='text'>
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.
</content>
</entry>
<entry>
<title>fix(yt_dlp/post_processors/dearrow): Migrate to curl for api requests</title>
<updated>2025-06-17T06:52:28+00:00</updated>
<author>
<name>Benedikt Peetz</name>
<email>benedikt.peetz@b-peetz.de</email>
</author>
<published>2025-06-17T06:52:28+00:00</published>
<link rel='alternate' type='text/html' href='http://git.foss-syndicate.org/bpeetz/clients/yt/commit/?id=0a1700131341c5dac55a395ce5ccdac4f8ec0c9e'/>
<id>urn:sha1:0a1700131341c5dac55a395ce5ccdac4f8ec0c9e</id>
<content type='text'>
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.
</content>
</entry>
<entry>
<title>chore(treewide): Add missing copyright headers</title>
<updated>2025-06-16T12:05:47+00:00</updated>
<author>
<name>Benedikt Peetz</name>
<email>benedikt.peetz@b-peetz.de</email>
</author>
<published>2025-06-16T12:05:47+00:00</published>
<link rel='alternate' type='text/html' href='http://git.foss-syndicate.org/bpeetz/clients/yt/commit/?id=fd029a65d43e1eb935b470b88893c16c30c19746'/>
<id>urn:sha1:fd029a65d43e1eb935b470b88893c16c30c19746</id>
<content type='text'>
</content>
</entry>
<entry>
<title>feat(yt_dlp): Support a DeArrow post processor</title>
<updated>2025-06-16T11:58:55+00:00</updated>
<author>
<name>Benedikt Peetz</name>
<email>benedikt.peetz@b-peetz.de</email>
</author>
<published>2025-06-16T11:58:55+00:00</published>
<link rel='alternate' type='text/html' href='http://git.foss-syndicate.org/bpeetz/clients/yt/commit/?id=ab61a4e47a955dd4a5dabeef3ade1b85f6576b84'/>
<id>urn:sha1:ab61a4e47a955dd4a5dabeef3ade1b85f6576b84</id>
<content type='text'>
</content>
</entry>
</feed>
