]> git.vanrenterghem.biz Git - git.ikiwiki.info.git/blobdiff - doc/todo/fancypodcast.mdwn
(no commit message)
[git.ikiwiki.info.git] / doc / todo / fancypodcast.mdwn
index bff5093255d3d4a80fae93b65c70ace89f582eda..fe75f58cbbbad0c519f542c7228570f062012d16 100644 (file)
@@ -1,16 +1,9 @@
-ikiwiki's simple podcasting, while elegant and minimal, doesn't (as
-mentioned in [[todo/blogging]]) produce full-featured feeds. In
-fancy podcasts, episodes are accompanied by text content. The feeds
-also have lots more metadata.
-
-[[!toc]]
-
 ## Status
 
 [[!template id=gitbranch branch=schmonz/fancypodcast author="[[schmonz]]"]]
 [[!tag patch]]
 
 ## Status
 
 [[!template id=gitbranch branch=schmonz/fancypodcast author="[[schmonz]]"]]
 [[!tag patch]]
 
-Nothing new on the branch since 2013/07/21 merge to `master`.
+Nothing new since 2013/07/21 [[merge|done]] to `master`.
 
 ## Features
 
 
 ## Features
 
@@ -31,115 +24,30 @@ Episode description|(./)      |(./)       |(./)        |
 Episode enclosure  |(./)      |(./)       |(./)        |(./)
 """]]
 
 Episode enclosure  |(./)      |(./)       |(./)        |(./)
 """]]
 
-## Migration
-
-### Upgrading within ikiwiki: from simple to fancy
-
-#### My test podcast
-
-For this test, I chose a podcast that tries to work around ikiwiki's
-current limitations by issuing two separate `inline`s:
-
-* One with `feedonly=yes` that includes `.mdwn`, `.pdf`, and `.mp3`
-* One with `feeds=no` that includes only `.mdwn` (and makes a trail)
-
-This has the following effects:
-
-* Browser: sees just the articles (each of which has a manually
-  created link to its corresponding media file)
-* Feedreader: sees all the articles and media in one flat stream
-* Podcatcher: sees just the media (sans articles)
-
-I want instead to write one `inline` with these effects:
-
-* Browser: sees just the articles (each of which automatically links
-  to its enclosure)
-* Feedreader: sees just the articles (each of which specifies its
-  enclosure)
-* Podcatcher: sees just the enclosures (each of which has an enclosing
-  article, rendered as the media's "description")
-
-#### Upgrade steps
-
-7. Set up a non-production copy of the podcast.
-    7. Visually diff RSS and Atom feeds against production.
-    7. Subscribe to the copy (both feeds) in `r2e`, iTunes, Downcast.
-7. Apply fancypodcast patch to the installed ikiwiki:
-    7. `cd ~/Documents/trees/ikiwiki && git checkout fancypodcast`
-    7. `git diff --no-prefix master > ~/Documents/trees/localpatches/www/ikiwiki/fancypodcast.diff`
-    7. `cd ~/Documents/trees/pkgsrc-current/www/ikiwiki && make deinstall && make install clean`
-7. Verify that simple podcasts are unaffected:
-    7. Rerun `ikiwiki --setup`.
-    7. `diff -uB simple-before.rss simple-after.rss`
-        * A few new elements and attributes, as expected.
-    7. `diff -uB simple-before.atom simple-after.atom`
-        * No change.
-7. Remove the feed-only `inline` and enable feeds on the remaining one.
-7. Convert articles' manual download links to `\[[!meta enclosure=""]]`.
-7. I want existing and future podcatchers to get my new fancy
-   episodes, and I know my podcast isn't in any planets, so I'm
-   going to skip [[tips/howto avoid flooding aggregators]].
-7. Rerun `ikiwiki --setup`.
-7. Verify browser shows the same stuff.
-7. `diff -uB simple-after.rss fancy-after.rss   # and atom`
-    * MP3s and PDFs are no longer naked enclosures, but belong to
-      articles as they should.
-    * Articles have updated modification times, as they should.
-7. `r2e run` (both RSS and Atom)
-    * Nothing new with the default `trust-guid = True` (otherwise
-      would expect updated articles).
-7. iTunes "Update Podcast" (both RSS and Atom)
-    * Added one episode per article, with article text as the episode
-      description.
-    * Kept old naked-enclosure episodes around.
-7. Downcast refresh (RSS):
-    * Added one episode per article, with article text as the episode
-      description.
-    * Kept old naked-enclosure episodes around.
-7. Downcast refresh (Atom):
-    * Added one episode per article, with no episode description
-      (expected, see feature table).
-    * Kept old naked-enclosure episodes around.
-
-Different tradeoffs are possible. These seem okay to me.
-
-### Importing into ikiwiki: fancy (from another CMS)
-
-#### My test podcast
-
-For this test, I chose a podcast currently being published with
-Textpattern and tru_podcast, because I'd strongly prefer to publish
-it with ikiwiki instead.
-
-#### Upgrade steps
-
-7. Set up a non-production copy of the podcast.
-    7. Visually diff RSS and Atom feeds against production.
-    7. Subscribe to the copy (both feeds) in `r2e`, iTunes, Downcast.
-7. With a fancypodcast-enabled ikiwiki installed:
-    7. Copy content from Textpattern to ikiwiki:
-        7. Match article paths to preserve `/YYYY/MM/DD/post-title` permalinks.
-        7. Match enclosure paths (or redirect) to preserve Textpattern's URLs.
-        7. Match titles, post dates, and guids with `\[[!meta]]`.
-           7. Match feed paths with permanent redirects from `/atom/` to
-           `/index.atom` (and same for RSS).
-        7. `\[[!inline]]` the articles.
-    7. Rerun `ikiwiki --setup`.
-7. Stop Textpattern, start ikiwiki.
-7. Verify that podcatchers see the feeds and don't redownload anything.
-7. Naively add two new blog posts, one with an enclosure.
-7. Verify that podcatchers download the new enclosures.
+## Future improvements
 
 
------
+### Embedded audio/video player in browsers
 
 
-## Future improvements
+* For a given enclosure, depending on autodetected MIME:
+    * `audio/*` -> `<audio>`
+    * `video/*` -> `<video>`
+* For a given template:
+    * `page.tmpl` -> eagerly fetch media
+    * `inlinepage.tmpl` -> fetch just enough to display durations
+* Only for HTML5 sites, or also okay for XHTML?
+* Does this work well enough in enough browsers, or do we need a
+  JavaScript player to fill in some gaps?
 
 ### iTunes fancy podcasting
 
 * [iTunes-specific tags](https://www.apple.com/itunes/podcasts/specs.html)
   appear to be RSS-only
 
 ### iTunes fancy podcasting
 
 * [iTunes-specific tags](https://www.apple.com/itunes/podcasts/specs.html)
   appear to be RSS-only
-    * If they work in Atom, teach `inline` to optionally iTunesify RSS/Atom.
-    * Else, add `itunes` as a third kind of feed (RSS plus more stuff).
+    * Can we always include them in RSS feeds, or would that break
+      some feed readers?
+    * Is it even valid to include them in Atom feeds? If so, do
+      Atom podcasts look any better in podcatchers?
+    * Avoid adding a third kind of feed (`itunesrss`), or options
+      to the existing `rss` and `atom` feeds, unless we have to.
 * Notable tags for feeds:
     * `itunes:subtitle`
     * `itunes:author`
 * Notable tags for feeds:
     * `itunes:subtitle`
     * `itunes:author`
@@ -155,6 +63,9 @@ it with ikiwiki instead.
         * [ffprobe](http://ffmpeg.org/ffprobe.html) is reasonably fast
         * [mediainfo](http://mediainfo.sourceforge.net/) is way slower
         * Cache computed durations as pagestate
         * [ffprobe](http://ffmpeg.org/ffprobe.html) is reasonably fast
         * [mediainfo](http://mediainfo.sourceforge.net/) is way slower
         * Cache computed durations as pagestate
+* [Podcast Feed Best
+  Practice](https://github.com/gpodder/podcast-feed-best-practice/blob/master/podcast-feed-best-practice.md)
+  from the gPodder folks
 
 ### Fancy podcast aggregating
 
 
 ### Fancy podcast aggregating
 
@@ -164,8 +75,6 @@ it with ikiwiki instead.
 
 ### Other ideas
 
 
 ### Other ideas
 
-* Don't render template text (e.g., "Use this template to insert a
-  note into a page") in feeds.
 * Optionally specify the enclosure's:
     * MIME type, in case `File::MimeInfo` guesses wrong.
     * Duration, in case `ffprobe` guesses wrong.
 * Optionally specify the enclosure's:
     * MIME type, in case `File::MimeInfo` guesses wrong.
     * Duration, in case `ffprobe` guesses wrong.
@@ -177,7 +86,3 @@ it with ikiwiki instead.
 * Configurably generate additional subscription links (such as
   iTunes) alongside the RSS/Atom ones in [[plugins/inline]].
 * Support Apple's "enhanced podcasts" (if they're still relevant).
 * Configurably generate additional subscription links (such as
   iTunes) alongside the RSS/Atom ones in [[plugins/inline]].
 * Support Apple's "enhanced podcasts" (if they're still relevant).
-
-----
-
-[[merged|done]] --[[Joey]]