проблемы youtube-dl, не может загрузить частные видео

[

] Поскольку tar-файлы являются потоковым форматом - вы можете []cat[] объединить два из них вместе и получить практически корректный результат - для этого вам вообще не нужно извлекать их на диск. Вы можете распаковать (только) файлы, скомпоновать их вместе и перекомпрессировать этот поток:[

] [

xzcat *.tar.xz | xz -c > combined.tar.xz

] [

][]combined.tar.xz[] будет сжатым тарболом всех файлов в компоненте tar-файлов, который лишь слегка поврежден. Для распаковки вам придется использовать [][]--ignore-zeros[] опцию[] (в GNU []tar[]), так как в архивах есть маркер "endof-file", который появится посередине результата. В остальном, однако, всё будет работать правильно.[

] [

]GNU []tar[] также поддерживает режим [][]-concatenate[][] для создания комбинированных архивов. Это имеет те же ограничения, что и выше - вы должны использовать []--ignore-zeros[] для извлечения - но это не работает со сжатыми архивами. Вы можете собрать что-нибудь, чтобы обманом заставить его работать, используя подстановку процессов, но это хлопотно и еще более хрупко.[

] [

]Если есть файлы, которые появляются несколько раз в разных tar-файлах, это не сработает должным образом, но у вас есть эта проблема независимо от того, есть ли она. Иначе это даст вам то, что вы хотите - пропуская вывод через []xz[], []tar[] все равно сжимает свой вывод. [

] [


] [

] Если архивы, которые работают только с конкретной реализацией []tar[], не подходят для ваших целей, приложение к архиву с []r[] является вашим другом:[

] [

tar cJf combined.tar.xz dummy-file
for x in db-*.tar.xz
do
    mkdir tmp
    pushd tmp
    tar xJf "../$x"
    tar rJf ../combined.tar.xz .
    popd
    rm -r tmp
done

] [

]Это только когда-либо извлекает один архив за раз, так что рабочее пространство ограничено размером содержимого одного архива. Сжатие происходит так же, как это было бы, если бы вы сделали окончательный архив все сразу, так что это будет так же хорошо, как это когда-либо могло бы быть. Вы делаете много избыточного распаковки и перекомпрессии, что сделает это медленнее, чем версии []cat[], но полученный архив будет работать где угодно без какой-либо специальной поддержки.[

] [

]Обратите внимание, что - в зависимости от того, что именно вы хотите - просто добавить в архив сами несжатые tar-файлы, возможно, будет достаточно. Они будут сжимать (почти) точно так же, как и их содержимое в одном файле, и это уменьшит накладные расходы на сжатие для каждого файла. Это будет выглядеть примерно так:[

] [

tar cJf combined.tar.xz dummy-file
for x in db-*.tar.xz
do
    xz -dk "$x"
    tar rJf combined.tar.xz "${x%.xz}"
    rm -f "${x%.xz}"
done

] [

]Это немного менее эффективно с точки зрения конечного сжатого размера, потому что в потоке есть дополнительные заголовки tar, но это экономит некоторое время на извлечение и повторное добавление всех файлов в качестве файлов. В итоге вы получите []combine.tar.xz[], содержащий множество (несжатых) []db-*.tar[] файлов.[

].

1
27.01.2015, 13:08
2 ответа

Это связано с некоторой ошибкой в ​​новейшем обновлении (или другом более новере). Я использовал 2014.09.29.2 И это работало правильно.

1
27.01.2020, 23:37

Версия 2016.08.19 не может загружать частное видео с YouTube

при использовании --verbose возникает исключение.

1
27.01.2020, 23:37

Теги

Похожие вопросы