吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 23823|回复: 268
收起左侧

[其他原创] 爬虫-哔哩哔哩-视频下载

    [复制链接]
18382747915 发表于 2020-11-15 19:30
本帖最后由 18382747915 于 2020-12-22 11:54 编辑

今天闲的无聊写的一个哔哩哔哩视频下载,因为要下载一个4k画质的视频奈何要开会员和下载客户端才能下载。
哔哩哔哩的视频有点特殊,他是由视频+音频两个文件组成的,所以把这两个文件下载下来后需要将视频和音频合并。
合并用的ffmpeg的插件,但是不知道为什么有时候会合并失败,不过不重要,把音频和视频下载出来后网上有很多第三方的合并软件可以合成。
使用方式:首先选择文件保存的地址,然后输入视频网页地址,点击确定,然后选择画质一般选4K吧。
然后就等他下载,不得不说哔哩哔哩的网络带宽挺大的,下载十多秒,下载完成后,按照提示点击合并按钮进行合并。
合并完成后你的文件夹有三个文件(音频、视频、合成视频)。
有时候可能会合并失败,多试几次,或者网上找其他的合成工具进行合并
本来想放成品的,但是51限制文件大小3M,就懒得用其他方式上传了 因为没啥技术含量,我把关键代码贴出来就基本上能做出来(贴出的代码就是获取下载链接的,里面包括视频链接和音频链接,然后下载下来用ffmpeg合并)。
PS:不知道为什么最近感觉身体被掏空了。
没想到回复的人那么多,把成品地址发给大家

链接: https://pan.baidu.com/s/1jYqO7pBrR55_zUte0IQbJw 提取码: m74w
代码:
[C#] 纯文本查看 复制代码
private void button2_Click(object sender, EventArgs e)
        {
            label2.Visible = true;
            HttpHelper http = new HttpHelper();
            HttpItem item = new HttpItem
            {
                URL = textBox1.Text.Trim(),
                Host = "www.bilibili.com",
                UserAgent = userAgent
            };
            var result = http.GetHtml(item);
            string html = result.Html;
            string gl = HttpHelper.GetBetweenHtml(html, "window.__playinfo__=", "</script><script>window.__INITIAL_STATE__");
            title = HttpHelper.GetBetweenHtml(html, "<title data-vue-meta=\"true\">", "</title>");
            root = (Root)HttpHelper.JsonToObject<Root>(gl);
            if (root.code == 0)
            {

                RadioButton[] radioButton = new RadioButton[root.data.accept_description.Count];
                //控件上边缘与容器上边缘的距离  
                int top = 6;
                //记录循环,控件左上角相对于容器左上角的坐标  
                int i = 0;
                int n = 0;
                GroupBox gb = new GroupBox();
                panel1.AutoScroll = true;
                for (n = 0; n < root.data.accept_description.Count; n++)
                {
                    radioButton[n] = new RadioButton();
                    button3.Visible = true;
                    if (n % 3 == 0 && n != 0)
                    {
                        top += 30;
                        i = 0;
                    }
                    if (n == 0)
                    {
                        radioButton[n].Checked = true;
                    }
                    radioButton[n].AutoSize = true;
                    radioButton[n].Top = top;
                    //控件左上角相对于容器左上角的坐标,以及每个控件之间的距离  
                    radioButton[n].Location = new Point(i * 150 + 2, top);
                    // MessageBox.Show(name[n].ToString());  
                    radioButton[n].Text = root.data.accept_description[n];
                    radioButton[n].Visible = true;
                    radioButton[n].Name = "radioButton" + n;
                    radioButton[n].Tag = n;
                    this.panel1.Controls.Add(radioButton[n]);
                    i++;
                }
            };
        }
          //点击下载按钮的代码
            foreach (var item in panel1.Controls)
            {
                if (item is RadioButton)
                {
                    RadioButton radio = item as RadioButton;
                    if (radio.Checked)
                    {
                        var tag = int.Parse(radio.Tag.ToString());
                        string videourl = root.data.dash.video.ToList()[tag].baseUrl;
                        string audiourl = root.data.dash.audio.ToList()[0].baseUrl;
                        //DownloadAudio(audiourl);
                        //DownloadVideo(videourl);

                        Thread thread = new Thread(new ParameterizedThreadStart(DownloadVideo));
                        thread.Start(videourl);
                        Thread thread2 = new Thread(new ParameterizedThreadStart(DownloadAudio));
                        thread2.Start(audiourl);

                    }

                }
//合成代码
private void button4_Click(object sender, EventArgs e)
        {
            this.Invoke((EventHandler)delegate
            {
                textBox2.Text += DateTime.Now.ToString() + "合并中 请稍后...\r\n";
            });
            string path = textBox3.Text + guid ;
            string avi = textBox3.Text +"合并视频";
            string arguments = "-i " + path + ".avi  -i " + path + ".aac  -vcodec copy -acodec copy " + avi + ".avi";
            //arguments = "-i " + path + ".avi  -i " + path + ".aac  -c:v copy -c:a aac -strict experimental " + avi + ".avi";
            Process p = new Process();
            p.StartInfo.FileName = "ffmpeg.exe";
            p.StartInfo.Arguments = arguments;
            p.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
            //  p.StartInfo.RedirectStandardError = true;
            p.ErrorDataReceived += new DataReceivedEventHandler(Output);//外部程序
            p.Start();//启动线程
            timer1.Enabled = true;
        }

图片.png
图片.png
2020-12-22:经过网友测试,发现仅支持部分4k视频下载

点评

经测试,软件不能下载1080p以上画质,请楼主发布软件前先测试。  发表于 2020-11-21 17:27

免费评分

参与人数 68吾爱币 +54 热心值 +59 收起 理由
amen5555 + 1 热心回复!
ymyoo + 1 谢谢@Thanks!
draeag + 1 + 1 谢谢@Thanks!
liukun97cc + 1 + 1 谢谢@Thanks!
RyanLi + 1 + 1 谢谢@Thanks!
TSF + 1 + 1 用心讨论,共获提升!
DX1186 + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
生活的回音 + 1 谢谢@Thanks!
SPL + 1 + 1 用心讨论,共获提升!
独孤的云 + 1 + 1 我很赞同!
hf123qwe + 1 + 1 热心回复!
东风快递员007 + 1 + 1 谢谢@Thanks!
SX_xxxxx + 1 + 1 可以,不愧是你!
深度潜水 + 1 + 1 我很赞同!
孤声独处 + 1 谢谢@Thanks!
Soul_Robot + 1 + 1 谢谢@Thanks!
chen42779 + 1 + 1 膜拜大佬!!!!!!
fengdaokanhai + 1 + 1 楼主有源码吗?
许小展 + 1 + 1 谢谢@Thanks!
鹏大大 + 1 + 1 热心回复!
Assam + 1 用心讨论,共获提升!
15637631148 + 1 热心回复!
liqi1 + 1 + 1 谢谢@Thanks!
Leoken + 1 + 1 谢谢@Thanks!
_达圣 + 1 + 1 用心讨论,共获提升!
四个字 + 1 + 1 我很赞同!
Firexuan + 1 + 1 谢谢@Thanks!
Bayagin + 1 谢谢@Thanks!
小丸子云流量 + 1 哇塞谢谢大佬~!
爱金币的蟹老板 + 1 热心回复!感谢分享
LoginXu + 1 谢谢@Thanks!
gzlinsen + 1 + 1 谢谢@Thanks!
wwenjie1990 + 1 我很赞同!
mr_tak + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
benwha + 1 谢谢@Thanks!
hndxhgyxs + 1 + 1 我很赞同!
cappuccino2020 + 1 用心讨论,共获提升!
cookiesxxy + 1 我很赞同!
且叹霜寒 + 1 + 1 谢谢@Thanks!
liaoyuexu + 1 + 1 我很赞同!
维念眠月 + 1 我很赞同!
一二山士 + 1 热心回复!
未来老中医 + 1 + 1 谢谢@Thanks!
Dragon_214 + 1 + 1 谢谢@Thanks!
孔生 + 1 + 1 谢谢@Thanks!
Chacker + 1 + 1 谢谢@Thanks!
178111512233 + 1 + 1 谢谢@Thanks!
yanglinman + 1 谢谢@Thanks!
无聊的夜 + 1 谢谢
DivineWing + 1 + 1 我很赞同!
28103 + 1 + 1 用心讨论,共获提升!
cndy + 1 求P站4K视频下载工具!!~~~~~~~~~~
liu101816 + 1 + 1 谢谢@Thanks!
大伟搞事情 + 1 谢谢@Thanks!
zkq6 + 1 + 1 谢谢@Thanks!
可遇可玥 + 1 谢谢@Thanks!
ym7611256 + 1 + 1 用心讨论,共获提升!
loveliuhao323 + 1 + 1 谢谢@Thanks!
眺望远方的孤岛 + 2 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
InsDream + 1 我很赞同!
LAILAILAI + 1 + 1 热心回复!
hdhddjj + 1 + 1 谢谢@Thanks!
Narumi-Kaede + 1 谢谢@Thanks!
yunwalking + 1 + 1 我很赞同!
schedule + 1 谢谢@Thanks!
luyan29 + 1 + 1 666 2333
hhpurple + 1 + 1 我很赞同!
burnda + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

airwenlee 发表于 2020-11-15 19:49
真的可以不用会员就下载4K视频吗?
Kamoo 发表于 2020-11-15 20:35
眺望远方的孤岛 发表于 2020-11-21 17:28
软件不能下载1080p以上画质,楼主您发布前测试过没有?
大公无私 发表于 2020-11-15 19:50
这个可以有 感谢分享
burnda 发表于 2020-11-15 19:51

谢谢辛苦啦。
之前的一个工具不能用,手动又麻烦,楼主
cappuccino2020 发表于 2020-11-15 19:51
感谢分享,学习了
 楼主| 18382747915 发表于 2020-11-15 19:51
airwenlee 发表于 2020-11-15 19:49
真的可以不用会员就下载4K视频吗?

嗯..................
a75580706 发表于 2020-11-15 19:54
拿走了,谢谢
hhpurple 发表于 2020-11-15 19:57
楼主厉害
乐寓学研 发表于 2020-11-15 20:00
厉害,一直用的唧哩凑合下载1080P或720P的
luyan29 发表于 2020-11-15 20:05
感谢感谢啊
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 02:44

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表