Commit graph

466 commits

Author SHA1 Message Date
Jody Bruchon ecdec1913f Keep download archive in memory for better performance
The old behavior was to open and scan the entire archive file for
every single video download. This resulted in horrible performance
for archives of any remotely large size, especially since all new
video IDs are appended to the end of the archive. For anyone who
uses the archive feature to maintain archives of entire video
playlists or channels, this meant that all such lists with newer
downloads would have to scan close to the end of the archive file
before the potential download was rejected. For archives with tens
of thousands of lines, this easily resulted in millions of line
reads and checks over the course of scanning a single channel or
playlist that had been seen previously.

The new behavior in this commit is to preload the archive file
into a binary search tree and scan the tree instead of constantly
scanning the file on disk for every file. When a new download is
appended to the archive file, it is also added to this tree. The
performance is massively better using this strategy over the more
"naive" line-by-line archive file parsing strategy.

The only negative consequence of this change is that the archive
in memory will not be synchronized with the archive file on disk.
Running multiple instances of the program at the same time that
all use the same archive file may result in duplicate archive
entries or duplicated downloads. This is unlikely to be a serious
issue for the vast majority of users. If the instances are not
likely to try to download identical video IDs then this should
not be a problem anyway; for example, having two instances pull
two completely different YouTube channels at once should be fine.

Signed-off-by: Jody Bruchon <jody@jodybruchon.com>
2020-09-17 14:22:07 -04:00
Unknown 7ac0ba50ce [hotstar] regex fix 2020-09-17 14:00:03 +02:00
Unknown 17cb02d0c6 bump version 2020.09.16 2020-09-16 13:55:35 +02:00
Unknown 78895bd3a1 [Core] hls manifests, dynamic mpd 2020-09-16 13:00:41 +02:00
Tom-Oliver Heidel cd93279de8 Merge branch 'ext/remuxe-video' of https://github.com/Zocker1999NET/youtube-dl into Zocker1999NET-ext/remuxe-video 2020-09-16 10:30:38 +02:00
Tom-Oliver Heidel c11c64f318 Merge branch 'elonet' of https://github.com/tpikonen/youtube-dl into tpikonen-elonet 2020-09-14 13:24:18 +02:00
Tom-Oliver Heidel 4c7d0c13e1 Merge branch 'fix-mitele' of https://github.com/DjMoren/youtube-dl 2020-09-14 13:22:50 +02:00
Tom-Oliver Heidel acdb1a4ec6 Merge branch 'arbitrary-merges' of https://github.com/fstirlitz/youtube-dlc 2020-09-14 13:04:24 +02:00
felix d03cfdce1b Support arbitrary stream merges
With this change, the merge operator may join any number of media streams,
video or audio. The streams are downloaded in the order specified.

Also, fix the metadata post-processor so that it doesn't leave out
any streams.
2020-09-14 12:53:09 +02:00
Unknown e69dd78090 merge ytdl-master 2020-09-14 12:50:56 +02:00
Tom-Oliver Heidel 3796554609
Merge pull request #102 from blackjack4494/gdcvault-fix
[gdcvault] fix extractor
2020-09-13 15:22:33 +02:00
Unknown 4b819d1454 flake8 2020-09-13 15:21:59 +02:00
Unknown 10bbf2c48d [skip travis] bump version 2020-09-13 15:16:38 +02:00
Tom-Oliver Heidel acd0a71894
Merge pull request #96 from blackjack4494/kakao-new-apis
[kakao] new apis
2020-09-13 12:47:12 +02:00
Tom-Oliver Heidel d8edca1e56
Merge pull request #95 from blackjack4494/daserste-ndr
[ndr] support Daserste ndr
2020-09-13 12:36:17 +02:00
Unknown 4cd3053c4f [kakao] new apis
there are also ageLimit and GeoBlock attributes provided by api_json if needed
2020-09-13 12:31:36 +02:00
Unknown f791b41970 flake8 2020-09-13 11:08:02 +02:00
Unknown 57df9f53e0 [youtube] convert subtitles with --skip-download 2020-09-13 11:03:48 +02:00
Unknown 84da5d84b0 add json3 back but don't use it as default. 2020-09-13 11:02:07 +02:00
Unknown fc0999c695 exclude json3 for now 2020-09-13 09:22:24 +02:00
Unknown d23f9ec7eb [gdcvault] fix extractor
at least when not logged in?
2020-09-13 01:04:02 +02:00
felix de7c27cd25 [dispeak] mark the "slides" stream as video-only 2020-09-12 13:41:23 +02:00
Unknown ac4df0908a [skip travis] bump version 2020-09-12 06:17:02 +02:00
Tom-Oliver Heidel 6cef08ad00 Merge branch 'tiktok' of https://github.com/skyme5/youtube-dl into skyme5-tiktok 2020-09-12 05:49:52 +02:00
Tom-Oliver Heidel df38b4a1a9 Merge branch 'pr/duboku' of https://github.com/lkho/youtube-dl into lkho-pr/duboku 2020-09-12 05:47:27 +02:00
Tom-Oliver Heidel ca640230de Merge branch 'alura' of https://github.com/hugohaa/youtube-dl into hugohaa-alura 2020-09-12 05:38:44 +02:00
Tom-Oliver Heidel 310f762636 Merge branch '26564' of https://github.com/adrianheine/youtube-dl into adrianheine-26564 2020-09-12 05:37:08 +02:00
Tom-Oliver Heidel 23306df2d8 Merge branch 'master' of https://github.com/ddland/youtube-dl into ddland-master 2020-09-12 05:34:59 +02:00
Tom-Oliver Heidel bb1d0b26ed Merge branch 'patch-2' of https://github.com/nixxo/youtube-dl into nixxo-patch-2 2020-09-12 05:33:16 +02:00
Unknown 55e106d1b0 Merge remote-tracking branch 'origin/master' 2020-09-12 05:22:29 +02:00
Tom-Oliver Heidel 0f0762a761 Merge branch 'myvideo_ge' of https://github.com/fonkap/youtube-dl into fonkap-myvideo_ge 2020-09-12 05:22:08 +02:00
Tom-Oliver Heidel 4d0d5e37f9
Merge pull request #69 from blackjack4494/viki-subtitles_and_more
[Viki] subtitles, formats
2020-09-12 05:21:46 +02:00
Tom-Oliver Heidel d153de9d10 Merge branch 'rai-update' of https://github.com/iamleot/youtube-dl into iamleot-rai-update 2020-09-12 05:12:19 +02:00
Tom-Oliver Heidel e61b2178eb Merge branch 'JensTimmerman-patch-1' of https://github.com/JensTimmerman/youtube-dl into JensTimmerman-JensTimmerman-patch-1 2020-09-12 05:10:55 +02:00
Unknown 39e7107d7f Merge branch 'ytdl-org-master' 2020-09-12 05:08:57 +02:00
Tom-Oliver Heidel 448f4b70c6 Merge branch 'fix/google-drive-cookie-issue' of https://github.com/legraphista/youtube-dl into legraphista-fix/google-drive-cookie-issue 2020-09-12 05:02:08 +02:00
Unknown 4ae68091bb [soundcloud] flake8 2020-09-12 01:17:16 +02:00
Unknown 921dc153f3 [ndr-daserste] flake8 2020-09-12 01:12:39 +02:00
Unknown dc9d8f44d6 [daserste-ndr] dirty workaround
what a mess..
2020-09-11 03:20:44 +02:00
Unknown 169bd46bdc [viki] subtitles, formats 2020-09-09 21:20:13 +02:00
Unknown 389709160c [soundcloud] playlist limit per page according to official docs
https://github.com/ytdl-org/youtube-dl/pull/26557
2020-09-09 18:24:20 +02:00
Tom-Oliver Heidel cb2ea2d5ef Merge branch 'rutv' of https://github.com/adrianheine/youtube-dl into adrianheine-rutv 2020-09-08 18:58:19 +02:00
Tom-Oliver Heidel 10a4858d8f Merge branch 'magenta' of https://github.com/adrianheine/youtube-dl into adrianheine-magenta 2020-09-08 18:49:11 +02:00
Tom-Oliver Heidel baf36445c1 Merge branch 'ard.py_add_playlist_support' of https://github.com/martin54/youtube-dl into martin54-ard.py_add_playlist_support 2020-09-08 18:31:53 +02:00
Unknown 2045de7c32 [skip travis] bump version 2020-09-06 07:36:49 +02:00
Tom-Oliver Heidel 65f5a72266 Merge branch 'ondemandkorea' of https://github.com/julien-hadleyjack/youtube-dl into julien-hadleyjack-ondemandkorea 2020-09-06 04:02:43 +02:00
Unknown bc842c27a7 flake8 fix + soundcloud tests 2020-09-06 02:57:08 +02:00
Tom-Oliver Heidel 3c0c0b428d Merge branch 'mkvthumbnail' of https://github.com/MrDoritos/youtube-dl into MrDoritos-mkvthumbnail 2020-09-06 02:43:37 +02:00
Tom-Oliver Heidel a74727e93c Merge branch 'abc' of https://github.com/adrianheine/youtube-dl into adrianheine-abc 2020-09-06 02:39:04 +02:00
Unknown b54d0e702a Merge remote-tracking branch 'origin/master' 2020-09-06 02:37:51 +02:00
Tom-Oliver Heidel 9aa79d6460 Merge branch 'master' of https://github.com/zubearc/youtube-dl into zubearc 2020-09-06 01:52:20 +02:00
NotFound 7078ec64b3 [hotstar] Move to API v1 2020-09-06 03:04:08 +05:30
Tom-Oliver Heidel 51f8793699 Merge branch 'deezer' of https://github.com/LucBerge/youtube-dl into LucBerge-deezer 2020-09-05 19:40:01 +02:00
Tom-Oliver Heidel 47b9774231 Merge branch 'wdr-subtitles' of https://github.com/mrtnmtth/youtube-dl into mrtnmtth-wdr-subtitles 2020-09-05 19:37:36 +02:00
Unknown 906f980a75 [soundcloud] sets pattern and tests
include tests (weekly + charts)
weekly with login worked before. but now also public weekly will work. charts and similar patterned sets as well
2020-09-04 00:57:37 +02:00
Tom-Oliver Heidel e908c55c9f Merge branch 'tvnow' of https://github.com/TinyToweringTree/youtube-dl into TinyToweringTree-tvnow 2020-09-03 18:19:36 +02:00
Unknown 633c2852fb [skip travis] twitch release. 2020-09-03 17:11:38 +02:00
Tom-Oliver Heidel dac4ecf592 Merge branch 'twitch-fix' of https://github.com/lel-amri/youtube-dl into lel-amri-twitch-fix 2020-09-03 17:05:58 +02:00
Unknown 92dcea3d94 [skip travis] versioning in pypi is fun.. 2020-09-03 05:55:10 +02:00
Unknown c8ba06b7b6 bumping version 2020-09-03 05:28:57 +02:00
Tom-Oliver Heidel 22f9b078fd Merge branch 'master' of https://github.com/ssaqua/youtube-dl into ssaqua-master 2020-09-03 04:34:56 +02:00
Unknown 3ca3f77f9c [skip travis] adding automerge support
basically copying content of youtube_dl folder to youtube_dlc and excluding the youtube_dl folder when compiling
2020-09-02 23:33:41 +02:00
Unknown 8c5fee2ea5 fix merge. 2020-09-02 23:03:04 +02:00
Unknown 3867038a06 renaming issues resolved 2020-09-02 22:37:35 +02:00
Unknown 66f4ffbbad [skip travis] update version to dev 2020-09-02 22:06:45 +02:00
Unknown cefecac12c [skip travis] renaming
to avoid using same folder when using pip install for example
2020-09-02 20:25:25 +02:00