跳至主要內容
将你用手机缓存的B站视频转换为mp4和ass弹幕

需求

之前帮群友解决一个需求,某个Vtuber毕业了(其实我也有推),传的录播和视频都在一点一点删,好消息是他的手机里有缓存下来,坏消息是他不知道怎么把视频导出来,于是有了这个项目。

使用

我打包了两个版本,一个是用Electron构建的界面,一个是普通的终端界面,核心代码是完全一样的,区别只在界面的美观程度。Electron打包出来比较大,而且需要运行安装程序;便携版修复和更新可能会晚于GUI版(以GitHub release 为准)。

下载

两个版本都发布在Github release里了,或者你也可以通过网盘下载:


BlueCitizen...大约 1 分钟项目Python
安装Nuitka时遇到pip subprocess to install build dependencies did not run successfully

背景

使用MSYS2自带的Python3.11.8创建的虚拟环境下安装Nuitka会报如下错误

  Installing build dependencies ... error
  error: subprocess-exited-with-error

  × pip subprocess to install build dependencies did not run successfully.
  │ exit code: 1
  ╰─> [51 lines of output]
      Looking in indexes: https://pypi.tuna.tsinghua.edu.cn/simple
      Collecting cffi==1.16.0
        Using cached https://pypi.tuna.tsinghua.edu.cn/packages/68/ce/95b0bae7968c65473e1298efb042e10cafc7bafc14d9e4f154008241c91d/cffi-1.16.0.tar.gz (512 kB)
        Installing build dependencies: started
        Installing build dependencies: finished with status 'done'
        Getting requirements to build wheel: started
        Getting requirements to build wheel: finished with status 'error'
        error: subprocess-exited-with-error

        Getting requirements to build wheel did not run successfully.
        exit code: 1

        [27 lines of output]
        Traceback (most recent call last):
        
          ......
          
          File "C:\Users\BlueCitizen\AppData\Local\Temp\pip-build-env-r75amcq2\overlay\lib\python3.11\site-packages\setuptools\_distutils\_msvccompiler.py", line 246, in initialize
            raise DistutilsPlatformError(
        distutils.errors.DistutilsPlatformError: --plat-name must be one of ('win32', 'win-amd64', 'win-arm32', 'win-arm64')
        [end of output]

        note: This error originates from a subprocess, and is likely not a problem with pip.
      error: subprocess-exited-with-error

      Getting requirements to build wheel did not run successfully.
      exit code: 1

      See above for output.

      note: This error originates from a subprocess, and is likely not a problem with pip.
      [end of output]

  note: This error originates from a subprocess, and is likely not a problem with pip.
error: subprocess-exited-with-error

× pip subprocess to install build dependencies did not run successfully.
│ exit code: 1
╰─> See above for output.

note: This error originates from a subprocess, and is likely not a problem with pip.

BlueCitizen...大约 2 分钟开发NuitkaPython
使用自己的云服务器部署VuePress

VuePress的官方文档里没有提供任何关于自定义部署的说明,而是推荐了若干自动化平台,里面还没有一个开源的。可能是默认大家都是花钱解决问题吧。


BlueCitizen...大约 7 分钟运维JenkinsGitHub
博客的意义是什么?

初衷

时间回到2019年。我才刚开始学习如何搭建一个完整的项目,搜索时除了常见的CSDN、博客园、简书,也有一些个人自建博客。那个时候我单纯地觉得,一个技术大牛一定要有一个自建博客做分享,那是一件很酷的事情。

分享

技术博客绝大部分时候一方面是作为记录,另一方面也是为了让更多人能够不用重复踩坑的过程。我们力求用简单易懂的方式去解释技术问题。尽管如此,用让别人能听懂的方式说话仍然不是一件容易的事情。

技术大牛?

现在的我可以毫不犹豫地说,我不是,我非常菜,我只是一个搬砖相对勤快的人。我没有在任何技术上有突出的造诣,甚至在几年的懈怠后已经落后于大多数人。


BlueCitizen...大约 2 分钟随笔
Java数据结构之HashMap

HashMap基于哈希表的Map接口实现,是以key-value存储形式存在,即主要用来存放键值对。HashMap的实现不是同步的,这意味着它不是线程安全的。它的key、value都可以为null。此外,HashMap中的映射不是有序的。

数据结构

整体为数组,数组的元素是一个个链表,每个链表当中串有若干node。

为什么是链表?

数组的容量是有限个数的。插入键值对实例时使用哈希算法,先基于哈希函数计算键值的索引(数组的下标),然后插入对应的位置。当发生碰撞时,对比键值是否相等,相等则覆盖,不相等则将新键值对插入到对应位置的链表中。


BlueCitizen...大约 2 分钟开发
整理一下数开的JD

字节跳动 - 大数据开发工程师 - 互娱研发

职位描述

1、负责抖音大数据平台架构的落地实施; 2、通过海量数据,分析与挖掘各种潜在关联,不断优化策略效果,保障用户体验; 3、搭建实时计算引擎,实现每秒数千万条大流量数据挑战下实时精准计算,落地储存; 4、负责流式数据的实时传递,清洗,转换,计算,并对外提供查询服务; 5、负责实时及离线特征抽取、融合,为数据挖掘及策略平台提供特征服务; 6、负责大数据能力在产品功能上的落地,推动产品数据化和智能化。

职位要求

1、2024届获得本科及以上学历,计算机相关专业; 2、熟悉Hive\Hadoop\Spark\Flink\ClickHouse\Druid等大数据开发技术优先; 3、有良好的业务和产品sense,执行力、推动力强优先; 4、优秀的理解沟通能力,崇尚数据说话,深信数据在驱动业务、支撑决策上的价值优先。


BlueCitizen...大约 7 分钟职业
HTTP的标头(headers)

通用标头 实体标头:可以出现在http的请求头和响应头中。 请求标头:客户端发送http请求到服务器所使用的字段。 响应标头:服务端返回给客户端所使用的字段。

User-Agent

在python中,调用request包默认使用的User-Agent是python-requests/xxx,等于是直接告诉网站你在使用爬虫程序,因此通常会伪装成浏览器的请求。

Content-Encoding

使用指定的编码方式压缩原始媒体数据,减少传输开销。比如:

Content-Encoding: gzip

BlueCitizen...小于 1 分钟网络HTTP