f2db6da938
I noticed git-annex was using a lot of CPU when downloading from youtube, and was not displaying progress. Turns out that yt-dlp (and I think also youtube-dl) sometimes only knows an estimated size, not the actual size, and displays the progress output slightly differently for that. That broke the parser. And, the parser was feeding chunks that failed to parse back as a remainder, which caused it to try to re-parse the entire output each time, so it got slower and slower. Using --progress-template like this should avoid parsing problems as well as future proof against output changes. But it will work with only yt-dlp. So, this seemed like the right time to deprecate youtube-dl, and default to yt-dlp when available. git-annex will still use youtube-dl if that's all that's available. However, since the progress parser for youtube-dl was buggy, and I don't want to maintain two different progress parsers (especially since youtube-dl is no longer in debian unstable having been replaced by yt-dlp), made git-annex no longer try to parse youtube-dl's progress. Also, updated docs for yt-dlp being default. It did not seem worth renaming annex.youtube-dl-options and annex.youtube-dl-command. Note that yt-dlp does not seem to document the fields available in the progress template. I found them by reading the source and looking at the templates it uses internally. Also note that the use of "i" (rather than "s") in progressTemplate makes it display floats rounded to integers; particularly the estimated total size can be a float. That also does not seem to be documented but I assume is a python thing? Sponsored-by: Joshua Antonishen on Patreon |
||
---|---|---|
.. | ||
Android | ||
android | ||
assistant | ||
automatic_conflict_resolution | ||
backends | ||
bare_repositories | ||
bugs | ||
chunking | ||
coding_style | ||
contribute | ||
copies | ||
design | ||
devblog | ||
direct_mode | ||
download | ||
encryption | ||
footer | ||
forum | ||
future_proofing | ||
git-annex-add | ||
git-annex-addurl | ||
git-annex-adjust | ||
git-annex-benchmark | ||
git-annex-checkpresentkey | ||
git-annex-config | ||
git-annex-copy | ||
git-annex-direct | ||
git-annex-drop | ||
git-annex-enableremote | ||
git-annex-find | ||
git-annex-import | ||
git-annex-importfeed | ||
git-annex-lookupkey | ||
git-annex-metadata | ||
git-annex-move | ||
git-annex-p2p | ||
git-annex-preferred-content | ||
git-annex-reinject | ||
git-annex-repair | ||
git-annex-rmurl | ||
git-annex-setpresentkey | ||
git-annex-sync | ||
git-annex-test | ||
git-annex-unannex | ||
git-annex-undo | ||
git-annex-uninit | ||
git-annex-unlock | ||
git-annex-unused | ||
git-annex-whereis | ||
git-annex-whereused | ||
how_it_works | ||
install | ||
internals | ||
license | ||
links | ||
metadata | ||
news | ||
not | ||
polls | ||
preferred_content | ||
profiling | ||
projects | ||
required_content | ||
scalability | ||
security | ||
special_remotes | ||
stickers | ||
submodules | ||
sync | ||
templates | ||
testimonials | ||
thanks | ||
tips | ||
todo | ||
trust | ||
tuning | ||
upgrades | ||
use_case | ||
users | ||
videos | ||
walkthrough | ||
workflow | ||
Android.mdwn | ||
assistant.mdwn | ||
automatic_conflict_resolution.mdwn | ||
backends.mdwn | ||
bare_repositories.mdwn | ||
bugs.mdwn | ||
builds.mdwn | ||
chunking.mdwn | ||
coding_style.mdwn | ||
comments.mdwn | ||
contact.mdwn | ||
contribute.mdwn | ||
copies.mdwn | ||
design.mdwn | ||
devblog.mdwn | ||
direct_mode.mdwn | ||
distributed_version_control.mdwn | ||
download.mdwn | ||
encryption.mdwn | ||
favicon.ico | ||
forum.mdwn | ||
future_proofing.mdwn | ||
git-annex-add.mdwn | ||
git-annex-addunused.mdwn | ||
git-annex-addurl.mdwn | ||
git-annex-adjust.mdwn | ||
git-annex-assist.mdwn | ||
git-annex-assistant.mdwn | ||
git-annex-backends.mdwn | ||
git-annex-benchmark.mdwn | ||
git-annex-calckey.mdwn | ||
git-annex-checkpresentkey.mdwn | ||
git-annex-common-options.mdwn | ||
git-annex-config.mdwn | ||
git-annex-configremote.mdwn | ||
git-annex-contentlocation.mdwn | ||
git-annex-copy.mdwn | ||
git-annex-dead.mdwn | ||
git-annex-describe.mdwn | ||
git-annex-diffdriver.mdwn | ||
git-annex-direct.mdwn | ||
git-annex-drop.mdwn | ||
git-annex-dropkey.mdwn | ||
git-annex-dropunused.mdwn | ||
git-annex-edit.mdwn | ||
git-annex-enable-tor.mdwn | ||
git-annex-enableremote.mdwn | ||
git-annex-examinekey.mdwn | ||
git-annex-expire.mdwn | ||
git-annex-export.mdwn | ||
git-annex-filter-branch.mdwn | ||
git-annex-filter-process.mdwn | ||
git-annex-find.mdwn | ||
git-annex-findkeys.mdwn | ||
git-annex-findref.mdwn | ||
git-annex-fix.mdwn | ||
git-annex-forget.mdwn | ||
git-annex-fromkey.mdwn | ||
git-annex-fsck.mdwn | ||
git-annex-fuzztest.mdwn | ||
git-annex-get.mdwn | ||
git-annex-group.mdwn | ||
git-annex-groupwanted.mdwn | ||
git-annex-import.mdwn | ||
git-annex-importfeed.mdwn | ||
git-annex-indirect.mdwn | ||
git-annex-info.mdwn | ||
git-annex-init.mdwn | ||
git-annex-initremote.mdwn | ||
git-annex-inprogress.mdwn | ||
git-annex-list.mdwn | ||
git-annex-lock.mdwn | ||
git-annex-log.mdwn | ||
git-annex-lookupkey.mdwn | ||
git-annex-map.mdwn | ||
git-annex-matchexpression.mdwn | ||
git-annex-matching-expression.mdwn | ||
git-annex-matching-options.mdwn | ||
git-annex-merge.mdwn | ||
git-annex-metadata.mdwn | ||
git-annex-migrate.mdwn | ||
git-annex-mincopies.mdwn | ||
git-annex-mirror.mdwn | ||
git-annex-move.mdwn | ||
git-annex-multicast.mdwn | ||
git-annex-numcopies.mdwn | ||
git-annex-p2p.mdwn | ||
git-annex-post-receive.mdwn | ||
git-annex-pre-commit.mdwn | ||
git-annex-preferred-content.mdwn | ||
git-annex-proxy.mdwn | ||
git-annex-pull.mdwn | ||
git-annex-push.mdwn | ||
git-annex-readpresentkey.mdwn | ||
git-annex-registerurl.mdwn | ||
git-annex-reinit.mdwn | ||
git-annex-reinject.mdwn | ||
git-annex-rekey.mdwn | ||
git-annex-remotedaemon.mdwn | ||
git-annex-renameremote.mdwn | ||
git-annex-repair.mdwn | ||
git-annex-required.mdwn | ||
git-annex-resolvemerge.mdwn | ||
git-annex-restage.mdwn | ||
git-annex-rmurl.mdwn | ||
git-annex-schedule.mdwn | ||
git-annex-semitrust.mdwn | ||
git-annex-setkey.mdwn | ||
git-annex-setpresentkey.mdwn | ||
git-annex-shell.mdwn | ||
git-annex-smudge.mdwn | ||
git-annex-status.mdwn | ||
git-annex-sync.mdwn | ||
git-annex-test.mdwn | ||
git-annex-testremote.mdwn | ||
git-annex-transferkey.mdwn | ||
git-annex-transferkeys.mdwn | ||
git-annex-transferrer.mdwn | ||
git-annex-trust.mdwn | ||
git-annex-unannex.mdwn | ||
git-annex-undo.mdwn | ||
git-annex-ungroup.mdwn | ||
git-annex-uninit.mdwn | ||
git-annex-unlock.mdwn | ||
git-annex-unregisterurl.mdwn | ||
git-annex-untrust.mdwn | ||
git-annex-unused.mdwn | ||
git-annex-upgrade.mdwn | ||
git-annex-vadd.mdwn | ||
git-annex-vcycle.mdwn | ||
git-annex-version.mdwn | ||
git-annex-vfilter.mdwn | ||
git-annex-vicfg.mdwn | ||
git-annex-view.mdwn | ||
git-annex-vpop.mdwn | ||
git-annex-wanted.mdwn | ||
git-annex-watch.mdwn | ||
git-annex-webapp.mdwn | ||
git-annex-whereis.mdwn | ||
git-annex-whereused.mdwn | ||
git-annex.mdwn | ||
git-remote-tor-annex.mdwn | ||
git-union-merge.mdwn | ||
how_it_works.mdwn | ||
index.mdwn | ||
install.mdwn | ||
internals.mdwn | ||
license.mdwn | ||
location_tracking.mdwn | ||
logo-old-bw.svg | ||
logo-old.png | ||
logo-old.svg | ||
logo-old_small.png | ||
logo.mdwn | ||
logo.svg | ||
logo_16x16.png | ||
logo_32x32.png | ||
logo_small.png | ||
meta.mdwn | ||
metadata.mdwn | ||
news.mdwn | ||
not.mdwn | ||
polls.mdwn | ||
preferred_content.mdwn | ||
privacy.mdwn | ||
profiling.mdwn | ||
projects.mdwn | ||
publicrepos.mdwn | ||
related_software.mdwn | ||
repomap.png | ||
required_content.mdwn | ||
scalability.mdwn | ||
security.mdwn | ||
shortcuts.mdwn | ||
sidebar.mdwn | ||
sitemap.mdwn | ||
special_remotes.mdwn | ||
stickers.mdwn | ||
submodules.mdwn | ||
summary.mdwn | ||
sync.mdwn | ||
testimonials.mdwn | ||
thanks.mdwn | ||
tips.mdwn | ||
todo.mdwn | ||
transferring_data.mdwn | ||
trust.mdwn | ||
tuning.mdwn | ||
upgrades.mdwn | ||
users.mdwn | ||
videos.mdwn | ||
walkthrough.mdwn | ||
workflow.mdwn |