讓軟體工程師告訴你,我如何讓我的 V 豚 DD 生活更加舒適

前言

這個主題想寫很久了,我有不少小玩具可以分享ww

我大約從2020年中開始接觸 Vtuber ,然後就這樣陷入坑裡直到現在。
軟體工程師是一種懶惰的生物,我們是為了未來的懶惰而努力。
別人的工具我能用得起來,缺的東西我能自己造,這是我的吃飯本領。

因為有很多東西想寫,這篇文章是一篇大雜燴,未來也會回來更新。

將網頁原樣保存以製作Writing NFT (適用於Blogger和其它平台)

前言

透過 NFT Protal 出版 Writing NFT 時,我發現它的網頁爬蟲功能有一點點的不完美。

  • 它有自己的一套機制去抓出網頁中的「文章內容」
    這能有效降低檔案容量減少開銷,但機制並非100%適合所有網頁版型,而且就...不那麼美
  • 外部連結資源並未上傳至 IPFS、Arweave ,這些資源從原始位置刪除掉就沒有了
    如果你的圖片在不同的網址 (像Blogger預設就是),它們就是外部連結資源
  • 外部連結的站台若有 CORS (Cross-Origin Resource Sharing)CSP(Content Security Policy) 設定,或者圖片站台有 Hotlink Protection 功能,這些資源將無法被存取
    我們的使用情境確實是 Cross Origin
  • 在頁面容量較大時會發生爬蟲失敗的狀況
    (爬蟲功能關係到後端主機的負載,不可能無限制的爬,這是很合理的狀況)
總而言之,我的網頁變成了這個樣子
ar://6tpNpIuUvMgu-KXkFHm_0BnoyUEjKGGwQvklZ1-dk8k
ar://CgOW561bpnJd_1ce9yVm7XCFGamn9BZm9JYry1PPSbM

這篇文章會說明如何自行爬蟲下來完整的網頁 html 存檔,再以此來制作 Writing NFT

在Blogger或其它寫作平台放置LikeCoin Button、Writing NFT widget (半自動化)

前言

我也加入 Writing NFT 的作者行列了!

這篇文章教各位在 Blogger 每篇文的文末自動產生 LikeCoin Button ,並且,只要在文章中加入 ISCN ,LikeCoin Button 就會變成 Writing NFT widget!

所謂的「半自動化」,是指你需要手動為文章產生 ISCN 並加入文章內,其餘都是自動化的喔

[Koikatu] コイカツ! 個人插件更新記錄

↑↑Last Update Time


此頁只做Log記錄用,請到下方鏈結尋找下載和其它資訊。
このページはロギング専用です。
ダウンロードやその他の詳細については、このリンクにアクセスしてください。
This page is only for logging, please go to this link for download and other details.
>>> コイカツ!個人插件介紹匯整 <<<

[Excel & VBA] Youtube 歌單產生工具 (Youtube Timeline Builder)

這是用來編輯 Youtube 歌枠時間軸用的 Excel 工具
原本只能產出給我另一個專案 Youtube Clip Playlist 專用的 json 格式,現在加上了產出 「Google Sheet」、「Youtube 留言」 兩種格式
我將它公開出來,希望它能提供各位便利,讓我有更多的曲目可以白嫖

Youtube iframe嵌入錯誤: 「無法播放影片 在 YouTube 上觀看」

這個錯誤的英文訊息為「Video unavailable Watch on YouTube」

Youtube iframe嵌入錯誤: 「無法播放影片 在 YouTube 上觀看」

Youtube iframe 嵌入在「某些影片」無法顯示,出現如圖的灰畫面,這些影片的共通點是「原影片有(音樂)版權宣告」。

而且我在 ng serve 的 localhost 開發是正常的,部署到 Azure Static Web Apps 站台後才有問題。

這是我在做 sound-buttons 專案時遇到的問題,卡了我好幾個月無法解決。
我一直以為這些影片就是被設定無法嵌入,直到我發現同一個影片別人的站台可以嵌入...只有我有問題?!

雲端硬碟影片檔串流播放之研究手札 ( OneDrive 、 Google Drive 、 MEGA )

本文內容僅來自筆者實際測試和推論,沒有官方文件的支持
撰於2022/09/18,狀況可能隨時變化

序言

本文的核心目的是「將影片檔案上傳至雲端硬碟,公開分享連結,讓其它人在線上播放影片」,探討各個雲端硬碟在影片串流的處理方式,並最終選出一個合適的方案。

探討的雲端硬碟有 Google Drive 、 OneDrive 、 MEGA。Google Drive 的教育帳號無限大容量曾風光一時;OneDrive 如今仍提供我校每人1TB的存取容量;MEGA 提供免費帳號 50 GB 容量。除此之外,它們在台灣的傳輸速度、體驗、口碑等等都表現不錯,這是它們入選的原因。

在進入主題以前,我想說說我為什麼會有這種需求。

[Angular2 + ASP.NET Web API] Google OAuth 2.0 OpenID Connect with Authorization Code Flow 授權碼流程

Demo site
https://googleoidcdemo.maki0419.com/

本專案使用 Angular + ASP.NET Web API,示範如何在前後端分離的專案中實作 Google OAuth2 OpenID Connect 登入。

本文重點主要是在於實作,而非OAuth 2.0的流程講解
如果想要深入學習,請參考保哥的課程 《精通 OAuth 2.0 授權框架》

[Chrome Extension] Youtube影片截選播放清單 (Youtube Clip Playlist)

前言


GitHub tag GitHub last commit (branch) LICENSE
Chrome Web Store Chrome Web Store
Bootstrap TypeScript Webpack
Google Chrome YouTube Microsoft OneDrive Google Drive

這是截選播放清單擴充功能,在Youtube/Onedrive/GoogleDrive/TwitCasting上直接播放「起始~結束時間」影片片段。
此工具專門設計來聽Vtuber的歌枠,這是我對於歌回烤肉的程式解

和看烤肉或剪片相比的優點為

  • 觀看數都會算在原始影片上
  • 只要清單化起始/結束時間就完事,比剪片快得多
  • 因為沒有轉載、修改原影片,不會有版權爭議
此專案曾是個油猴腳本(UserScript),現已重寫為擴充功能

VSCode偵錯Web專案時,瀏覧器未自動啟動

今天在公司開了新的.NET 6 MVC專案設定好Program.cs,加上套件Serilog(Logger)、EF Core 6(ORM)後,發現VSCode無法在F5後自動開啟瀏覧器。針對這個問題查了一下,查出問題是源自我設定LogLevel時把Microsoft覆寫為了 Fatal。

在bash中組合使用變數和萬用字元的正確語法

情境

我在live-dl專案中,想要清除yt-dlp在--live-from-start時會殘留下的碎片檔案
路徑和檔名被儲存在變數中,中段的format和碎片編號是未知的,得以萬用字元匹配,而最後以part結尾

在Docker container中執行sudo時,環境變數沒有生效

這是一篇備忘,其實標題就是關鍵了
這不只是docker中會遇到的問題,但由於docker標準做法是用環境變數做設定,這導致特別容易踩中地雷

Handshake domain 區塊鏈網域 —— 如何設定網域

前篇
Handshake domain 區塊鏈網域 —— 如何訪問網域

在前兩篇我們成功競標到了網域,也設定好了環境使可訪問Handshake domain,這篇我們要實際寫DNS位置到鏈上,讓網站上線,最後會提及一些Namebase的加值服務,值得一試。

使用.NET Core的單一檔案部署時,Serilog不運作。你也可能以為你的程式不運作。

2023/06/11 更新:
現在起它會報個錯誤給你!🤘
參考: https://github.com/serilog/serilog-settings-configuration/pull/353
操你媽的大地雷,氣到我來發一篇文
寫在最前面,本文觸發的條件:
  • .NET Core
  • 單一檔案部署(Single file application)
  • Serilog
  • 以appsettings.json來定義log規則

[Koikatu] コイカツ! 中文安裝指南

※注意※
本篇指南為對應MoreAccessories v1.1.0的最終版本號

MoreAccessories(以下簡稱MoreAcc)是飾品增加插件,給你第20格之後的飾品
MoreAcc v2.0是jalil49違反原作者Joan6694的License所做出的山寨版本
並且由於KKAPI從v1.26起改為使用MoreAcc v2.0,導致依賴像病毒一樣的擴散

截至文章更新日,除了搞爆插件依賴以外,MoreAcc v2.0沒有任何有價值的新機能
我決定將此文章定版號為支援MoreAccessories v1.1.0的最終版本
請注意所有標註的版本號和連結,它們是能配合運作的版本號

Koikatu已經是四年前的老遊戲了,讓它留在穩定版本
至於想要新東西的人,去看看新作Sunshine吧!

(角色是我家的,但是原始Scene不是我做的)

序言

此篇文章旨在列出所有Koikatu的插件清單,文章最後更新時間: 2022/02/09


安裝順序簡述如下:
  1. 安裝主程式
  2. 安裝所有免費、付費DLC (Darkness要最後安裝)
  3. 安裝所有必裝外掛
  4. 安裝所需之其它外掛

瀏覧器影音自動播放之研究手札 (Chrome、Firefox)

我在做影片截選播放清單時,遇到播放時會停住的問題,並發現在各瀏覽器、各網站的表現不同,用戶回報給我的狀況也都不同。我對這件事做了些研究,並撰寫下此文記錄。為了改善用戶體驗,瀏覽器正朝著更嚴格的自動播放政策發展。它的目的是讓用戶對播放有更大的控制權,並(Chrome稱)讓有合法用途的出版商受益。

這篇文章會提及Chrome、Firefox的自動播放規則,身為網站開發者我們該怎麼處理前端;身為用戶我們該怎麼手動允許特定網站的自動播放。

Handshake domain 區塊鏈網域 —— 如何訪問網域

前篇
Handshake domain 區塊鏈網域 —— 購買HNS、網域競標

在前篇我們成功把網域給標到手了!區塊鏈網域和其它常見的NFT可不一樣,它不只是個所有權憑證,它寫在鏈上的資訊還能導向我們的伺服器位置。Handshake domain是個已經有實作的專案,整個架構是能運行的。要把它使用起來,我們有兩個面向要設定,一邊是伺服器方;一邊是訪問方——伺服器方要起動一台DNS主機,並由鏈上指向它;訪問方要把自己的解析器替換為Handshake resolver。

這篇將講解如何設定訪問方,使自己能訪問Handshake網域,並且在文末探討有關憑證驗證的議題。

Handshake domain 區塊鏈網域 —— 購買HNS、網域競標

前篇
區塊鏈網域簡介 —— Handshake 、 Unstoppable Domains 、 Ethereum Name Service

前言

在前篇我比較了三種不同的區塊鏈網域專案,各位對它們有了基本認識。這篇我將詳細聊聊Handshake,如何購買HNS幣、如何競標。

不過在開始前,一定有人想知道我得標這20個Handshake網域花了多少錢?

我在2021/7/9買了200 HNS,沒有其它入金,現在錢包裡剩餘171 HNS。換成台幣的話,因為HNS升值,賺了等值NT 129元。在Coinbase上可以查詢HNS的歷史價格

2022/11/28 更新: HNS跌到爆,一顆剩NT0.6元🤣
這是好事,你現在可以用很便宜的價格買到一大堆HNS!
區塊鏈專案不會因為價格下跌而失敗,反而會因為價格高昂無人使用而死去
請放心的買下你需要的數量,我們購買HNS不是為了投資,而是為了競標網域

區塊鏈網域簡介 —— Handshake 、 Unstoppable Domains 、 Ethereum Name Service

前言

在網路世界中,我們每台裝置都擁有IP以代表自己的網路位置。人們難以記住一串數字,於是發明了DNS系統來將IP對應到有意義的字串。這是一個很棒的發明,也是現今的主流技術,但他有著高度中心化的特性。

當使用者以本站網域名稱blog.maki0419.com查詢本站IP時,會經由根網域名稱伺服器com權威網域名稱伺服器取得maki0419.com網域名稱伺服器位置,並取得子網域blog.maki0419.com的網頁伺服器IP位置。當其中一台網域伺服器糟到劫持,DNS系統就可能回應一個假的IP位置。而區塊鏈網域基本上就是要擺脫這個問題。

其實區塊鏈網域的概念很簡單,就是把你的IP給寫到鏈上,只是大家的做法不太一樣

我個人並不是區塊鏈工程師,我不了解技術細節,本文也不會探討那些東西。我會以一個業餘網管的視角出發,就Handshake、Unstoppable Domains、Ethereum Name Service三個當紅的區塊鏈網域專案作介紹,描述它們有何不同,而你應該怎麼選。

喔對了,我現在手上有20個Handshake domains,以及兩個Unstoppable Domains

[Docker] 直播監控、自動影片下載筆記 ( Youtube 、 Twitch 、 TwitCasting 、 Twitter Spaces 音訊空間)

我平時使用數個監控服務,在指定的頻道直播時自動啟動錄影,以防直播主突襲又刪檔,使我錯過直播。此文將會列出這些我使用的服務,供各位參考。

此篇不會寫詳細步驟,請閱讀各專案的說明以完成設定

以下所有服務皆使用Docker部署
請確保你已經安裝好Docker環境再繼續閱讀

TwitCasting每次播放都要求輸入密碼?不要一直問我!

其實上圖就是一切了....

TwitCasting允許直播主將過往存檔上鎖,觀眾需輸入密碼才能觀看。
這個密碼狀態只記憶在瀏覧器工作階段,每次重啟瀏覧器就要重新輸入,讓人不堪其擾
而解決辦法也很簡單...改個cookie的儲存時長就能解決了!
具體流程記述如下

影片下載轉檔筆記 ( Youtube 、 Twitch 、 TwitCasting 、 Twitter Spaces 音訊空間、 fc2 live 、 ffmpeg 、 yt-dlp )

序言

本文記述下載 Youtube 、 Twitch 、 TwitCasting 、 Twitter Spaces 音訊空間,和影片轉檔的幾個常用工具和指令

目錄