ytdl-org / youtube-dl

Command-line program to download videos from YouTube.com and other video sites
http://ytdl-org.github.io/youtube-dl/
The Unlicense
132.22k stars 10.03k forks source link

[bilibili.com]please add download playlist #17629

Open shootoutrw opened 6 years ago

shootoutrw commented 6 years ago

Please follow the guide below


Make sure you are using the latest version: run youtube-dl --version and ensure your version is 2018.09.18. If it's not, read this FAQ entry and update. Issues with outdated version will be rejected.

Before submitting an issue make sure you have:

What is the purpose of your issue?

If the purpose of this issue is a site support request please provide all kinds of example URLs support for which should be included (replace following example URLs by yours):

VectoAbhi commented 6 years ago

By the way, playlists can be downloaded with the help of "youtube-dl" command. I did it many times.

zhongh3 commented 6 years ago

By the way, playlists can be downloaded with the help of "youtube-dl" command. I did it many times.

I think it doesn't work now since bilibili has change the implementation of playlist. Here's how different parts are referenced now, e.g. https://www.bilibili.com/video/av28148919/?p=2 https://www.bilibili.com/video/av28148919/?p=3 https://www.bilibili.com/video/av28148919/?p=4

shootoutrw commented 6 years ago

@VectoAbhi @zhongh3

C:\Users\Administrator>youtube-dl -v --yes-playlist https://www.bilibili.com/vid eo/av28148919 [debug] System config: [] [debug] User config: ['--external-downloader', 'aria2c', '--external-downloader- args', '-x 16 -k 1M', '-o', '%(title)s.%(ext)s'] [debug] Custom config: [] [debug] Command-line args: ['-v', '--yes-playlist', 'https://www.bilibili.com/vi deo/av28148919'] [debug] Encodings: locale cp936, fs utf-8, out utf-8, pref cp936 [debug] youtube-dl version 2018.09.18 [debug] Python version 3.7.0 (CPython) [debug] exe versions: ffmpeg 4.0.2, ffprobe 4.0.2 [debug] Proxy map: {} [BiliBili] 28148919: Downloading webpage [BiliBili] 28148919: Downloading video info page [download] Downloading playlist: Python 2018最新版 [BiliBili] playlist Python 2018最新版: Collected 3 video ids (downloading 3 of t hem) [download] Downloading video 1 of 3 [debug] Default format spec: bestvideo+bestaudio/best [debug] Invoking downloader on 'http://cn-hbxy-cmcc-v-01.acgvideo.com/upgcxcode/ 73/86/48648673/48648673-1-80.flv?expires=1537924800&platform=pc&ssig=dcqPor73NFr pIMn1VgN9SQ&oi=614310017&nfa=7VMUDqBQpI8VGBbhQ1faUQ==&dynamic=1&hfa=2040129153&h fb=Yjk5ZmZjM2M1YzY4ZjAwYTMzMTIzYmIyNWY4ODJkNWI=&trid=2b8b9b9407b24c34896207f21a1 cc09b&nfc=1' [download] Destination: Python 2018最新版.flv [debug] aria2c command line: aria2c -c -x 16 -k 1M --out "Python 2018最新版.flv. part" --header "User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:59.0) Gecko/20100 101 Firefox/59.0" --header "Accept-Charset: ISO-8859-1,utf-8;q=0.7,;q=0.7" --he ader "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,/*;q=0.8" - -header "Accept-Encoding: gzip, deflate" --header "Accept-Language: en-us,en;q=0 .5" --header "Referer: https://www.bilibili.com/video/av28148919" "--check-certi ficate=true" -- "http://cn-hbxy-cmcc-v-01.acgvideo.com/upgcxcode/73/86/48648673/ 48648673-1-80.flv?expires=1537924800&platform=pc&ssig=dcqPor73NFrpIMn1VgN9SQ&oi= 614310017&nfa=7VMUDqBQpI8VGBbhQ1faUQ==&dynamic=1&hfa=2040129153&hfb=Yjk5ZmZjM2M1 YzY4ZjAwYTMzMTIzYmIyNWY4ODJkNWI=&trid=2b8b9b9407b24c34896207f21a1cc09b&nfc=1"

09/25 18:23:59 [NOTICE] Downloading 1 item(s)

09/25 18:24:00 [NOTICE] Allocating disk space. Use --file-allocation=none to dis able it. See --file-allocation option in man page for more details. [#fc81ad 17MiB/17MiB(99%) CN:1 DL:275KiB] 09/25 18:24:44 [NOTICE] Download complete: C:/Users/Administrator/Python 2018最 新版.flv.part

Download Results: gid |stat|avg speed |path/URI ======+====+===========+======================================================= fc81ad|OK | 411KiB/s|C:/Users/Administrator/Python 2018最新版.flv.part

Status Legend: (OK):download completed. [aria2c] Downloaded 18678381 bytes [download] 100% of 17.81MiB in 00:45 [download] Downloading video 2 of 3 [debug] Default format spec: bestvideo+bestaudio/best [debug] Invoking downloader on 'http://cn-hbxy-cmcc-v-01.acgvideo.com/upgcxcode/ 73/86/48648673/48648673-2-80.flv?expires=1537924800&platform=pc&ssig=ipmpsh-ipuT RqVSKiJpSZg&oi=614310017&nfa=7VMUDqBQpI8VGBbhQ1faUQ==&dynamic=1&hfb=Yjk5ZmZjM2M1 YzY4ZjAwYTMzMTIzYmIyNWY4ODJkNWI=&trid=2b8b9b9407b24c34896207f21a1cc09b&nfc=1' [download] Python 2018最新版.flv has already been downloaded [download] 100% of 17.81MiB [download] Downloading video 3 of 3 [debug] Default format spec: bestvideo+bestaudio/best [debug] Invoking downloader on 'http://cn-hbxy-cmcc-v-01.acgvideo.com/upgcxcode/ 73/86/48648673/48648673-3-80.flv?expires=1537924800&platform=pc&ssig=P_AcnI3Hv9h ovOvnxFEemQ&oi=614310017&nfa=7VMUDqBQpI8VGBbhQ1faUQ==&dynamic=1&hfb=Yjk5ZmZjM2M1 YzY4ZjAwYTMzMTIzYmIyNWY4ODJkNWI=&trid=2b8b9b9407b24c34896207f21a1cc09b&nfc=1' [download] Python 2018最新版.flv has already been downloaded [download] 100% of 17.81MiB [download] Finished downloading playlist: Python 2018最新版

zhongh3 commented 6 years ago

Current implementation only takes care of downloading parts of the same video, not the videos from the playlist. The parameter "?p=4" is currently ignored. Regardless of the "p" number, it's always use the cid of the 1st video of the playlist. Need to parse the html to get different cid for different "p" (i.e. "page").