哔哩哔哩bilibili自动上传视频脚本-配合爬虫营销号狂喜
纯ruby版本的bilibili视频上传脚本,可以将指定目录下的视频依次上传到bilibili(需要对应账号的cookie)
主要分为4个步骤:预上传,获取推荐标签,通知上传完成,上传
一,视频预上传
获取上传视频所需的各项参数,并将视频切割 进行分片上传
复制代码 隐藏代码
def get_preupload(name,cookie,path)size = File.size("#{path}/#{name}")puts "#{Time.now}-------------------preupload预上传"lk = "https://member.bilibili.com/preupload?name=#{URI.encode(name)}&size=#{size}&r=upos&profile=ugcupos/bup&ssl=0&version=2.7.1&build=2070100&upcdn=bda&probe_version=20200224"headers = {"cookie"=>cookie,"user-agent"=>"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.182 Safari/537.36"}#1str =RestClient.get(lk,headers=headers)doc = JSON.parse(str)auth = doc["auth"]upos_uri = doc["upos_uri"]chunk_size = doc["chunk_size"]biz_id = doc["biz_id"]#2puts "#{Time.now}-------------------准备上传视频"lk = "https://upos-sz-upcdnbda2.bilivideo.com/#{upos_uri.gsub("upos://","")}?uploads&output=json"data = "uploads&output=json"headers = {"cookie"=>cookie,"user-agent"=>"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.182 Safari/537.36","x-upos-auth"=>auth}str = RestClient.post(lk,data,headers=headers)doc = JSON.parse(str)upload_id = doc["upload_id"]#puts "#{Time.now}-------------------分批上传视频"chunkss = size.to_f/chunk_sizeif chunkss > chunkss.to_ichunks =chunkss.to_i + 1endfile = File.open("#{path}/#{name}")if chunks < 3sleep(15)endfor i in 1..chunksputs "#{Time.now}-------------------上传第#{i}部分"partnumber = 0+ichunk = i-1starts = file.tell()data = file.read(chunk_size)sizes = data.sizeends = file.tell()lk = "https://upos-sz-upcdnbda2.bilivideo.com/#{upos_uri.gsub("upos://","")}?partNumber=#{partnumber}&uploadId=#{upload_id}&chunk=#{chunk}&chunks=#{chunks}&size=#{sizes}&start=#{starts}&end=#{ends}&total=#{size}"params = "partNumber=#{partnumber}&uploadId=#{upload_id}&chunk=#{chunk}&chunks=#{chunks}&size=#{sizes}&start=#{starts}&end=#{ends}&total=#{size}"headers = {"cookie"=>cookie,"user-agent"=>"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.182 Safari/537.36","x-upos-auth"=>auth}str = RestClient.put(lk,data=data,headers=headers)puts "-----上传视频状态码#{str.code}"endputs "-------------------通知上传完毕"lk = "https://upos-sz-upcdnbda2.bilivideo.com/#{upos_uri.gsub("upos://","")}?output=json&name=#{URI.encode(name)}&profile=ugcupos%2Fbup&uploadId=#{upload_id}&biz_id=#{biz_id}"params = "output=json&name=#{URI.encode(name)}&profile=ugcupos%2Fbup&uploadId=#{upload_id}&biz_id=#{biz_id}"data= {}data[:parts] = chunks.times.map{|x| {"partNumber":x+1,"eTag":"etag"}}headers4 = {"cookie"=>cookie,"user-agent"=>"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.105 Safari/537.36","X-Upos-Auth"=>auth}puts str = RestClient.post(lk,payload=data.to_json,headers=headers)return upos_uri,biz_idend
二,获取推荐标签
获取bilibili给出的视频推荐标签,我这边是使用默认的前5个标签
复制代码 隐藏代码
def get_tag(name,cookie,upos_uri)sleep(2)puts "-------------------获取视频推荐标签"puts lk = "https://member.bilibili.com/x/vupre/web/archive/tags?typeid=&title=#{URI.encode(name.gsub(".mp4",""))}&filename=#{upos_uri.split("/")[-1].gsub(/\..+/,"")}&desc=&cover=&groupid=0&vfea="headers ={"cookie"=>cookie}str = RestClient.get(lk,headers=headers)doc = JSON.parse(str)tags = doc["data"][0..4].map{|x| x["tag"]}.join(",")puts "----当前标签:#{tags}"return tagsend
三,预发布
复制代码 隐藏代码
def get_inform(cookie)puts "#{Time.now}-------------------预发布"lk = "https://member.bilibili.com/x/geetest/pre/add"headers ={"cookie"=>cookie}str = RestClient.get(lk,headers=headers)end
四,发布视频
复制代码 隐藏代码
def get_up(upos_uri,name,biz_id,tags,cookie,bili_jct)sleep(2)lk = "https://member.bilibili.com/x/vu/web/add?csrf=#{bili_jct}"data="{\"copyright\":2,\"videos\":[{\"filename\":\"#{upos_uri.split("/")[-1].gsub(/\..+/,"")}\",\"title\":\"#{name.gsub(".mp4","")}\",\"desc\":\"\",\"cid\":#{biz_id}}],\"source\":\"\",\"tid\":174,\"cover\":\"\",\"title\":\"#{name.gsub(".mp4","")}\",\"tag\":\"#{tags}\",\"desc_format_id\":0,\"desc\":\"\",\"dynamic\":\"\",\"subtitle\":{\"open\":0,\"lan\":\"\"},\"up_close_reply\":false,\"up_close_danmu\":false}"headers = {"content-type"=>"application/json;charset=UTF-8","cookie"=>cookie,"dnt"=>"1","origin"=>"https://member.bilibili.com","pragma"=>"no-cache","referer"=>"https://member.bilibili.com/video/upload.html","sec-fetch-dest"=>"empty","sec-fetch-mode"=>"cors","sec-fetch-site"=>"same-origin","user-agent"=>"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.190 Safari/537.36"}puts str = RestClient.post(lk,data,headers=headers)puts "#{Time.now}------------------发布成功"end
哔哩哔哩bilibili自动上传视频脚本-配合爬虫营销号狂喜相关推荐
- python广告营销平台_荐用Python写一个营销号垃圾视频生成器
用Python写一个营销号垃圾视频生成器 可能是闲着太无聊,然而复习是不可能复习的,就做了一个这个玩意儿,改天进军UC和百家号(不会真有人用吧) 先看看效果:(1:20以后) 用Python做的营销号 ...
- 2021-07-07 - 使用脚本批量下载网页视频[如哔哩哔哩] - 学习/实践
1.应用场景 主要用于使用脚本批量下载web视频,音频,图片资源,进行资源的收集下载,或者避免资源的丢失,使用命令脚本则有利于节省时间,提高效率. 比如资源可能后续不存在,或者,想二次整理资源,更好地 ...
- Python爬取哔哩哔哩(bilibili)视频
本篇文章主要给大家讲解下如实使用python 爬取哔哩哔哩中的视频,首先我是一名大数据开发工程师,爬虫只是我的一个业余爱好,喜欢爬虫的小伙伴可以一起交流.好了多了就不多说了喜欢的朋有可以收藏,转发请复 ...
- Python采集哔哩哔哩(bilibili)视频(详细教程)
一.环境准备 我这里使用的是环境如下仅供参考: 开发工具: pycharm python环境:python-3.8.0 依赖的包: shutil,os,re,json,choice,requests, ...
- GitHub哔哩哔哩(bilibili)当前视频所有Part,整体下载
GitHub哔哩哔哩(bilibili)当前视频所有Part,整体下载 首先祝大家,牛年,牛!牛!牛! 最近看GitHub哔哩哔哩(bilibili)高清视频下载这篇文章,观看的人数还挺多的,看来大家 ...
- PHP哔哩哔哩bilibili视频弹幕播放器源码 带后台版本
简介: PHP哔哩哔哩bilibili视频弹幕播放器源码 带后台版本 此款播放器源码添加及修复了很多功能,且所有源码均本地化,不存在外链的情况. 环境:PHP7.0+MySQL5.6 优化修复功能: ...
- 分布式定时job-xxljob的详解、使用和创建(附带哔哩哔哩(bilibili)视频)
一.简介 1.1 概述 XXL-JOB是一个轻量级分布式任务调度框架,其核心设计目标是开发迅速.学习简单.轻量级.易扩展.现已开放源代码并接入多家公司线上产品线,开箱即用. 1.2 特性 1.简单:支 ...
- 【发布】哔哩哔哩bilibili替换旧版播放(稍后再看)
今天上B站发现强制界面新版了,连旧版切换按钮也隐藏了,目前还能通过[稍后再看]来切换旧版,随便写了个脚本,油猴新建脚本,添加以下 Greasy Fork地址: https://greasyfork.o ...
- 菜鸟弟弟从零开始的爬取Bilibili弹幕的Python爬虫教程-哔哩哔哩 - ( ゜- ゜)つロ 干杯~
从零开始的爬取Bilibili弹幕的Python爬虫教程 或许可以作为一个爬虫小白的练手的demo? 还是先看看什么是爬虫吧!(还有Bilibili! ) 网络爬虫: 网络爬虫(又称为网页蜘蛛,网络机 ...
最新文章
- RandomForestClassifier参数min_samples_leaf和min_samples_split理解
- css笔记 - transition学习笔记(二)
- varnish安装及简单配置
- vim 多窗口启动以及相互切换
- 网络干货,无论是运维还是开发都要知道的网络知识系列之(五)
- 使用Dockerfile创建一个tomcat镜像
- 计算机基础算术加法,2011年自考计算机基础知识精选部分及答案(一)-2
- 小程序与云服务器api接口,小程序云函数调用http api进行对云数据库的操作
- Mongodb密码安全设置
- form-create教程:给内置组件和自定义组件添加事件
- 【英语学习】【Level 07】U08 Old Stories L1 The old times
- 横河川仪压力变送器调零_YOKOGAWA/横河EJX110A差压变送器的性能误差和精度介绍...
- jquery双击修改_jQuery双击
- Initial Audio Trap Phantom Heatup3 Expansion for mac(Heatup3扩展预设)
- 阿里云CentOS7.3配置Java Web应用和Tomcat步骤
- 手把手教你Charles抓包工具使用
- 扫雷游戏详解——附源码
- BST中序遍历(Iterative)
- esxi虚拟服务器网络搭建,小姜学网络(使用VMware ESXi 5.5搭建VMware虚拟化平台一)...
- configure文件的生成
热门文章
- mac 下禁止顽固的开机程序自启
- 地图行业应用的难点思考
- Photoshop从入门到发疯(一)身份证添加水印
- python截图工具和模拟鼠标键盘_python PyAutoGUI 模拟鼠标键盘操作和截屏功能
- space header page consists of zero bytes in data
- linux下arm架构中,触摸屏下没有鼠标事件,采用qtouchevent事件来代替,左右滑动显示完文本
- 完美解决PC电脑0x0和0x800BFA07等错误,成功加入Windows10/11预览体验计划
- BusyBox v1.22.1 (Ubuntu 1:1.22.0-15ubuntu1) built-in shell (ash) 开机黑屏
- Windows2000 内核级进程隐藏、侦测技术[毕业论文]
- matlab零状态响应幅度频谱,matlab零状态、零输入响应