Commit graph

14 commits

Author SHA1 Message Date
f7a5477804
Differentiate between publish and update time
All checks were successful
Check and lint using Cargo / Check and lint (push) Successful in 6m42s
The `pubDate` field of an item in the feed is meant to be time the item
was published. It should not be bumped if the item is updated in the
backend.

* Introduce a new `published_at` field on `Item`
* Update the Mixcloud and YouTube backends to fill this field
* Use the `published_at` field on `Item` for the `<pubData>` item
  subelement
2023-06-08 10:10:34 +02:00
0ff54dbf03
Select direct HTTP audio streams only
Select the well-supported, almost always available MP4 container format
that is directly available (so no HLS or DASH). This unfortunately
does reduce the bitrate to 64 kbps.
2023-04-11 19:37:29 +02:00
7f1120fd47
Select MP4 audio streams only (experimental)
The filter used to select the stream with the highest bitrate, but this
may result in a stream with a codec/container that is not supported by
all podcast clients, such as WEBM. Select the (almost always available)
highest stream using the MP4 container instead.
2023-01-29 14:27:47 +01:00
371b758962 Strip parameters from MIME types
Some podcast clients are scared of them and they are not really
necessary either.
2022-12-31 14:32:58 +01:00
a6c9275d93
Add more channel & item metadata
This includes categories (from hashtags), descriptions and keywords.
2022-12-23 22:17:56 +01:00
a855c98399
Always apply limit after filtering successful streams 2022-12-23 22:17:56 +01:00
4177e1c6f9
Set updated at timestamp for videos
Since the metadata only provides a date, set the time part to 12:00:00
(UTC).

Also fix up the deprecation warning for the creation of the initial zero
last build timestamp.
2022-12-23 22:17:56 +01:00
9f88f4f9a3
Bump the depend on ytextract
This newer version is able to correctly parse the date of streamed
videos.

Also use the full `ytextract::Video` structs which should have have all
the metadata.
2022-12-23 22:17:55 +01:00
94121c0828
Apply a default item limit of 50 2022-12-23 22:17:55 +01:00
3a3fbc96f4
Use a MIME DB to determine the download URL file extensions
* Also apply it to the default MIME type for Mixcloud posts
* Add a dependency on the `mime_db` crate
2022-12-23 22:17:55 +01:00
59e1f8a987
Add first version of the YouTube back-end 2022-12-23 22:17:52 +01:00
101df7d486
Add missing/fix cache-related comments 2022-08-15 20:24:13 +02:00
76f1e01657
Make channel/item image optional; change item length type
This allows more back-ends to be compatible.
2022-08-15 20:22:15 +02:00
bc9a9e307d
Add back-end abstraction; refactor Mixcloud back-end (closes: #10)
* Add a `backend` module `Backend` trait and necessary abstract types
* Refactor handlers to use the back-end abstraction
* Directly serialize to URLs where necessary in Mixcloud back-end
* Require `serde` feature for the url crate
2022-08-14 09:03:58 +02:00