[{"data":1,"prerenderedAt":290},["ShallowReactive",2],{"content:\u002Fja\u002Ffiddling\u002Fmoontv-vibe-coding":3,"github:MoonTechLab\u002FLunaTV":121,"github:zimplexing\u002Foriontv":203,"surround:\u002Fja\u002Ffiddling\u002Fmoontv-vibe-coding":279},{"id":4,"title":5,"authorship":6,"body":7,"categories":90,"date":92,"description":93,"draft":94,"extension":95,"image":96,"meta":97,"navigation":99,"path":100,"permalink":101,"published":101,"readingTime":102,"recommend":101,"references":101,"seo":107,"seoDescription":108,"seoTitle":101,"sitemap":109,"stem":112,"tags":113,"type":119,"__hash__":120},"content_ja\u002Fposts\u002Ffiddling\u002Fmoontv-vibe-coding.md","MoonTV：Vibe Codingを試してみた","human-only",{"type":8,"value":9,"toc":86},"minimark",[10,22,25,28,32,44,47,50,53,56,59,68,71,74,77,80,83],[11,12,13,14,21],"p",{},"半年ほど前から",[15,16,20],"a",{"href":17,"rel":18},"https:\u002F\u002Fgithub.com\u002FLibreSpark\u002FLibreTV",[19],"nofollow","LibreTV","を追っていました。各種収集サイトの動画をまとめて検索・再生できるプロジェクトです。彼女がドラマを見るための環境を用意したくて注目し、その後HTML5プレイヤーの変更など、コードの貢献もかなりしました。仕組みにも詳しくなりましたが、使ううちに欠点も見えてきました。完全なフロントエンド構成なので視聴履歴などはブラウザーのlocalstorageに保存され、ブラウザーを変えると消えます。すべて素のJSで、いろいろな人の手が入りコードも混沌としていました。静的チェックがないため、触るのが怖い箇所も多く、大改修は難しい状態でした。",[11,23,24],{},"数か月後、同僚からCursorがAlipay払いに対応したと聞いて、一気にやる気が出ました。それまではTraeを使っていましたが、モデルの能力が低いうえ、混雑時は待ち行列があります。その後有料化され、無料版では300〜400人待ちも珍しくなく、ほぼ使い物になりません。すぐにCursor Proを1か月契約し、LibreTVの書き直しで試すことにしました。",[11,26,27],{},"フロントエンド経験がまったくない私のVibe Codingが始まりました。大半のコードはCursorとの対話でそのまま完成し、こうしてMoonTVが生まれました。",[29,30],"github",{"repo":31},"MoonTechLab\u002FLunaTV",[11,33,34,35],{},"まだ1か月ですが、すでに4.6K Star、5.4K Forkです。Starも付けずにただ乗りする人がいるようです。推移は下のとおりで、中国で海賊版動画の需要が大きいことが分かります。iQIYI、Youku、Tencent Videoのユーザーをないがしろにする施策と、あの高い壁のおかげでしょう。\n",[15,36,39],{"href":37,"rel":38},"https:\u002F\u002Fwww.star-history.com\u002F#MoonTechLab\u002FLunaTV&Date",[19],[40,41],"img",{"alt":42,"src":43},"Starの推移","https:\u002F\u002Fapi.star-history.com\u002Fsvg?repos=MoonTechLab\u002FLunaTV&type=Date",[11,45,46],{},"Next.jsとReactを使い、Vercel、Cloudflare Pages、Dockerにデプロイできます。保存先はlocalstorage、Redis、Cloudflare D1の3種類。RedisとD1ではアカウントごとのデータ分離やブラウザー間同期に対応し、使いやすい管理画面もあります。今後はUpstash連携も予定しています。",[11,48,49],{},"私にとって初のVibe Coding、初のフロントエンド／フルスタック、そして初の比較的まじめなオープンソースプロジェクトでした。「フルスタック」はNode\u002FJS界隈でばかり聞く言葉な気がします。Cursorのおかげで、MoonTV開発の大半はコードを書く作業からレビューへ変わりました。要件を話せば実装してくれます。ただ、その「話す」にも多少のコツがあります。",[11,51,52],{},"最初の難関は、文字どおり最初にありました。フロントエンドは何も分からず、流行の技術も名前だけ知っている程度です。新しいものを使おうと、Serverlessと相性のよいNext.jsとTailwind CSSを選びました。フォルダーを作り、AIに初期化を頼んだのですが、午後の半分を費やして何度試しても動きません。大体はスタイルが消え、テキストを積み上げたような画面になります。理由も分からず結局あきらめ、GitHubの雛形を土台にして、ようやく開発を進められました。",[11,54,55],{},"本格的な開発は順調でした。主にClaude Sonnet 4.0とGPT O3を使い、傾向もよく分かりました。Sonnet 4.0はプロジェクト全体の大きな変更向きです。小さな修正でも全体をリファクタリングしようとすることがあり、新機能の実装に向いています。GPT O3は小修正が得意で、変更範囲を狭く保ち、あちこちのファイルを無秩序に変更しません。既存機能のバグ修正向きです。",[11,57,58],{},"もちろんAIの手に余る問題もありました。再生ページは状態遷移が複雑で、データ同士に依存や関連があります。AIの実装では依存関係が網のようになり、話数や再生元を切り替えるだけで、最終的にプレイヤーが5〜6回も初期化されてちらつきました。いろいろなモデルでも直せず、自分で依存データの伝播経路を整理して、ようやく解消できました。",[11,60,61,62,67],{},"さらにニッチな問題もあります。多くのプレイヤーではm3u8動画のAirPlayやChromecastが無効ですが、ちょっとした工夫で強制的に有効にできます。AIに頼むと不可能と言われたり、間違った案を出されたり、別のプレイヤーならできるから交換しようと言われたりします。ネットを探し回り、hls.jsの片隅にあった",[15,63,66],{"href":64,"rel":65},"https:\u002F\u002Fgithub.com\u002Fvideo-dev\u002Fhls.js\u002Fissues\u002F6482#issuecomment-2582666967",[19],"このissue","で、ようやくAirPlayを有効にできました。現状のAIが解けるのは主に一般的な問題です。あまりにニッチな問題や、人間にも解けない問題まで期待するのは、まだ早そうです。",[11,69,70],{},"もっと大きな苦労は、複数のプラットフォームと環境への対応でした。当初からVercel、Cloudflare Pages、Dockerを想定していました。Next.jsがそのまま動くVercelは問題が少ないものの、Cloudflare Pagesはnext-on-pagesでコードを変換するため、互換性の問題がよく出ます。Dockerはさらに複雑です。API処理などはNode環境で動きますが、Next.jsは認証などのミドルウェア用にedge環境も持ちます。メモリも共有しないため、依存関係と使えるAPIを厳密に分ける必要があります。クライアント側も複雑で、とくにWebKitが難所です。iOSとiPadOSのブラウザーはすべてWebKitで、APIやCSSの挙動がChromiumと大きく異なり、専用の対応が必要になります。",[11,72,73],{},"LibreTVから生まれたので、最初の告知はLibreTVの交流グループで行い、議論の場もそのまま使いました。自分から宣伝したのはほぼlinux.doだけで、大きな更新時にchangelogを投稿する程度です。そのうち、Xでフォローしている人やTelegramの技術チャンネル、さらにYouTube、Bilibili、小紅書の投稿者まで、自発的にMoonTVの導入方法を紹介してくれるようになりました。",[11,75,76],{},"利用者が増えるとissueも押し寄せます。大まかには2種類です。大半はBug report。コードにバグは付き物ですし、ましてAIが書いたものですからね、と責任転嫁しておきます。Feature Requestも2種類に分かれます。まともな要望はプロジェクトをよくするためのもので、レイアウト、操作、データ連携などです。一番歓迎できないのは収益化機能の要求です。導入して有料サービスにしたいのでしょうが、機能がなく自分でも作れないのでFRを出すわけです。楽をしてただ乗りしたい人は少ないほどありがたいです。以前、同種のissueを大量に出し、ban後もTelegramに来てしつこく絡む人がいました。本当に迷惑でした。ほかに無効なバグ報告もあります。READMEを読まずにデプロイに失敗したり、自分の回線の問題で検索できなかったりして、issueで騒ぎます。この手のものは、交流グループの通りすがりの人まで一言悪態をついていくほどです。",[11,78,79],{},"名前が知られると、周辺プロジェクトも生まれます。MoonTVにはAndroid TV専用のOrionTVというクライアントがあり、MoonTVをバックエンドにして視聴履歴を同期できます。交流グループではAndroid版やiOS版を作った人もいます。もちろんiOS版は各種制限でストア公開できません。",[29,81],{"repo":82},"zimplexing\u002Foriontv",[11,84,85],{},"以上です。本当は7月初め、まだ2K Starだったころに書き終える予定でしたが、ずっと先延ばしにしました。記事を書くよりコードを書くほうが面白いですからね。私は一度何かに取りかかると、食事中も寝るときもずっと考えてしまいます。夜中の2〜3時にバグを思い出して起きて直すのも珍しくありません。2週間連続で毎日6時間ちょっとしか寝ず、昼も夜も作業していました。",{"title":87,"searchDepth":88,"depth":88,"links":89},"",4,[],[91],"fiddling","2025-07-20 23:32:00","MoonTVはNext.jsとReactで作った動画集約プラットフォームで、連続ドラマなどを手軽に楽しむためのものです。LibreTVを改善しようとしたことが始まりで、数か月の開発を経て多くの関心と利用を集めています。Cursorのおかげで効率よく開発できた一方、複数環境への対応や複雑なデータ依存関係には苦労しました。ユーザーが増える中、フィードバックを受けて改善を続けています。",false,"md","https:\u002F\u002Fblog-img.774352199.xyz\u002FnIeONi.webp",{"slots":98},{},true,"\u002Ffiddling\u002Fmoontv-vibe-coding",null,{"text":103,"minutes":104,"time":105,"words":106},"11 min read",10.98,658800,2196,{"title":5,"description":93},"CursorでLibreTVをNext.jsとReactのMoonTVへ作り直した体験。AIによる開発、プレーヤーの状態依存、複数環境への対応、公開後の不具合報告への対応を振り返ります。",{"loc":100,"images":110},[111],{"loc":43},"posts\u002Ffiddling\u002Fmoontv-vibe-coding",[114,115,116,117,118],"MoonTV","LunaTV","Vibe Coding","Cursor","AI支援開発","tech","LdHgQyIqYmZ9adBYgbbh9hiCPbsrKN4opwNOaH3o4Q8",{"id":122,"node_id":123,"name":115,"full_name":31,"private":94,"owner":124,"html_url":142,"description":143,"fork":94,"url":144,"forks_url":145,"keys_url":146,"collaborators_url":147,"teams_url":148,"hooks_url":149,"issue_events_url":150,"events_url":151,"assignees_url":152,"branches_url":153,"tags_url":154,"blobs_url":155,"git_tags_url":156,"git_refs_url":157,"trees_url":158,"statuses_url":159,"languages_url":160,"stargazers_url":161,"contributors_url":162,"subscribers_url":163,"subscription_url":164,"commits_url":165,"git_commits_url":166,"comments_url":167,"issue_comment_url":168,"contents_url":169,"compare_url":170,"merges_url":171,"archive_url":172,"downloads_url":173,"issues_url":174,"pulls_url":175,"milestones_url":176,"notifications_url":177,"labels_url":178,"releases_url":179,"deployments_url":180,"created_at":181,"updated_at":182,"pushed_at":183,"git_url":184,"ssh_url":185,"clone_url":186,"svn_url":142,"homepage":87,"size":187,"stargazers_count":188,"watchers_count":188,"language":189,"has_issues":99,"has_projects":94,"has_downloads":94,"has_wiki":94,"has_pages":94,"has_discussions":94,"forks_count":190,"mirror_url":101,"archived":94,"disabled":94,"open_issues_count":191,"license":192,"allow_forking":99,"is_template":94,"web_commit_signoff_required":94,"has_pull_requests":99,"pull_request_creation_policy":197,"topics":198,"visibility":141,"forks":190,"open_issues":191,"watchers":188,"default_branch":199,"temp_clone_token":101,"custom_properties":200,"organization":201,"network_count":190,"subscribers_count":202},1036732253,"R_kgDOPctHXQ",{"login":125,"id":126,"node_id":127,"avatar_url":128,"gravatar_id":87,"url":129,"html_url":130,"followers_url":131,"following_url":132,"gists_url":133,"starred_url":134,"subscriptions_url":135,"organizations_url":136,"repos_url":137,"events_url":138,"received_events_url":139,"type":140,"user_view_type":141,"site_admin":94},"MoonTechLab",226115334,"O_kgDODXo_Bg","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F226115334?v=4","https:\u002F\u002Fapi.github.com\u002Fusers\u002FMoonTechLab","https:\u002F\u002Fgithub.com\u002FMoonTechLab","https:\u002F\u002Fapi.github.com\u002Fusers\u002FMoonTechLab\u002Ffollowers","https:\u002F\u002Fapi.github.com\u002Fusers\u002FMoonTechLab\u002Ffollowing{\u002Fother_user}","https:\u002F\u002Fapi.github.com\u002Fusers\u002FMoonTechLab\u002Fgists{\u002Fgist_id}","https:\u002F\u002Fapi.github.com\u002Fusers\u002FMoonTechLab\u002Fstarred{\u002Fowner}{\u002Frepo}","https:\u002F\u002Fapi.github.com\u002Fusers\u002FMoonTechLab\u002Fsubscriptions","https:\u002F\u002Fapi.github.com\u002Fusers\u002FMoonTechLab\u002Forgs","https:\u002F\u002Fapi.github.com\u002Fusers\u002FMoonTechLab\u002Frepos","https:\u002F\u002Fapi.github.com\u002Fusers\u002FMoonTechLab\u002Fevents{\u002Fprivacy}","https:\u002F\u002Fapi.github.com\u002Fusers\u002FMoonTechLab\u002Freceived_events","Organization","public","https:\u002F\u002Fgithub.com\u002FMoonTechLab\u002FLunaTV","本项目采用 CC BY-NC-SA 协议，禁止任何商业化行为，任何衍生项目必须保留本项目地址并以相同协议开源","https:\u002F\u002Fapi.github.com\u002Frepos\u002FMoonTechLab\u002FLunaTV","https:\u002F\u002Fapi.github.com\u002Frepos\u002FMoonTechLab\u002FLunaTV\u002Fforks","https:\u002F\u002Fapi.github.com\u002Frepos\u002FMoonTechLab\u002FLunaTV\u002Fkeys{\u002Fkey_id}","https:\u002F\u002Fapi.github.com\u002Frepos\u002FMoonTechLab\u002FLunaTV\u002Fcollaborators{\u002Fcollaborator}","https:\u002F\u002Fapi.github.com\u002Frepos\u002FMoonTechLab\u002FLunaTV\u002Fteams","https:\u002F\u002Fapi.github.com\u002Frepos\u002FMoonTechLab\u002FLunaTV\u002Fhooks","https:\u002F\u002Fapi.github.com\u002Frepos\u002FMoonTechLab\u002FLunaTV\u002Fissues\u002Fevents{\u002Fnumber}","https:\u002F\u002Fapi.github.com\u002Frepos\u002FMoonTechLab\u002FLunaTV\u002Fevents","https:\u002F\u002Fapi.github.com\u002Frepos\u002FMoonTechLab\u002FLunaTV\u002Fassignees{\u002Fuser}","https:\u002F\u002Fapi.github.com\u002Frepos\u002FMoonTechLab\u002FLunaTV\u002Fbranches{\u002Fbranch}","https:\u002F\u002Fapi.github.com\u002Frepos\u002FMoonTechLab\u002FLunaTV\u002Ftags","https:\u002F\u002Fapi.github.com\u002Frepos\u002FMoonTechLab\u002FLunaTV\u002Fgit\u002Fblobs{\u002Fsha}","https:\u002F\u002Fapi.github.com\u002Frepos\u002FMoonTechLab\u002FLunaTV\u002Fgit\u002Ftags{\u002Fsha}","https:\u002F\u002Fapi.github.com\u002Frepos\u002FMoonTechLab\u002FLunaTV\u002Fgit\u002Frefs{\u002Fsha}","https:\u002F\u002Fapi.github.com\u002Frepos\u002FMoonTechLab\u002FLunaTV\u002Fgit\u002Ftrees{\u002Fsha}","https:\u002F\u002Fapi.github.com\u002Frepos\u002FMoonTechLab\u002FLunaTV\u002Fstatuses\u002F{sha}","https:\u002F\u002Fapi.github.com\u002Frepos\u002FMoonTechLab\u002FLunaTV\u002Flanguages","https:\u002F\u002Fapi.github.com\u002Frepos\u002FMoonTechLab\u002FLunaTV\u002Fstargazers","https:\u002F\u002Fapi.github.com\u002Frepos\u002FMoonTechLab\u002FLunaTV\u002Fcontributors","https:\u002F\u002Fapi.github.com\u002Frepos\u002FMoonTechLab\u002FLunaTV\u002Fsubscribers","https:\u002F\u002Fapi.github.com\u002Frepos\u002FMoonTechLab\u002FLunaTV\u002Fsubscription","https:\u002F\u002Fapi.github.com\u002Frepos\u002FMoonTechLab\u002FLunaTV\u002Fcommits{\u002Fsha}","https:\u002F\u002Fapi.github.com\u002Frepos\u002FMoonTechLab\u002FLunaTV\u002Fgit\u002Fcommits{\u002Fsha}","https:\u002F\u002Fapi.github.com\u002Frepos\u002FMoonTechLab\u002FLunaTV\u002Fcomments{\u002Fnumber}","https:\u002F\u002Fapi.github.com\u002Frepos\u002FMoonTechLab\u002FLunaTV\u002Fissues\u002Fcomments{\u002Fnumber}","https:\u002F\u002Fapi.github.com\u002Frepos\u002FMoonTechLab\u002FLunaTV\u002Fcontents\u002F{+path}","https:\u002F\u002Fapi.github.com\u002Frepos\u002FMoonTechLab\u002FLunaTV\u002Fcompare\u002F{base}...{head}","https:\u002F\u002Fapi.github.com\u002Frepos\u002FMoonTechLab\u002FLunaTV\u002Fmerges","https:\u002F\u002Fapi.github.com\u002Frepos\u002FMoonTechLab\u002FLunaTV\u002F{archive_format}{\u002Fref}","https:\u002F\u002Fapi.github.com\u002Frepos\u002FMoonTechLab\u002FLunaTV\u002Fdownloads","https:\u002F\u002Fapi.github.com\u002Frepos\u002FMoonTechLab\u002FLunaTV\u002Fissues{\u002Fnumber}","https:\u002F\u002Fapi.github.com\u002Frepos\u002FMoonTechLab\u002FLunaTV\u002Fpulls{\u002Fnumber}","https:\u002F\u002Fapi.github.com\u002Frepos\u002FMoonTechLab\u002FLunaTV\u002Fmilestones{\u002Fnumber}","https:\u002F\u002Fapi.github.com\u002Frepos\u002FMoonTechLab\u002FLunaTV\u002Fnotifications{?since,all,participating}","https:\u002F\u002Fapi.github.com\u002Frepos\u002FMoonTechLab\u002FLunaTV\u002Flabels{\u002Fname}","https:\u002F\u002Fapi.github.com\u002Frepos\u002FMoonTechLab\u002FLunaTV\u002Freleases{\u002Fid}","https:\u002F\u002Fapi.github.com\u002Frepos\u002FMoonTechLab\u002FLunaTV\u002Fdeployments","2025-08-12T13:59:33Z","2026-09-20T12:44:11Z","2026-09-10T07:57:24Z","git:\u002F\u002Fgithub.com\u002FMoonTechLab\u002FLunaTV.git","git@github.com:MoonTechLab\u002FLunaTV.git","https:\u002F\u002Fgithub.com\u002FMoonTechLab\u002FLunaTV.git",20256,10495,"TypeScript",9100,6,{"key":193,"name":194,"spdx_id":195,"url":101,"node_id":196},"other","Other","NOASSERTION","MDc6TGljZW5zZTA=","all",[],"main",{},{"login":125,"id":126,"node_id":127,"avatar_url":128,"gravatar_id":87,"url":129,"html_url":130,"followers_url":131,"following_url":132,"gists_url":133,"starred_url":134,"subscriptions_url":135,"organizations_url":136,"repos_url":137,"events_url":138,"received_events_url":139,"type":140,"user_view_type":141,"site_admin":94},48,{"id":204,"node_id":205,"name":206,"full_name":207,"private":94,"owner":208,"html_url":224,"description":225,"fork":94,"url":226,"forks_url":227,"keys_url":228,"collaborators_url":229,"teams_url":230,"hooks_url":231,"issue_events_url":232,"events_url":233,"assignees_url":234,"branches_url":235,"tags_url":236,"blobs_url":237,"git_tags_url":238,"git_refs_url":239,"trees_url":240,"statuses_url":241,"languages_url":242,"stargazers_url":243,"contributors_url":244,"subscribers_url":245,"subscription_url":246,"commits_url":247,"git_commits_url":248,"comments_url":249,"issue_comment_url":250,"contents_url":251,"compare_url":252,"merges_url":253,"archive_url":254,"downloads_url":255,"issues_url":256,"pulls_url":257,"milestones_url":258,"notifications_url":259,"labels_url":260,"releases_url":261,"deployments_url":262,"created_at":263,"updated_at":264,"pushed_at":265,"git_url":266,"ssh_url":267,"clone_url":268,"svn_url":224,"homepage":269,"size":270,"stargazers_count":271,"watchers_count":271,"language":189,"has_issues":99,"has_projects":99,"has_downloads":94,"has_wiki":94,"has_pages":94,"has_discussions":94,"forks_count":272,"mirror_url":101,"archived":94,"disabled":94,"open_issues_count":273,"license":101,"allow_forking":99,"is_template":94,"web_commit_signoff_required":94,"has_pull_requests":99,"pull_request_creation_policy":197,"topics":274,"visibility":141,"forks":272,"open_issues":273,"watchers":271,"default_branch":275,"temp_clone_token":101,"custom_properties":276,"organization":277,"network_count":272,"subscribers_count":278},1009980734,"R_kgDOPDMVPg","OrionTV","orion-lib\u002FOrionTV",{"login":209,"id":210,"node_id":211,"avatar_url":212,"gravatar_id":87,"url":213,"html_url":214,"followers_url":215,"following_url":216,"gists_url":217,"starred_url":218,"subscriptions_url":219,"organizations_url":220,"repos_url":221,"events_url":222,"received_events_url":223,"type":140,"user_view_type":141,"site_admin":94},"orion-lib",226442601,"O_kgDODX89aQ","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F226442601?v=4","https:\u002F\u002Fapi.github.com\u002Fusers\u002Forion-lib","https:\u002F\u002Fgithub.com\u002Forion-lib","https:\u002F\u002Fapi.github.com\u002Fusers\u002Forion-lib\u002Ffollowers","https:\u002F\u002Fapi.github.com\u002Fusers\u002Forion-lib\u002Ffollowing{\u002Fother_user}","https:\u002F\u002Fapi.github.com\u002Fusers\u002Forion-lib\u002Fgists{\u002Fgist_id}","https:\u002F\u002Fapi.github.com\u002Fusers\u002Forion-lib\u002Fstarred{\u002Fowner}{\u002Frepo}","https:\u002F\u002Fapi.github.com\u002Fusers\u002Forion-lib\u002Fsubscriptions","https:\u002F\u002Fapi.github.com\u002Fusers\u002Forion-lib\u002Forgs","https:\u002F\u002Fapi.github.com\u002Fusers\u002Forion-lib\u002Frepos","https:\u002F\u002Fapi.github.com\u002Fusers\u002Forion-lib\u002Fevents{\u002Fprivacy}","https:\u002F\u002Fapi.github.com\u002Fusers\u002Forion-lib\u002Freceived_events","https:\u002F\u002Fgithub.com\u002Forion-lib\u002FOrionTV","一个基于 React Native TVOS 和 Expo 构建的播放器，旨在提供流畅的视频观看体验。","https:\u002F\u002Fapi.github.com\u002Frepos\u002Forion-lib\u002FOrionTV","https:\u002F\u002Fapi.github.com\u002Frepos\u002Forion-lib\u002FOrionTV\u002Fforks","https:\u002F\u002Fapi.github.com\u002Frepos\u002Forion-lib\u002FOrionTV\u002Fkeys{\u002Fkey_id}","https:\u002F\u002Fapi.github.com\u002Frepos\u002Forion-lib\u002FOrionTV\u002Fcollaborators{\u002Fcollaborator}","https:\u002F\u002Fapi.github.com\u002Frepos\u002Forion-lib\u002FOrionTV\u002Fteams","https:\u002F\u002Fapi.github.com\u002Frepos\u002Forion-lib\u002FOrionTV\u002Fhooks","https:\u002F\u002Fapi.github.com\u002Frepos\u002Forion-lib\u002FOrionTV\u002Fissues\u002Fevents{\u002Fnumber}","https:\u002F\u002Fapi.github.com\u002Frepos\u002Forion-lib\u002FOrionTV\u002Fevents","https:\u002F\u002Fapi.github.com\u002Frepos\u002Forion-lib\u002FOrionTV\u002Fassignees{\u002Fuser}","https:\u002F\u002Fapi.github.com\u002Frepos\u002Forion-lib\u002FOrionTV\u002Fbranches{\u002Fbranch}","https:\u002F\u002Fapi.github.com\u002Frepos\u002Forion-lib\u002FOrionTV\u002Ftags","https:\u002F\u002Fapi.github.com\u002Frepos\u002Forion-lib\u002FOrionTV\u002Fgit\u002Fblobs{\u002Fsha}","https:\u002F\u002Fapi.github.com\u002Frepos\u002Forion-lib\u002FOrionTV\u002Fgit\u002Ftags{\u002Fsha}","https:\u002F\u002Fapi.github.com\u002Frepos\u002Forion-lib\u002FOrionTV\u002Fgit\u002Frefs{\u002Fsha}","https:\u002F\u002Fapi.github.com\u002Frepos\u002Forion-lib\u002FOrionTV\u002Fgit\u002Ftrees{\u002Fsha}","https:\u002F\u002Fapi.github.com\u002Frepos\u002Forion-lib\u002FOrionTV\u002Fstatuses\u002F{sha}","https:\u002F\u002Fapi.github.com\u002Frepos\u002Forion-lib\u002FOrionTV\u002Flanguages","https:\u002F\u002Fapi.github.com\u002Frepos\u002Forion-lib\u002FOrionTV\u002Fstargazers","https:\u002F\u002Fapi.github.com\u002Frepos\u002Forion-lib\u002FOrionTV\u002Fcontributors","https:\u002F\u002Fapi.github.com\u002Frepos\u002Forion-lib\u002FOrionTV\u002Fsubscribers","https:\u002F\u002Fapi.github.com\u002Frepos\u002Forion-lib\u002FOrionTV\u002Fsubscription","https:\u002F\u002Fapi.github.com\u002Frepos\u002Forion-lib\u002FOrionTV\u002Fcommits{\u002Fsha}","https:\u002F\u002Fapi.github.com\u002Frepos\u002Forion-lib\u002FOrionTV\u002Fgit\u002Fcommits{\u002Fsha}","https:\u002F\u002Fapi.github.com\u002Frepos\u002Forion-lib\u002FOrionTV\u002Fcomments{\u002Fnumber}","https:\u002F\u002Fapi.github.com\u002Frepos\u002Forion-lib\u002FOrionTV\u002Fissues\u002Fcomments{\u002Fnumber}","https:\u002F\u002Fapi.github.com\u002Frepos\u002Forion-lib\u002FOrionTV\u002Fcontents\u002F{+path}","https:\u002F\u002Fapi.github.com\u002Frepos\u002Forion-lib\u002FOrionTV\u002Fcompare\u002F{base}...{head}","https:\u002F\u002Fapi.github.com\u002Frepos\u002Forion-lib\u002FOrionTV\u002Fmerges","https:\u002F\u002Fapi.github.com\u002Frepos\u002Forion-lib\u002FOrionTV\u002F{archive_format}{\u002Fref}","https:\u002F\u002Fapi.github.com\u002Frepos\u002Forion-lib\u002FOrionTV\u002Fdownloads","https:\u002F\u002Fapi.github.com\u002Frepos\u002Forion-lib\u002FOrionTV\u002Fissues{\u002Fnumber}","https:\u002F\u002Fapi.github.com\u002Frepos\u002Forion-lib\u002FOrionTV\u002Fpulls{\u002Fnumber}","https:\u002F\u002Fapi.github.com\u002Frepos\u002Forion-lib\u002FOrionTV\u002Fmilestones{\u002Fnumber}","https:\u002F\u002Fapi.github.com\u002Frepos\u002Forion-lib\u002FOrionTV\u002Fnotifications{?since,all,participating}","https:\u002F\u002Fapi.github.com\u002Frepos\u002Forion-lib\u002FOrionTV\u002Flabels{\u002Fname}","https:\u002F\u002Fapi.github.com\u002Frepos\u002Forion-lib\u002FOrionTV\u002Freleases{\u002Fid}","https:\u002F\u002Fapi.github.com\u002Frepos\u002Forion-lib\u002FOrionTV\u002Fdeployments","2025-06-28T05:05:24Z","2026-09-20T02:32:04Z","2026-02-05T03:20:57Z","git:\u002F\u002Fgithub.com\u002Forion-lib\u002FOrionTV.git","git@github.com:orion-lib\u002FOrionTV.git","https:\u002F\u002Fgithub.com\u002Forion-lib\u002FOrionTV.git","https:\u002F\u002Fgithub.com\u002Fzimplexing\u002FOrionTV",4927,5535,1875,61,[],"master",{},{"login":209,"id":210,"node_id":211,"avatar_url":212,"gravatar_id":87,"url":213,"html_url":214,"followers_url":215,"following_url":216,"gists_url":217,"starred_url":218,"subscriptions_url":219,"organizations_url":220,"repos_url":221,"events_url":222,"received_events_url":223,"type":140,"user_view_type":141,"site_admin":94},24,[280,285],{"title":281,"path":282,"stem":283,"date":284,"type":119,"children":-1},"macOS 26とiPadOS 26を試してみた","\u002Ffiddling\u002Fmacos-26-trial","posts\u002Ffiddling\u002Fmacos-26-trial","2025-06-10 20:18:00",{"title":286,"path":287,"stem":288,"date":289,"type":119,"children":-1},"Microsoft Flight Simulator 2024をあれこれ試す","\u002Ffiddling\u002Fmsfs2024-joystick-and-pico","posts\u002Ffiddling\u002Fmsfs2024-joystick-and-pico","2025-12-14 14:31:00",1789914057931]