分类 Other 下的文章

我通过自制的Kodi命令行刮削器申请到了JetBrains的开源许可证

项目地址

Kodi 刮削器命令行版本,使用TMDB数据源
带logo、分类、节目表的北京IPTV单播列表
命令行批量字幕命名工具

更早的起源

2021年的双十一我在京东购买了索尼的X91J 65英寸版本,同时幸运的使用了那个2000的特殊优惠券,感谢京东没有回收这个羊毛。

电视安装完成后,我开始着手构建自己的影音环境,在此之前,我是通过PT下载到NAS,然后电脑+2.0音箱播放,没有刮削,这之后我会转移到电视上来。

索尼电视使用的是和当贝合作的Android系统国内特供版,不过也允许用户随意的安装第三方应用,我进行了大量的尝试,最后只保留了Bilibili、Kodi、SmartTubeNext、Netflix、Aptoide这几个应用。

其中Kodi用来管理我从网络下载的电影和剧集,提供海报墙,观看进度跟踪,因为Kodi自带的刮削器不能满足我的需求,tinyMediaManager等半自动又太麻烦,所以我决定自制刮削器。

申请过程

大约4个月前,我研究了下Kodi自带的刮削器的源码,发现大致的原理是Kodi负责扫描视频文件并提取名称,刮削器只能根据处理好的名称来获取信息,这会有很多问题,我在v2ex发帖求助如何改进这个扫描过程,评估大家给的意见后,我决定自制刮削器。

今年1月份的时候,我提交了第一行代码,两天后整理在Github开源,然后开始后续的维护,并且处理了很多特殊情况,还支持了调用Kodi主动刷新媒体库,后续可能还会支持音乐刮削,不过优先级并不高,毕竟在电视上听音乐的场景不多。

本月1号的时候,我申请了JetBrains的开源许可证,这几天放假只顾着玩,今天才发现已经收到许可了,全家桶有效期1年,一年后项目还在活跃就可以续期。鉴于部署成本比较高,而且我也没有去推广,所以项目并不热,只有9个star,不过这并没有影响我的申请。

其他

申请开源许可证,需要打开Github个人主页的邮箱显示,我是在申请成功后重新隐藏。

根据描述,如果一年后许可过期项目不在活跃不再续期,我还是可以继续使用2021.03版本,只是不能再升级,这和付费版本是一样的授权方式。

这个命令行刮削器的具体情况可以去Github主页了解,这里就不详说了,后续我应该还会继续更新,毕竟自己还要用,只是担心1年后可能没有什么可以加的功能导致项目不再活跃。

除开这个刮削器,为了更好的看电视,我还创建了很多其他的小工具,暂时放出来的只有文首的两个,IPTV列表这个配合Kodi的IPTV插件,观看效果还不错,重命名是解决从网上下载的字幕因为命名不规范导致Kodi识别不到的问题。

[分享] Alpine 真是个好东西

把 VPS 上的 Ngrok 用 Alpine 重新打包了一下, 体积小了很多

root@vultr:/opt/ngrok# docker images 
REPOSITORY          TAG             IMAGE ID        CREATED          SIZE
ngrokd.alpine       latest          d891322d86e4    2 minutes ago    14.03 MB
alpine              3.5             4a415e366388    11 days ago      3.987 MB
root@vultr:/opt/ngrok# du -sh ./bin/ngrokd
9.6M    ./bin/ngrokd
root@vultr:/opt/ngrok# ldd bin/ngrokd
    not a dynamic executable

因为依赖库的问题, ngrok 编译的时候需要增加 CGO_ENABLED=0 来指定静态编译, 所以生成的可执行文件会比较大.

例如: root@vultr:/opt/ngrok# CGO_ENABLED=0 make release-server.

感觉可以把其它东西也都挪到 docker 了

[分享] 使用 Ngrok 实现内网穿透

Ngrok 是什么

ngrok 是一个反向代理,通过在公共的端点和本地运行的 Web 服务器之间建立一个安全的通道。ngrok 可捕获和分析所有通道上的流量,便于后期分析和重放。

网络架构如下图所示:

24201429_lLUH.jpg

介绍和图片来自: http://www.oschina.net/p/ngrok

可以用来干什么

其中应用场景最多的是内网穿透, 把局域网内的一些服务暴露到公网.
例如支付对接的异步通知, 微信开发者模式测试等.

- 阅读剩余部分 -

[记录] Brew install 命令补全总是有两个的解决办法

问题如下, 输入到 ins, 一按 tab 键... 真是够了!!

fengqi@fengqi-MacBookPro ~$ brew ins
instal   install  

instalinstall 的别名, 就是说允许少输入一个 l 也能用,
但是我想 输入 ins 然后按 tab 补全到 brew install xxx

治疗办法是:
打开 vi /usr/local/Library/Homebrew/global.rb, 找到如下部分

'ln' => 'link',
'instal' => 'install', # gem does the same
'rm' => 'uninstall',

删除 'instal' => 'install', 保存退出.

[总结]使用 Xinetd 代理 Gmail 的 SMTP 和 IMAP

参考了解: xinted端口转发

Gmail 的 SMTP 和 IMAP 本来一直都是正常的,自从上次无故屏蔽后,虽然后来解封了,但是也变得断断续续了,不稳定。

这里简单分享下用 Linux 下的 Xinetd 代理 SMTP 和 IMAP 收发邮件的方法,原理是使用 Xinetd 进行端口转发,前提你你有一台能正常访问 Gmail 的服务器。

此法针对客户端,Web 端请自己想办法。

安装

以 Ubuntu 14.04.2 为例:

sudo apt-get install -y xinetd

创建配置文件 /etc/xinetd.d/gmail,内容如下:

- 阅读剩余部分 -

[分享]做了一个简单的 Google Fonts 代理

链接地址: http://fonts.fengqi.me

原理很简单, 就是用 PHP 请求原本 fonts.googleapi.com 域名下的资源, 然后把 CSS 里面的链接也转换成我的域名, 链接是字体.

同时对字体文件做反向代理, 这个通过 Nginx 的 Proxy 实现.

需要注明的一个地方是, Google Fonts 针对不同的浏览器会输出不同的 CSS 和字体, 所以需要把用户的 USER_AGENT 也传递给 Google Fonts.

代码放到 GithubGist 上了.

- 阅读剩余部分 -

[原创] 利用 IFTTT 和 FEED43 自动把把订阅丢到 Evernote,以知乎收藏夹为例。

平时玩手机除听歌看电子书外,更多的是刷知乎,碰到感兴趣的有意思的答案和问题会分享出去,后来觉得扰民就不再分享了,而是选择收藏起来。

在知乎客户端可以收藏到收藏夹,也可以直接导入到 Pocket、有道笔记、Evernote,我偏好 Evernote,主要的原因是他做的比较早,支持的 App 更多。

但是电脑上是不可以的,这里可以借助 IFTTT 和 在线 FEED 来自动收集,其实用浏览器剪藏插件也是可以的不过我想简化下操作:手机电脑都直接收藏就好。

另外就是适用面太窄,比如别人的公开收藏夹,比如你喜欢的一些博客更新了,不用挨个过去看是否更新,等邮件提醒就知道了,所以建议用好邮箱。

- 阅读剩余部分 -