summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Joey Hess <joeyh@joeyh.name>2017-11-22 13:15:13 -0400
committerGravatar Joey Hess <joeyh@joeyh.name>2017-11-22 13:15:13 -0400
commit1c4a66b62bda02c0bcf4746de6b06b6fdfb9dbfa (patch)
treebf9954498e01860b942d2f7bba2e5b576a756281
parentcee0978ee1de0055f2ca2472ba22a7f6c4a0ad2f (diff)
investigate using youtube-dl. not pretty..
-rw-r--r--doc/todo/switch_from_quvi_to_youtube-dl.mdwn41
1 files changed, 41 insertions, 0 deletions
diff --git a/doc/todo/switch_from_quvi_to_youtube-dl.mdwn b/doc/todo/switch_from_quvi_to_youtube-dl.mdwn
new file mode 100644
index 000000000..31c1a73f0
--- /dev/null
+++ b/doc/todo/switch_from_quvi_to_youtube-dl.mdwn
@@ -0,0 +1,41 @@
+quvi does not seem maintained (last upstream release in 2013)
+and it supports many fewer videos than youtube-dl does.
+
+The difficulty with using youtube-dl is it, by design, does not
+provide a way to probe if it supports an url, other than running it
+and seeing if it finds a video at the url. This would make `git annex
+addurl` significantly slower if it ran youtube-dl to probe every url.
+
+It is possible to use youtube-dl to download arbitrary non-video files;
+it stores the file to disk just as wget or curl. But, that's well outside
+its intended use case, and so it does not feel like a good idea to make
+git-annex depend on using youtube-dl to download generic urls.
+(Also, youtube-dl has bugs with downloading non-video
+urls, see for example http://bugs.debian.org/874321)
+
+So, switching to youtube-dl would probably need a new switch, like `git
+annex addurl --rip` that enables using it.
+
+Currently `git annex importfeed` automatically tests for video urls with
+quvi; it would also need to support `--rip`.
+
+Both of those changes would need changes to user's workflows and cron jobs.
+git-annex could keep supporting quvi for some time, and warn when it uses
+quvi, to help with the transition.
+
+Another gotcha is playlists. youtube-dl downloads playlists automatically.
+But, git-annex needs to record an url that downloads a single file so that
+`git annex get` works right. So, playlists will need to be disabled when
+git-annex runs youtube-dl. But, `--no-playlist` does not always disable
+playlists. Best option seems to be `--playlist-items 0` which works for
+non-playlists, and downloads only 1 item from playlists (hopefully a fairly
+stable item, but who knows..).
+
+Another gotcha is that youtube-dl's -o option does not fully determine the
+filename it downloads to. Sometims it will tack on an additional extension
+(seen with youtube videos where it added a ".mkv").
+And --get-filename does not report the actual filename when that happens.
+Only way I can find to avoid this wart is output to stdout with "-o -",
+but that would prevent resuming. Seems it would have to be run in a temp
+dir and the file moved out to the git-annex location when done, which would
+prevent stuff that operates on incomplete downloads from working.