Youtube のコメントを見る Chrome 拡張を作ってみたが、もし公開するなら API鍵を拡張の中に含めないほうがいいらしいので、OpenWRT の Lua CGI で中継できるのかどうか試行してみた。
しかし、使おうと思った luci.httpclient が https の処理に nixio.tls を必要とするのに、OpenWRT の nixio は tls 抜きで作られており、うまくいかなかった。
とりあえず wget を呼ぶとかいうアホくさいことをして、動くことだけ確認したところでもうやめた。
#!/usr/bin/lua local nixio = require("nixio") local host = nixio.getenv("HTTP_HOST") or "" if host ~= "example.com" then return end local method = nixio.getenv("REQUEST_METHOD") or "" if method ~= "GET" then return end local q = nixio.getenv("QUERY_STRING") or "" local vid = string.match(q, "^vid=([0-9A-Za-z_-]+)$") local vidlen = string.len(vid or "") if vidlen == 11 then local pipe = io.popen("wget -q -O - 'https://www.googleapis.com/youtube/v3/commentThreads?maxResults=10&order=relevance&part=snippet&textFormat=plaintext&key=XXXXX&videoId=" .. vid .. "'") local json = pipe:read("*a") local result = {pipe:close()} print("Access-Control-Allow-Origin: https://www.youtube.com\r") print("Content-Type: application/json; charset=UTF-8\r") print("\r") if result[1] and type(json) == "string" and json:len() > 1 then print(json) else print('{"items":[]}') end end