<feed xmlns='http://www.w3.org/2005/Atom'>
<title>yt/crates/yt_dlp, branch v1.8.0</title>
<subtitle>A fully featured command line YouTube client</subtitle>
<id>http://git.foss-syndicate.org/bpeetz/clients/yt/atom/crates/yt_dlp?h=v1.8.0</id>
<link rel='self' href='http://git.foss-syndicate.org/bpeetz/clients/yt/atom/crates/yt_dlp?h=v1.8.0'/>
<link rel='alternate' type='text/html' href='http://git.foss-syndicate.org/bpeetz/clients/yt/'/>
<updated>2025-07-24T19:50:38Z</updated>
<entry>
<title>chore(version): v1.8.0</title>
<updated>2025-07-24T19:50:38Z</updated>
<author>
<name>Benedikt Peetz</name>
<email>benedikt.peetz@b-peetz.de</email>
</author>
<published>2025-07-24T19:50:38Z</published>
<link rel='alternate' type='text/html' href='http://git.foss-syndicate.org/bpeetz/clients/yt/commit/?id=279f619ab441eadbcf7d86adcf02cfed1ac2d916'/>
<id>urn:sha1:279f619ab441eadbcf7d86adcf02cfed1ac2d916</id>
<content type='text'>
</content>
</entry>
<entry>
<title>style(treewide): Format</title>
<updated>2025-07-24T15:18:07Z</updated>
<author>
<name>Benedikt Peetz</name>
<email>benedikt.peetz@b-peetz.de</email>
</author>
<published>2025-07-24T15:18:07Z</published>
<link rel='alternate' type='text/html' href='http://git.foss-syndicate.org/bpeetz/clients/yt/commit/?id=19d3c02396ac1c00742e50e60a0a840fbfade1ac'/>
<id>urn:sha1:19d3c02396ac1c00742e50e60a0a840fbfade1ac</id>
<content type='text'>
</content>
</entry>
<entry>
<title>chore(treewide): Add missing license headers</title>
<updated>2025-07-24T15:15:22Z</updated>
<author>
<name>Benedikt Peetz</name>
<email>benedikt.peetz@b-peetz.de</email>
</author>
<published>2025-07-24T15:15:22Z</published>
<link rel='alternate' type='text/html' href='http://git.foss-syndicate.org/bpeetz/clients/yt/commit/?id=71351b83af2cfb142ad536936f613a66059244f6'/>
<id>urn:sha1:71351b83af2cfb142ad536936f613a66059244f6</id>
<content type='text'>
</content>
</entry>
<entry>
<title>fix(treewide): Use `json_try_get!` instead of `json.get(..).map(|| ..)`</title>
<updated>2025-07-24T14:20:34Z</updated>
<author>
<name>Benedikt Peetz</name>
<email>benedikt.peetz@b-peetz.de</email>
</author>
<published>2025-07-24T14:20:34Z</published>
<link rel='alternate' type='text/html' href='http://git.foss-syndicate.org/bpeetz/clients/yt/commit/?id=a9fddbeebf428eb57c60afab96fbbd38629a636e'/>
<id>urn:sha1:a9fddbeebf428eb57c60afab96fbbd38629a636e</id>
<content type='text'>
`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.
</content>
</entry>
<entry>
<title>build(treewide): Update</title>
<updated>2025-07-18T16:17:51Z</updated>
<author>
<name>Benedikt Peetz</name>
<email>benedikt.peetz@b-peetz.de</email>
</author>
<published>2025-07-18T16:17:51Z</published>
<link rel='alternate' type='text/html' href='http://git.foss-syndicate.org/bpeetz/clients/yt/commit/?id=58dfb436de0ae70540574195dc113f07e97483b4'/>
<id>urn:sha1:58dfb436de0ae70540574195dc113f07e97483b4</id>
<content type='text'>
</content>
</entry>
<entry>
<title>build({update.sh,crates/{libmpv2,yt_dlp}/update.sh}): Remove pointless update instructions</title>
<updated>2025-07-18T16:15:59Z</updated>
<author>
<name>Benedikt Peetz</name>
<email>benedikt.peetz@b-peetz.de</email>
</author>
<published>2025-07-18T16:14:34Z</published>
<link rel='alternate' type='text/html' href='http://git.foss-syndicate.org/bpeetz/clients/yt/commit/?id=ab8605a62fc88255dbcc079a16102f17dbe5e704'/>
<id>urn:sha1:ab8605a62fc88255dbcc079a16102f17dbe5e704</id>
<content type='text'>
We only need to explicitly update the creates that are not part of the
workspace.
</content>
</entry>
<entry>
<title>fix(crates/yt/downloader): Correctly treat the download as blocking</title>
<updated>2025-07-15T04:58:44Z</updated>
<author>
<name>Benedikt Peetz</name>
<email>benedikt.peetz@b-peetz.de</email>
</author>
<published>2025-07-15T04:57:31Z</published>
<link rel='alternate' type='text/html' href='http://git.foss-syndicate.org/bpeetz/clients/yt/commit/?id=507c9611232e7b820789ec776159c703acd499ab'/>
<id>urn:sha1:507c9611232e7b820789ec776159c703acd499ab</id>
<content type='text'>
This change _might_ also allow aborting the current download, but I'm
not yet sure.
</content>
</entry>
<entry>
<title>refactor(crates/yt_dlp): Port to `pyo3` again</title>
<updated>2025-07-10T14:36:42Z</updated>
<author>
<name>Benedikt Peetz</name>
<email>benedikt.peetz@b-peetz.de</email>
</author>
<published>2025-07-10T14:36:42Z</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>chore(yt_dlp/package_hacks): Add missing license headers</title>
<updated>2025-06-28T14:36:51Z</updated>
<author>
<name>Benedikt Peetz</name>
<email>benedikt.peetz@b-peetz.de</email>
</author>
<published>2025-06-28T14:36:51Z</published>
<link rel='alternate' type='text/html' href='http://git.foss-syndicate.org/bpeetz/clients/yt/commit/?id=c3a8c104515b47597f8b72eeabc7dcd266ec0316'/>
<id>urn:sha1:c3a8c104515b47597f8b72eeabc7dcd266ec0316</id>
<content type='text'>
</content>
</entry>
<entry>
<title>build({flake,Cargo}.lock): Update</title>
<updated>2025-06-28T13:58:31Z</updated>
<author>
<name>Benedikt Peetz</name>
<email>benedikt.peetz@b-peetz.de</email>
</author>
<published>2025-06-28T13:54:45Z</published>
<link rel='alternate' type='text/html' href='http://git.foss-syndicate.org/bpeetz/clients/yt/commit/?id=033b0d3ce9eef96827a3f33e4aa5f108e98e4878'/>
<id>urn:sha1:033b0d3ce9eef96827a3f33e4aa5f108e98e4878</id>
<content type='text'>
</content>
</entry>
</feed>
