一、前言

有时候,我们想缓存下来b站上的一些视频,做一些剪辑什么的。

但是在电脑端,bilibili的网站没有提供视频缓存功能。而手机端的bilibili客户端可以缓存视频,但格式为m4s。

这就给我们提供一个思路:先在手机上哔哩哔哩客户端缓存好视频,再通过ES文件浏览器的ftp传输功能,将m4s文件传输给电脑,再将m4s转化为mp4格式。

二、实际操作

手机端利用现成的软件进行操作就行,电脑端使用我自己写的程序进行操作。

手机端需要的软件:哔哩哔哩客户端 , ES文件浏览器 

电脑端需要的软件:自写的传输工具

操作流程图:

详细操作流程:

1.打开哔哩哔哩客户端,缓存好视频

2.打开ES文件浏览器,打开“从PC访问”功能,记下这个ftp地址

       

3.手机打开WiFi热点,电脑连接上WiFi热点,以保证处于同一个局域网内

4.从百度云盘下载我写的软件(提取码:y1sv),解压后,打开auto/文件夹,打开ftp_address.txt,输入ftp的地址,保存。

5.双击auto/下的auto.exe,程序会自动传输手机哔哩哔哩客户端的缓存视频,等待传输完成即可。

如果当中程序不动,可以在程序运行界面中按下回车键进行刷新。

6.传输好的视频,会自动保存到auto/video目录下

三、电脑端程序源码

电脑端程序通过python编写,文件传输用ftp,m4s转mp4用ffmpeg.exe(可在我分享的网盘中下载)。

在下载好ffmpeg.exe到这个脚本的同一目录下,然后电脑与手机热点wifi连接后,手机端开启ES文件浏览器的“从PC访问”功能,再运行该python脚本就能进行视频传输了。

不过考虑到有些电脑不一定安装有python环境,我使用pyinstaller将python脚本转化为exe执行文件,使得程序在没有python环境上的windows下也能运行。

import os
import sys
import time
import json
from ftplib import FTPvideo_save_path = './video/' # 视频目录不能是中文
danmu_save_path = './弹幕/'if not os.path.exists(danmu_save_path):os.makedirs(danmu_save_path)
if not os.path.exists(video_save_path):os.makedirs(video_save_path)def FTP_Transport_Video(ftp_address):# 登录FTP    address = ftp_address.split(':')[1][2:]port = int(ftp_address.split(':')[-1][:4])ftp = FTP()ftp.connect(address, port)ftp.login(user='', passwd='')print(ftp.getwelcome())data = []ftp.cwd('Android/data/tv.danmaku.bili/download/')ftp.dir(data.append)print('检测到%d个缓存视频' % (len(data)))for idx, line in enumerate(data):second_dir = line.split(' ')[-1]second_dir = './' + second_dir + '/1'ftp.cwd(second_dir)# 读取视频名称file_handle = open('./entry.json', "wb")ftp.retrbinary("RETR entry.json", file_handle.write, 1024)file_handle.close()entry_json = open('entry.json', encoding='utf-8')data1 = json.load(entry_json)title = data1['title']print('正在传输第'+str(idx+1)+'个视频...')print('\t视频名称:'+title)# 保存弹幕file_handle = open(danmu_save_path+title+'.xml', "wb")ftp.retrbinary("RETR danmaku.xml", file_handle.write, 1024)file_handle.close()# 保存视频video_path = video_save_path + title + '.mp4'if os.path.exists('./video/temp.mp4'):os.remove('./video/temp.mp4')if os.path.exists(video_path):print('\t视频已存在')ftp.cwd('../../')continuefile_handle = open('audio.m4s', "wb")ftp.retrbinary("RETR 80/audio.m4s", file_handle.write, 2048)file_handle.close()file_handle = open('video.m4s', "wb")ftp.retrbinary("RETR 80/video.m4s", file_handle.write, 2048)file_handle.close()command = 'ffmpeg.exe -i video.m4s -i audio.m4s -codec copy ./video/temp.mp4'os.system('\t'+command)os.rename('./video/temp.mp4', video_path)print('第'+str(idx+1)+'个视频传输完成!')ftp.cwd('../../')print('所有视频传输完成')ftp.quit()if os.path.exists('./audio.m4s'):os.remove('./audio.m4s')if os.path.exists('./video.m4s'):os.remove('./video.m4s')#if os.path.exists('./entry.json'):#    os.remove('./entry.json')if __name__ == '__main__':if os.path.exists('./ftp_address.txt'):with open('ftp_address.txt', 'r') as f:ftp_address = f.readline()print('正在连接:', ftp_address)FTP_Transport_Video(ftp_address)else:print('未检测到ftp_address.txt')

如何将b站视频从手机传输到电脑上相关推荐

  1. Hololens2画面传输到电脑上的方法(Hololens2录视频下载方法)

    Hololens2画面传输到电脑上的方法(Hololens2录视频下载方法) 一.通过Microsoft Hololens: 1.首先到微软商店Microsoft Store搜索Microsoft H ...

  2. iPhone如何不用iTunes将视频传输到电脑上?

    随着智能手机的普及,iPhone已经成为了人们生活中必不可少的一部分.而随着iPhone摄像功能的逐渐完善,越来越多的用户开始将iPhone作为拍摄视频的工具. 但是,将iPhone中的视频传输到电脑 ...

  3. 怎么用手机里的计算机玩游戏,黑鲨手机怎么玩电脑上游戏

    黑鲨手机怎么玩电脑上游戏 时间:2020-08-19 16:54:22 责任编辑:花降 黑鲨手机是一款非常深受现在人们喜爱的生活实用手机,功能强大,黑鲨手机怎么玩电脑上游戏?相信很多用户非常好奇,趣游 ...

  4. android平板怎么截图,在安卓手机或平板电脑上截屏的5种方法,学起来!

    在Android手机或平板电脑上截屏并不是随便按下一个按钮那样简单,尤其是当你尝试捕获运动中的特定场景(例如游戏或视频),或者你担心可能会消失的屏幕时,以及当你正打算截屏,但是一不小心把手机屏幕关了的 ...

  5. 闲鱼客服工具/消息管理系统:可以让客服放下手机,在电脑上管理闲鱼店铺的咨询信息

    闲鱼是一个很神奇的APP, 在上面几乎有一切二手的东西. 现在也有很多人在闲鱼发展自己的副业,甚至是事业,闲鱼客服的工作就成了整天面对手机,管理和回复商品的购买和咨询信息. 这款软件的目的是让闲鱼客服 ...

  6. 华为手机怎么找回计算机功能,华为手机怎么在电脑上显示

    华为手机怎么在电脑上显示 2020-12-16 12:22:04  来源:网络整理 扫码可以: 1.在手机上浏览 2.分享给微信好友或朋友圈 摘要: 华为手机怎么在电脑上显示: 1.首先找到手机里的设 ...

  7. 【踩坑笔记】QtScrcpy 利用tcp/ip把手机投影到电脑上

    文章目录 目的: 准备 下载 编译 原因分析: 错误1 错误2 解决方案: 解决错误1 解决错误2 目的: 利用tcp/ip把手机投影到电脑上,不需要数据线连接,利用同一个局限网,实现无线连接. 我找 ...

  8. oppo手机html文件管理,oppo手机文件在电脑上无法读取怎么办

    A.用USB数据线连接手机和电脑后,右键点击[我的电脑]--[管理]--[设备管理器]--[通用串行总线控制器],看是否有USB Mass Storage Device(USB大容量存储设备),有则可 ...

  9. 手机测试连接linux系统,用CDMA 1X手机连接LINUX电脑上因特网

    用CDMA 1X手机连接LINUX电脑上因特网 发表于:2007-05-26来源:作者:点击数: 标签: 下面讲述用cdma 1x手机连接linux电脑上因特网的步骤,如果幸运的话,设置不超过1分钟( ...

  10. 为什么计算机无法充电,为什么手机不能在电脑上充电?

    原标题:为什么手机不能在电脑上充电? 在办公室上班的人都有一个不好的习惯,就是手机快没电的时候,就会很自然地拿出一条手机数据线,直接插在电脑上充电,这看起来是很方便,但这是一个不好的充电方式,虽然不会 ...

最新文章

  1. 单片机机器周期怎么计算公式_单片机很好玩6,单片机是一切智能机器的基础,就是这么嚣张...
  2. 英语语法---形容词性从句详解
  3. 难忘昨夜,同事升职,崇文门乐盛k歌,真心有感
  4. Visio2007 与Microsoft Studio 2008不兼容
  5. 阶段3 1.Mybatis_05.使用Mybatis完成CRUD_9 Mybatis中的返回值深入-解决实体类属性和数据库列名不对应的两种方式...
  6. php排斥ajaxsubmit函数,jQuery中的ajaxSubmit详解
  7. cocos2dx +vs2012安装教程
  8. java 控制层和业务层,控制层、业务层和数据访问层
  9. 【整理】PYTHON代码审查工具
  10. 绿巨人(Hulk - Pure CSS)
  11. 【2023秋招】网易雷火游戏研发工程师笔试
  12. WordPress Contact Form插件‘cntctfrm_contact_emai’参数跨站脚本漏洞
  13. YouTube上的版权保护
  14. 前花椒直播CEO胡震生:我如何不花钱引爆的花椒直播
  15. 哪个软件能代替斐讯路由_斐讯路由器最新版本|好用的路由器管理软件_最火手机站...
  16. 人工智能的发展历程和未来发展趋势
  17. jquery去掉onclick事件
  18. 全网首发:VS编译出错:两个输出文件名解析为同一个输出路径
  19. Intel 的AVX2指令集解读
  20. divi模板下载_赞助商:Divi 3.0

热门文章

  1. 多因素deseq2 formula 怎么理解 如何设置design 哈佛大学——差异表达分析(七)设计公式(Design formulas)多因素差异分析 多个影响因子会影响差异分析结果 多因子
  2. 有监督学习与无监督学习
  3. 有监督学习(supervised learning))与无监督学习(unsupervised learning)之间有何区别?
  4. 华为工作10年,年薪80万。
  5. 英雄联盟掉线后显示无法连接服务器,英雄联盟掉线连不上出现英文窗口解决方案...
  6. 金鱼的养殖知识大全(一)
  7. 常用思维模式大全(上)
  8. mac上html无法显示图片,Safari 无法显示/加载网页图片解决方案
  9. android 的User-Agen
  10. python:IndentationError:expected an indented block