DiDi’s Blog

我是迪迪。也在用 tesths 的英文名。

  • 做过 iOS 和 Mac 的软件。现在在做 Chrome 的插件。
  • 也是一名老师,会教书会教编程。看过大量 AI Prompts,写的一手好 AI 提示词。

快捷指令下载 Instagram 图像及 Story(7.10 更新)

7.10 更新 目前只需要在捷径最前面填写即可。详情见图! 6.2 更新 Story 下载两个地方都需要增加 Cookie 啦,见截图。 5.24 更新 Instagram 单独下载一条也需要登录了,单独下载一条设置 Cookie 的方式同 Story。 在查询了一些资料之后,我找到了 Instagram Story 的下载方式,并根据这个方式完成了 Workflow 的版本。感谢 instastories-backup项目。 原理 Instagram 是需要登录验证的,但实际经过我的测试,Instagram 只会检测 cookie 和 user-agent。那么只要在网络请求的 headers 加入 cookie 和 user-agent 实际上就可以了。 user-agent 是可以直接伪造的,而 cookie 值,需要通过网络版本的 chrome 获取。 在这个地方,cookie 建议使用自己的,或者是专门注册一个帐号用于下载。如果 cookie 泄露,理论上可以利用 cookie 对相应的用户进行数据篡改。 获取 cookie 打开 Chrome,进入到 www.instagram.com 并登录。1111 Windows 用户按 f12,Mac 用户按 option+cmd+j,打开控制台。 此时刷新页面,找到 www.instagram.com 的请求。找到 cookie,然后找到 sessionid。复制这串 140122… (这串数字+字母+符号,每个人不同,有人可能是 5124…等)如图所示。 然后把这么一长串,粘贴到捷径中最开始的 sessionid= 后面即可进行下载操作。...

八月 6, 2018 · 1 分钟 · Me

松果压制上架 Mac App Store 及沙盒机制的部分说明

距离上次写博客过去了一个月。这一个月经历了挣扎的上架 MAS。还好我没放弃,终于在昨天上架了 MAS。 我将凭借我的记忆来叙述这个上架过程中一些对于沙盒机制的理解。以及整个上线过程中存在的坑。 第三方 executable file 的签名 上文提到,我在整个软件的压制过程中,使用的是 ffmpeg 官网的可执行文件压制。而像 Mac 上著名的 INNA 是采用的 ffmpeg 的 .h 头文件 + 部分 objective-c 代码来实现部分和 ffmpeg 相关的代码。 我承认我不是一个好的工程师,我也承认我觉得使用 ffmpeg 的 c 文件进行二次开发是更好的选择。但是如果我把我的精力放在研究 c 代码上,那这个工程量对于我来说太大,以及我觉得直接使用 ffmpeg 并不是不可以。 那么采用 ffmpeg 可执行文件作为我们的主要工具,就有一个很重要的问题,那就是 ffmpeg 的签名问题。MAS 版本的所有文件都要求进行签名,我第一次无法上传到 MAS 的问题就是 ffmpeg 没有签名。这里的签名就直接使用 codesign 签名是可以的。除此之外,对于 ffmpeg 要求有一个单独的 entitlement 文件,而这个文件里面应该填写的是 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>com.apple.security.inherit</key> <true/> <key>com.apple.security.app-sandbox</key> <true/> </dict> </plist> 然后在签名的使用 codesign 和 entitlement 签名。...

七月 15, 2018 · 3 分钟 · Me

Cocoa 封装 ffmpeg

上次写完推文之后发现压制还是很麻烦,转念一想,要么自己做一个 GUI 的吧,于是有了将近三星期零零散散的开发。 下面把我开发的过程记录下。 如何使用 ffmpeg 在 iOS 开发中,ffmpeg 是使用编译过的文件进行开发。而在 Mac 中,我查阅了一部分资料,(可能是我花的时间太少),最后查询的结果是直接使用可执行文件。 这里就很简单了,直接把 ffmpeg 拖进工程,然后使用 nstask 来调用就可以了。 drag and drop drag and drop 是这种程序标配的了。好在 drag and drop 有很多学习资料。文章最后会放上我查阅的一些资料。 小细节 有很多小坑是我整个过程中踩的,比如 NSButton 的文字居中。比如 nstask 的暂停。我使用了别人的代码,但是发现变量初始化有问题。排查了半天。 开源 根据我的预期,这个项目是会开源的…但不是在现在。大概我测试写完会开源出去。所以多的就不写了。反正这个代码写的也不咋样,但是效果还凑合! 就这。 参考资料 Drag and Drop Tutorial for macOS NSTask Tutorial for OS X Implementing a drag-and-drop zone in Swift YoutubeDownloader

六月 12, 2018 · 1 分钟 · Me

Mac 下压制字幕和 logo

本文将不定期补充 ffmpeg 其余压制方案或者命令行使用方法 如果有在 Mac 下压制字幕需求的话,可以直接在 Mac App Store 搜索 PineconeSuppress。我将 ffmpeg 进行了可视化的封装,可以更加轻松的在 Mac 下压制字幕哦~ 这篇博客要感谢蒸包同志!没有蒸包同志的教学就没有这篇博客的输出。以及,要说难确实也有点难度,要说不难,我真的很努力写的白话文加配图了。以及如果需求大我会开发 Mac 可视化版本的压制软件…这是后话。 问题 大部分字幕组做视频压制,标准配备都是 Windows 版本的小丸工具箱。但是小丸工具箱的 Mac 版本没有 Windows 那么好。其次的问题是怎么 Mac 怎么打 logo。在我们组内使用 Aegisub 打 logo。使用 Aegisub 打 logo 的话,需要给 Aegisub 安装 vsflitermod 插件,这玩意没有 Mac 的。最后的问题是,Mac 下没有好的压制工具。 工具问题 小丸实际上是针对 ffmpeg 进行了图像化的封装。那么原理上我们只要会 ffmpeg 就可以在 Mac 上达到相同的功能。而 Mac 下没有很好的 ffmpeg 的图形化客户端。那没办法,只有用命令行了。(如果需求量大我考虑下自己开发一个图形化的,但是目前还不会) 预备 首先需要下载一个 ffmpeg 在 Mac 下的可执行文件。https://evermeet.cx/ffmpeg/ 这个是 ffmpeg 官网跳转的链接。下载右下角的(其实都可以)。 之后解压缩文件,会得到一个下图这样黑黑的东西。 我的建议是建一个单独的文件夹。把这个 ffmpeg 放进去。然后的话就需要一点点计算机的知识了…没有很难,我也会尽量阐述的可以理解一点,而且全部配图。我也基本保证就这一点点专业性的东西。 首先在电脑里找到 Terminal。...

五月 21, 2018 · 2 分钟 · Me

微信小程序自定义字体

最近给单位在做小程序,中间需要使用自定义字体。稍微梳理下整个过程。 起因 在小程序中是可以使用 font-family 属性的,但是官方没有给出有哪些 font 是可以选用的,所以我们无法知道小程序到底可以支持哪些内置的字体。自定义字体就成为了一个问题。 小程序本身不支持将字体拖进去,然后通过引用的方式来使用字体。即使可以,一个思源字体随便都 10MB,拖进去之后整个大小就超过了小程序的 2MB 限制。 在网上查找之后还有一个方案,就是使用在线的 transfonter.org 将字体转换成 base64 的方式。有使用 base64 的方案,但是还是会超过大小。而且 transfonter.org 对字体的大小本身还存在限制。这就是很麻烦的一件事情。 解决方案 那么如何解决呢?我这里提供两个方案。 一是通过在线应用 url 的方式。 这种方案就是将字体文件存在文件服务器上,通过地址的方案引到小程序中,比如我下午使用的 http://o9791noio.bkt.clouddn.com/songti.TTF 这个网址,是七牛的,可以使用!而且这种方案在 zanui-weapp 的 issue 是有人提到的,链接是 使用"单元格"时,icon无法使用,但是我在真机测试的时候不可以,没有具体排查。我觉得问题的原因有两个,一是网上有些资料说 iOS 必须使用 https,二还是最根本的字体大小的问题,如果字体太大,模拟器就会有错误提示,真机在最开始如果没有加载也会非常麻烦。总之这个方案目前是被我 pass 的。 二就是下面我现在使用的我觉得合理的方案。上 字蛛。当然这个也不是最好的解决方案。 根据我的需求,我需要的个性化字体都是写死了,就是不需要网络加载。那么就可以采用字蛛对字体进行压缩。字蛛会把 html 中用到的字进行提取和压缩,用不到的就 pass 掉。这样会给原来的 ttf 文件进行一个强力的压缩,比如我压缩之后整个 ttf 文件的大小就变成了 8kb。这个效果还是显而易见的,这个时候再采用 transfonter.org 将字体转换为 base64 就可以了。 脑洞 那么假设一下一个情况,如果需要的是动态字体怎么办? 虽然我暂时还没有这个需求,我想到的方案是,首先后台会将专门的字体进行一个标记,那么在标记之后,使用 font-spider 将原字体进行压缩,再使用 url 获取的方式来动态加载,由于这个时候的字体文件很小,那么就不会有字体太大手机端加载不出来的情况。 或者就是直接把常用字进行 base64 加密,就省去了网络获取的问题了。 非常想知道青芒杂志咋弄的 哈哈。

五月 14, 2018 · 1 分钟 · Me