[{"data":1,"prerenderedAt":664},["ShallowReactive",2],{"/blog/x-from-misskey/":3,"related-map":240,"/blog/x-from-misskey-surround":659},{"id":4,"title":5,"body":6,"category":224,"coverImage":225,"date":226,"description":227,"draft":228,"extension":229,"meta":230,"navigation":231,"path":232,"rawbody":233,"seo":234,"stem":235,"tags":236,"__hash__":239},"blog/blog/x-from-misskey/index.md","MisskeyからTwitterのTLを観測できるようにした",{"type":7,"value":8,"toc":217},"minimark",[9,13,17,24,30,33,49,55,58,61,64,67,73,76,82,93,96,99,102,156,163,171,177,182,185,191,194,197,200,207,210,213],[10,11,12],"h2",{"id":12},"概要",[14,15,16],"p",{},"タイトル通りです。Misskeyのフォークと、Twitter(X)の投稿を取得するためのブリッジサーバーを自作してMisskey側からTwitterのTL2種を見れるようにしてきました。ので、その簡単な記録という感じ。",[14,18,19],{},[20,21],"img",{"alt":22,"src":23},"完成形（デッキUI）","https://images.bokukoha.dev/blog/x-from-misskey/__________2026-07-13_112219.webp",[14,25,26],{},[20,27],{"alt":28,"src":29},"デフォルトUI版","https://images.bokukoha.dev/blog/x-from-misskey/__________2026-07-13_112410.webp",[10,31,32],{"id":32},"機能",[34,35,36,40,43,46],"ul",{},[37,38,39],"li",{},"Twitter(X)の自分のフォロー中TL/おすすめTLを取得して表示",[37,41,42],{},"下部ボタンから該当ツイートにいいねを押せる",[37,44,45],{},"下部ボタンから該当ツイートURLを張り付けたMisskey投稿を作成できる（シェア用）",[37,47,48],{},"デフォルトUIの場合、それぞれのTLの表示を切り替えできる",[14,50,51],{},[20,52],{"alt":53,"src":54},"これなかなか良い","https://images.bokukoha.dev/blog/x-from-misskey/__________2026-07-13_113053.webp",[10,56,57],{"id":57},"経緯",[14,59,60],{},"興味がなければ飛ばしてください。",[14,62,63],{},"メインSNSをMisskeyに移してから結構な時間が経ちましたが、それでもやはりイラストを見たり、今の話題を追ったりするのはTwitterの方が向いていて、なんだかんだTwitterを見る時間はそこそこありました。",[14,65,66],{},"で、そういうときに面倒になるのがタブ移動です。スマホで使ってるときはアプリの切り替えですね。あとは、最近のTwitterのリプ欄や検索が実質機能していないこともあり、「TLだけ見れたらな～」みたいなことを考えていました。",[14,68,69],{},[20,70],{"alt":71,"src":72},"この移動がめんどくさいッ！","https://images.bokukoha.dev/blog/x-from-misskey/__________2026-07-13_111636.webp",[14,74,75],{},"そんなとき、フォロワーが複数SNSの自アカウント投稿をまとめて検索/整理できるアーカイブツールみたいなのを作っており、それを見て「俺も複数SNS同時に管理したいな…」となりました。",[14,77,78],{},[20,79],{"alt":80,"src":81},"ふふ、きぼーちゃん。","https://images.bokukoha.dev/blog/x-from-misskey/__________2026-07-13_112050.webp",[14,83,84,85,92],{},"以前（Twitterだったころ）のAPIの仕様なら恐らく楽にTL取得ってできたんでしょうけど、今どうやってやるのかな～みたいなことをうっすら考えてるときに浮かんできたのが、以前作った",[86,87,91],"a",{"href":88,"rel":89},"https://www.bokukoha.dev/work/misskey-x-mirror-bot/",[90],"nofollow","misskey-x-mirror-bot","です。",[14,94,95],{},"認証はどうにかできるわけだし、TwitterのTL表示をしてる内部APIを叩けばいい感じにできるんじゃないか！？（技術者倫理）と考え、さっそく作ってみました。",[10,97,98],{"id":98},"技のはなし",[14,100,101],{},"全体アーキテクチャは以下みたいな感じ",[103,104,109],"pre",{"className":105,"code":106,"language":107,"meta":108,"style":108},"language-うんって感じ shiki shiki-themes github-dark","[Misskeyフロントエンド (ブラウザ)]\n         ↓ /api/x/timeline\n[Misskeyバックエンド (フォーク)]\n         ↓ HTTP (X_BRIDGE_URL)\n[misskey-x-homeTL (ブリッジサーバー)]\n         ↓ GraphQL API\n[X (Twitter)]\n","うんって感じ","",[110,111,112,120,126,132,138,144,150],"code",{"__ignoreMap":108},[113,114,117],"span",{"class":115,"line":116},"line",1,[113,118,119],{},"[Misskeyフロントエンド (ブラウザ)]\n",[113,121,123],{"class":115,"line":122},2,[113,124,125],{},"         ↓ /api/x/timeline\n",[113,127,129],{"class":115,"line":128},3,[113,130,131],{},"[Misskeyバックエンド (フォーク)]\n",[113,133,135],{"class":115,"line":134},4,[113,136,137],{},"         ↓ HTTP (X_BRIDGE_URL)\n",[113,139,141],{"class":115,"line":140},5,[113,142,143],{},"[misskey-x-homeTL (ブリッジサーバー)]\n",[113,145,147],{"class":115,"line":146},6,[113,148,149],{},"         ↓ GraphQL API\n",[113,151,153],{"class":115,"line":152},7,[113,154,155],{},"[X (Twitter)]\n",[14,157,158,159,162],{},"今回の実装のキモは",[110,160,161],{},"misskey-x-homeTL","というブリッジサーバーですね。",[14,164,165,166,170],{},"misskey本体からXの内部APIを叩いても良かったんですが、正直Misskey内部を必要以上にいじるのは怖かったので、 (",[167,168,169],"small",{},"メンテが面倒そうだから…",") Xの投稿を取得したり投稿をキャッシュしたりするサービスを動かして、そこに対してmisskeyのバックエンドAPI(x/timeline)から通信、さらにそれをフロントエンドから叩いて実際に表示する…というアプローチを取りました。",[14,172,173],{},[20,174],{"alt":175,"src":176},"フロントはできるだけMisskeyの既存のUIに寄せたつもり","https://images.bokukoha.dev/blog/x-from-misskey/__________2026-07-13_114015.webp",[14,178,179],{},[20,180],{"alt":108,"src":181},"https://images.bokukoha.dev/blog/x-from-misskey/__________2026-07-13_114819.webp",[14,183,184],{},"前述したとおり、Xの認証についてはログイン済みセッションのcookieを使ってどうにかする以前使った方法が使えたので、画像のようにブラウザ版Xが内部で叩いてるAPIを叩けば取得できるはずだ…とやってみました。",[14,186,187],{},[20,188],{"alt":189,"src":190},"できたよね","https://images.bokukoha.dev/blog/x-from-misskey/aocg90ygpj.png.webp",[14,192,193],{},"てな感じで動いたので、そこから色々やって完成させた…という感じです。",[10,195,196],{"id":196},"おわり",[14,198,199],{},"まあ他にも色々書くことはある気もしますが、技術の話興味ある人はgithubの方見てくださればいいかなと。",[14,201,202],{},[86,203,206],{"href":204,"rel":205},"https://github.com/Kohxax/misskey-x-homeTL",[90],"github(misskey-x--homeTL)",[14,208,209],{},"とりあえずいい感じにTwitterとMisskeyを一画面で観測し続けることができるようになったので満足です。おひとり様サーバー建てていて、フォークをメンテできる人ならやってみてもいいかもしれません。自分でやってきたmisskeyカスタムの中でも結構お気に入りな機能追加で、Twitterよく見る人ならQOL上がること間違いなしかなと思います。",[14,211,212],{},"質問等ありましたらコメ残していってください、多分返します！ほんじゃ、また次回👋",[214,215,216],"style",{},"html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}",{"title":108,"searchDepth":134,"depth":134,"links":218},[219,220,221,222,223],{"id":12,"depth":122,"text":12},{"id":32,"depth":122,"text":32},{"id":57,"depth":122,"text":57},{"id":98,"depth":122,"text":98},{"id":196,"depth":122,"text":196},"技術系","https://images.bokukoha.dev/blog/x-from-misskey/aofm4iock6.png.webp","2026-07-13","タイトル通りです。Misskeyのフォークと、Twitterの投稿を取得するためのブリッジサーバーを自作してMisskey側からTwitterのTL2種を見れるようにしてきました。ので、その簡単な記録という感じ。",false,"md",{},true,"/blog/x-from-misskey","---\ntitle: \"MisskeyからTwitterのTLを観測できるようにした\"\ndate: \"2026-07-13\"\ncategory: \"技術系\"\ntags:\n  - \"misskey\"\n  - \"X\"\ncoverImage: \"https://images.bokukoha.dev/blog/x-from-misskey/aofm4iock6.png.webp\"\ndraft: false\ndescription: \"タイトル通りです。Misskeyのフォークと、Twitterの投稿を取得するためのブリッジサーバーを自作してMisskey側からTwitterのTL2種を見れるようにしてきました。ので、その簡単な記録という感じ。\"\n---\n\n## 概要\n\nタイトル通りです。Misskeyのフォークと、Twitter(X)の投稿を取得するためのブリッジサーバーを自作してMisskey側からTwitterのTL2種を見れるようにしてきました。ので、その簡単な記録という感じ。\n\n![完成形（デッキUI）](https://images.bokukoha.dev/blog/x-from-misskey/__________2026-07-13_112219.webp)\n\n![デフォルトUI版](https://images.bokukoha.dev/blog/x-from-misskey/__________2026-07-13_112410.webp)\n\n## 機能\n\n- Twitter(X)の自分のフォロー中TL/おすすめTLを取得して表示\n- 下部ボタンから該当ツイートにいいねを押せる\n- 下部ボタンから該当ツイートURLを張り付けたMisskey投稿を作成できる（シェア用）\n- デフォルトUIの場合、それぞれのTLの表示を切り替えできる\n\n![これなかなか良い](https://images.bokukoha.dev/blog/x-from-misskey/__________2026-07-13_113053.webp)\n\n## 経緯\n\n興味がなければ飛ばしてください。\n\nメインSNSをMisskeyに移してから結構な時間が経ちましたが、それでもやはりイラストを見たり、今の話題を追ったりするのはTwitterの方が向いていて、なんだかんだTwitterを見る時間はそこそこありました。\n\nで、そういうときに面倒になるのがタブ移動です。スマホで使ってるときはアプリの切り替えですね。あとは、最近のTwitterのリプ欄や検索が実質機能していないこともあり、「TLだけ見れたらな～」みたいなことを考えていました。\n\n![この移動がめんどくさいッ！](https://images.bokukoha.dev/blog/x-from-misskey/__________2026-07-13_111636.webp)\n\nそんなとき、フォロワーが複数SNSの自アカウント投稿をまとめて検索/整理できるアーカイブツールみたいなのを作っており、それを見て「俺も複数SNS同時に管理したいな…」となりました。\n\n![ふふ、きぼーちゃん。](https://images.bokukoha.dev/blog/x-from-misskey/__________2026-07-13_112050.webp)\n\n以前（Twitterだったころ）のAPIの仕様なら恐らく楽にTL取得ってできたんでしょうけど、今どうやってやるのかな～みたいなことをうっすら考えてるときに浮かんできたのが、以前作った[misskey-x-mirror-bot](https://www.bokukoha.dev/work/misskey-x-mirror-bot/)です。\n\n認証はどうにかできるわけだし、TwitterのTL表示をしてる内部APIを叩けばいい感じにできるんじゃないか！？（技術者倫理）と考え、さっそく作ってみました。\n\n## 技のはなし\n\n全体アーキテクチャは以下みたいな感じ\n\n```うんって感じ\n[Misskeyフロントエンド (ブラウザ)]\n         ↓ /api/x/timeline\n[Misskeyバックエンド (フォーク)]\n         ↓ HTTP (X_BRIDGE_URL)\n[misskey-x-homeTL (ブリッジサーバー)]\n         ↓ GraphQL API\n[X (Twitter)]\n```\n\n今回の実装のキモは`misskey-x-homeTL`というブリッジサーバーですね。\n\nmisskey本体からXの内部APIを叩いても良かったんですが、正直Misskey内部を必要以上にいじるのは怖かったので、 (\u003Csmall>メンテが面倒そうだから…\u003C/small>) Xの投稿を取得したり投稿をキャッシュしたりするサービスを動かして、そこに対してmisskeyのバックエンドAPI(x/timeline)から通信、さらにそれをフロントエンドから叩いて実際に表示する…というアプローチを取りました。\n\n![フロントはできるだけMisskeyの既存のUIに寄せたつもり](https://images.bokukoha.dev/blog/x-from-misskey/__________2026-07-13_114015.webp)\n\n![](https://images.bokukoha.dev/blog/x-from-misskey/__________2026-07-13_114819.webp)\n\n前述したとおり、Xの認証についてはログイン済みセッションのcookieを使ってどうにかする以前使った方法が使えたので、画像のようにブラウザ版Xが内部で叩いてるAPIを叩けば取得できるはずだ…とやってみました。\n\n![できたよね](https://images.bokukoha.dev/blog/x-from-misskey/aocg90ygpj.png.webp)\n\nてな感じで動いたので、そこから色々やって完成させた…という感じです。\n\n## おわり\n\nまあ他にも色々書くことはある気もしますが、技術の話興味ある人はgithubの方見てくださればいいかなと。\n\n[github(misskey-x--homeTL)](https://github.com/Kohxax/misskey-x-homeTL)\n\nとりあえずいい感じにTwitterとMisskeyを一画面で観測し続けることができるようになったので満足です。おひとり様サーバー建てていて、フォークをメンテできる人ならやってみてもいいかもしれません。自分でやってきたmisskeyカスタムの中でも結構お気に入りな機能追加で、Twitterよく見る人ならQOL上がること間違いなしかなと思います。\n\n質問等ありましたらコメ残していってください、多分返します！ほんじゃ、また次回👋",{"title":5,"description":227},"blog/x-from-misskey/index",[237,238],"misskey","X","CBq0hCkxgBFJBK_il85LPGX5baXMsEol74WvkF5OgIw",{"/blog/my-web-design-is-perfect":241,"/blog/move-to-codex":268,"/blog/x-from-misskey":291,"/blog/music-history":317,"/blog/chichibu":343,"/blog/comment-feat":361,"/blog/stop-drunk":379,"/blog/build-pc":389,"/blog/cms-dev":399,"/blog/kansai_day3to4":409,"/blog/kansai_ryokou":423,"/blog/hiroshima":437,"/blog/chokaguya":443,"/blog/yamaokaya":461,"/blog/tonalite":467,"/blog/new_year_2026":473,"/blog/year_2025":483,"/blog/pixel10":493,"/blog/gpt-to-gemini":499,"/blog/za_log":505,"/blog/misskey-setting":511,"/blog/docker-on-lxc":517,"/blog/md_components":527,"/blog/nuxt_new_site":533,"/blog/simokita_moon":539,"/blog/mc_server":549,"/blog/aws_like_button":559,"/blog/sendai":569,"/blog/taityo":575,"/blog/add-share-button":581,"/blog/aws_summit":587,"/blog/drive_nikki":593,"/blog/2025-06-12":599,"/blog/cf_build":605,"/blog/ota_sanpo":611,"/blog/nuxt_content":617,"/blog/sushi":623,"/blog/misskey-docker":629,"/blog/server-make":635,"/blog/sanpo-log":641,"/blog/hugo-blog":647,"/blog/1":653},[242,248,253,258,263],{"title":243,"path":244,"date":245,"category":246,"coverImage":247},"個人サイトを0から作ったぞ！","/blog/nuxt_new_site","2025-11-13","雑記","https://images.bokukoha.dev/blog/nuxt_new_site/2.png",{"title":249,"path":250,"date":251,"category":246,"coverImage":252},"超久しぶりにPC自作したぞ！！の雑ログ","/blog/build-pc","2026-04-10","https://images.bokukoha.dev/blog/build-pc/1716.jpg",{"title":254,"path":255,"date":256,"category":246,"coverImage":257},"ブログ作った","/blog/1","2025-02-19","https://images.bokukoha.dev/blog/1/main.jpg",{"title":259,"path":260,"date":261,"category":246,"coverImage":262},"メインスマホをPixel10に乗り換えたぞ！","/blog/pixel10","2025-12-24","https://images.bokukoha.dev/blog/pixel10/main.jpg",{"title":264,"path":265,"date":266,"category":246,"coverImage":267},"chatGPTからGeminiに完全移行した","/blog/gpt-to-gemini","2025-12-03","https://images.bokukoha.dev/blog/gpt-to-gemini/main.png",[269,270,276,281,286],{"title":264,"path":265,"date":266,"category":246,"coverImage":267},{"title":271,"path":272,"date":273,"category":274,"coverImage":275},"海ほたるにドライブ行ってきた","/blog/drive_nikki","2025-06-16","おでかけログ","https://images.bokukoha.dev/blog/drive_nikki/main.jpg",{"title":277,"path":278,"date":279,"category":274,"coverImage":280},"スタレのスシローコラボ行ってきた","/blog/sushi","2025-04-27","https://images.bokukoha.dev/blog/sushi/main.jpg",{"title":282,"path":283,"date":284,"category":224,"coverImage":285},"ブログにコメント機能つけたぞ！（いらない）","/blog/comment-feat","2026-05-17","https://images.bokukoha.dev/blog/test/2026051117085800_s.webp",{"title":287,"path":288,"date":289,"category":274,"coverImage":290},"初スカイメイト＆広島バカ散歩してきたぞ！","/blog/hiroshima","2026-03-15","https://images.bokukoha.dev/blog/hiroshima/main.jpg",[292,297,302,307,312],{"title":293,"path":294,"date":295,"category":224,"coverImage":296},"Cloudflare tunnelで作るMisskey自鯖","/blog/misskey-docker","2025-04-06","https://images.bokukoha.dev/blog/misskey-docker/main.jpg",{"title":298,"path":299,"date":300,"category":224,"coverImage":301},"MisskeyのDBバックアップとオブジェクトストレージの設定方法","/blog/misskey-setting","2025-11-23","https://images.bokukoha.dev/blog/misskey-setting/main.jpg",{"title":303,"path":304,"date":305,"category":224,"coverImage":306},"Nuxt Content3のコンポーネント呼び出し機能で遊んでみよう","/blog/md_components","2025-11-17","https://images.bokukoha.dev/blog/md_components/6.jpg",{"title":308,"path":309,"date":310,"category":224,"coverImage":311},"Proxmoxでコンテナ on コンテナして自鯖落とした話","/blog/docker-on-lxc","2025-11-21","https://images.bokukoha.dev/blog/docker-on-lxc/main.png",{"title":313,"path":314,"date":315,"category":224,"coverImage":316},"Hugo + StackのブログにAWSでいいねボタン実装した","/blog/aws_like_button","2025-09-21","https://images.bokukoha.dev/blog/aws_like_button/main.jpg",[318,323,328,333,338],{"title":319,"path":320,"date":321,"category":246,"coverImage":322},"超かぐや姫！を見たぞ！～オタクの感想編～","/blog/chokaguya","2026-02-26","https://images.bokukoha.dev/blog/chokaguya/main.png",{"title":324,"path":325,"date":326,"category":274,"coverImage":327},"秩父にレズアニメの看板探しに行ったぞ！","/blog/chichibu","2026-05-30","https://images.bokukoha.dev/blog/chichibu/PXL_20260529_044435415.webp",{"title":329,"path":330,"date":331,"category":246,"coverImage":332},"webデザインなんもわからん！！！","/blog/my-web-design-is-perfect","2026-08-10","https://images.bokukoha.dev/blog/my-web-design-is-perfect/PXL_20260730_020112099.webp",{"title":334,"path":335,"date":336,"category":246,"coverImage":337},"結局chatGPTに戻ってきた！！","/blog/move-to-codex","2026-07-22","https://images.bokukoha.dev/blog/move-to-codex/__________2026-07-22_204114.webp",{"title":339,"path":340,"date":341,"category":246,"coverImage":342},"おい、1カ月禁酒したのに何も効果ない件","/blog/stop-drunk","2026-04-19","https://images.bokukoha.dev/blog/stop-drunk/PXL_20260222_113942551.MACRO_FOCUS.MP.jpg",[344,349,354,359,360],{"title":345,"path":346,"date":347,"category":274,"coverImage":348},"ムーンアートナイト下北沢に行った日記","/blog/simokita_moon","2025-10-03","https://images.bokukoha.dev/blog/simokita_moon/main.jpg",{"title":350,"path":351,"date":352,"category":274,"coverImage":353},"無知オタク、AWS Summitに行く","/blog/aws_summit","2025-06-26","https://images.bokukoha.dev/blog/AWS_summit/main.jpg",{"title":355,"path":356,"date":357,"category":274,"coverImage":358},"春休みラストの京都旅行してきたぞ！～関西1,2日目～","/blog/kansai_ryokou","2026-03-30","https://images.bokukoha.dev/blog/kansai_ryokou/main.jpg",{"title":287,"path":288,"date":289,"category":274,"coverImage":290},{"title":271,"path":272,"date":273,"category":274,"coverImage":275},[362,363,368,369,374],{"title":313,"path":314,"date":315,"category":224,"coverImage":316},{"title":364,"path":365,"date":366,"category":224,"coverImage":367},"Hugo + Stackのブログにシェアボタン実装した","/blog/add-share-button","2025-06-30","https://images.bokukoha.dev/blog/add-share-button/main.jpg",{"title":303,"path":304,"date":305,"category":224,"coverImage":306},{"title":370,"path":371,"date":372,"category":224,"coverImage":373},"Nuxt Contentでブログもどきを作ってみた","/blog/nuxt_content","2025-05-09","https://images.bokukoha.dev/blog/nuxt_content/main.jpg",{"title":375,"path":376,"date":377,"category":224,"coverImage":378},"ClaudePro契約してCMS作ったぞ！！！","/blog/cms-dev","2026-04-09","https://images.bokukoha.dev/blog/cms-dev/PXL_20260327_034729621.jpg",[380,381,382,387,388],{"title":249,"path":250,"date":251,"category":246,"coverImage":252},{"title":264,"path":265,"date":266,"category":246,"coverImage":267},{"title":383,"path":384,"date":385,"category":246,"coverImage":386},"ポケモンZAクリアしたぞ！の感想","/blog/za_log","2025-12-01","https://images.bokukoha.dev/blog/za_log/main.jpg",{"title":282,"path":283,"date":284,"category":224,"coverImage":285},{"title":5,"path":232,"date":226,"category":224,"coverImage":225},[390,391,392,397,398],{"title":254,"path":255,"date":256,"category":246,"coverImage":257},{"title":329,"path":330,"date":331,"category":246,"coverImage":332},{"title":393,"path":394,"date":395,"category":246,"coverImage":396},"労働体験して体調崩してた日記","/blog/taityo","2025-07-13","https://images.bokukoha.dev/blog/taityo/main.jpg",{"title":383,"path":384,"date":385,"category":246,"coverImage":386},{"title":339,"path":340,"date":341,"category":246,"coverImage":342},[400,405,406,407,408],{"title":401,"path":402,"date":403,"category":224,"coverImage":404},"HugoでのCloudflare Pagesのビルド失敗を回避する方法","/blog/cf_build","2025-05-11","https://images.bokukoha.dev/blog/cf_build/main.jpg",{"title":298,"path":299,"date":300,"category":224,"coverImage":301},{"title":282,"path":283,"date":284,"category":224,"coverImage":285},{"title":370,"path":371,"date":372,"category":224,"coverImage":373},{"title":308,"path":309,"date":310,"category":224,"coverImage":311},[410,411,412,417,422],{"title":355,"path":356,"date":357,"category":274,"coverImage":358},{"title":287,"path":288,"date":289,"category":274,"coverImage":290},{"title":413,"path":414,"date":415,"category":274,"coverImage":416},"ウルトラバカ散歩～山岡家を目指すぞ！編～","/blog/yamaokaya","2026-02-23","https://images.bokukoha.dev/blog/yamaokaya/main.jpg",{"title":418,"path":419,"date":420,"category":274,"coverImage":421},"池袋から飯田橋まで散歩した","/blog/sanpo-log","2025-02-21","https://images.bokukoha.dev/blog/sanpo-log/main.jpg",{"title":345,"path":346,"date":347,"category":274,"coverImage":348},[424,429,434,435,436],{"title":425,"path":426,"date":427,"category":274,"coverImage":428},"突発で仙台旅行してきたぞ！日記","/blog/sendai","2025-09-17","https://images.bokukoha.dev/blog/sendai/main.jpg",{"title":430,"path":431,"date":432,"category":274,"coverImage":433},"京都お花見バカ散歩＆名古屋メシ部～関西3,4日目～","/blog/kansai_day3to4","2026-03-31","https://images.bokukoha.dev/blog/kansai_day3to4/main.jpg",{"title":287,"path":288,"date":289,"category":274,"coverImage":290},{"title":271,"path":272,"date":273,"category":274,"coverImage":275},{"title":413,"path":414,"date":415,"category":274,"coverImage":416},[438,439,440,441,442],{"title":425,"path":426,"date":427,"category":274,"coverImage":428},{"title":413,"path":414,"date":415,"category":274,"coverImage":416},{"title":430,"path":431,"date":432,"category":274,"coverImage":433},{"title":355,"path":356,"date":357,"category":274,"coverImage":358},{"title":418,"path":419,"date":420,"category":274,"coverImage":421},[444,445,450,455,456],{"title":383,"path":384,"date":385,"category":246,"coverImage":386},{"title":446,"path":447,"date":448,"category":246,"coverImage":449},"自分音楽史を振り返る（アニソン～電子音楽）","/blog/music-history","2026-06-12","https://images.bokukoha.dev/blog/music-history/__________2026-06-11_185304.webp",{"title":451,"path":452,"date":453,"category":246,"coverImage":454},"オタクはバカ散歩をしろ！","/blog/ota_sanpo","2025-05-10","https://images.bokukoha.dev/blog/ota_sanpo/main.jpg",{"title":249,"path":250,"date":251,"category":246,"coverImage":252},{"title":457,"path":458,"date":459,"category":246,"coverImage":460},"ワイヤレスイヤホンを買い替えたぞ！（Final TONALITE）","/blog/tonalite","2026-02-12","https://images.bokukoha.dev/blog/tonalite/main.jpg",[462,463,464,465,466],{"title":287,"path":288,"date":289,"category":274,"coverImage":290},{"title":430,"path":431,"date":432,"category":274,"coverImage":433},{"title":418,"path":419,"date":420,"category":274,"coverImage":421},{"title":345,"path":346,"date":347,"category":274,"coverImage":348},{"title":355,"path":356,"date":357,"category":274,"coverImage":358},[468,469,470,471,472],{"title":259,"path":260,"date":261,"category":246,"coverImage":262},{"title":249,"path":250,"date":251,"category":246,"coverImage":252},{"title":319,"path":320,"date":321,"category":246,"coverImage":322},{"title":243,"path":244,"date":245,"category":246,"coverImage":247},{"title":383,"path":384,"date":385,"category":246,"coverImage":386},[474,479,480,481,482],{"title":475,"path":476,"date":477,"category":246,"coverImage":478},"2025年楽しかったことまとめ","/blog/year_2025","2025-12-30","https://images.bokukoha.dev/blog/year_2025/main.jpg",{"title":451,"path":452,"date":453,"category":246,"coverImage":454},{"title":345,"path":346,"date":347,"category":274,"coverImage":348},{"title":287,"path":288,"date":289,"category":274,"coverImage":290},{"title":413,"path":414,"date":415,"category":274,"coverImage":416},[484,489,490,491,492],{"title":485,"path":486,"date":487,"category":246,"coverImage":488},"滑り込み1月まとめ！！","/blog/new_year_2026","2026-01-30","https://images.bokukoha.dev/blog/new_year_2026/main.jpg",{"title":254,"path":255,"date":256,"category":246,"coverImage":257},{"title":243,"path":244,"date":245,"category":246,"coverImage":247},{"title":375,"path":376,"date":377,"category":224,"coverImage":378},{"title":324,"path":325,"date":326,"category":274,"coverImage":327},[494,495,496,497,498],{"title":457,"path":458,"date":459,"category":246,"coverImage":460},{"title":329,"path":330,"date":331,"category":246,"coverImage":332},{"title":249,"path":250,"date":251,"category":246,"coverImage":252},{"title":319,"path":320,"date":321,"category":246,"coverImage":322},{"title":243,"path":244,"date":245,"category":246,"coverImage":247},[500,501,502,503,504],{"title":334,"path":335,"date":336,"category":246,"coverImage":337},{"title":329,"path":330,"date":331,"category":246,"coverImage":332},{"title":243,"path":244,"date":245,"category":246,"coverImage":247},{"title":249,"path":250,"date":251,"category":246,"coverImage":252},{"title":339,"path":340,"date":341,"category":246,"coverImage":342},[506,507,508,509,510],{"title":319,"path":320,"date":321,"category":246,"coverImage":322},{"title":249,"path":250,"date":251,"category":246,"coverImage":252},{"title":339,"path":340,"date":341,"category":246,"coverImage":342},{"title":264,"path":265,"date":266,"category":246,"coverImage":267},{"title":243,"path":244,"date":245,"category":246,"coverImage":247},[512,513,514,515,516],{"title":293,"path":294,"date":295,"category":224,"coverImage":296},{"title":401,"path":402,"date":403,"category":224,"coverImage":404},{"title":5,"path":232,"date":226,"category":224,"coverImage":225},{"title":375,"path":376,"date":377,"category":224,"coverImage":378},{"title":308,"path":309,"date":310,"category":224,"coverImage":311},[518,519,524,525,526],{"title":293,"path":294,"date":295,"category":224,"coverImage":296},{"title":520,"path":521,"date":522,"category":224,"coverImage":523},"自宅で動かすMinecraftサーバー","/blog/mc_server","2025-09-30","https://images.bokukoha.dev/blog/mc_server/main.jpg",{"title":298,"path":299,"date":300,"category":224,"coverImage":301},{"title":303,"path":304,"date":305,"category":224,"coverImage":306},{"title":375,"path":376,"date":377,"category":224,"coverImage":378},[528,529,530,531,532],{"title":282,"path":283,"date":284,"category":224,"coverImage":285},{"title":5,"path":232,"date":226,"category":224,"coverImage":225},{"title":308,"path":309,"date":310,"category":224,"coverImage":311},{"title":370,"path":371,"date":372,"category":224,"coverImage":373},{"title":375,"path":376,"date":377,"category":224,"coverImage":378},[534,535,536,537,538],{"title":329,"path":330,"date":331,"category":246,"coverImage":332},{"title":254,"path":255,"date":256,"category":246,"coverImage":257},{"title":264,"path":265,"date":266,"category":246,"coverImage":267},{"title":475,"path":476,"date":477,"category":246,"coverImage":478},{"title":249,"path":250,"date":251,"category":246,"coverImage":252},[540,541,542,543,548],{"title":425,"path":426,"date":427,"category":274,"coverImage":428},{"title":418,"path":419,"date":420,"category":274,"coverImage":421},{"title":350,"path":351,"date":352,"category":274,"coverImage":353},{"title":544,"path":545,"date":546,"category":274,"coverImage":547},"先週は色々あったよ日記","/blog/2025-06-12","2025-06-12","https://images.bokukoha.dev/blog/2025-06-12/main.jpg",{"title":271,"path":272,"date":273,"category":274,"coverImage":275},[550,555,556,557,558],{"title":551,"path":552,"date":553,"category":224,"coverImage":554},"3万円くらいで作る自宅サーバー","/blog/server-make","2025-02-22","https://images.bokukoha.dev/blog/server-make/main.jpg",{"title":308,"path":309,"date":310,"category":224,"coverImage":311},{"title":5,"path":232,"date":226,"category":224,"coverImage":225},{"title":282,"path":283,"date":284,"category":224,"coverImage":285},{"title":375,"path":376,"date":377,"category":224,"coverImage":378},[560,561,566,567,568],{"title":364,"path":365,"date":366,"category":224,"coverImage":367},{"title":562,"path":563,"date":564,"category":224,"coverImage":565},"Hugo + Stackテーマで楽に作る個人ブログ","/blog/hugo-blog","2025-02-20","https://images.bokukoha.dev/blog/hugo-blog/main.jpg",{"title":282,"path":283,"date":284,"category":224,"coverImage":285},{"title":401,"path":402,"date":403,"category":224,"coverImage":404},{"title":5,"path":232,"date":226,"category":224,"coverImage":225},[570,571,572,573,574],{"title":287,"path":288,"date":289,"category":274,"coverImage":290},{"title":355,"path":356,"date":357,"category":274,"coverImage":358},{"title":345,"path":346,"date":347,"category":274,"coverImage":348},{"title":418,"path":419,"date":420,"category":274,"coverImage":421},{"title":271,"path":272,"date":273,"category":274,"coverImage":275},[576,577,578,579,580],{"title":329,"path":330,"date":331,"category":246,"coverImage":332},{"title":249,"path":250,"date":251,"category":246,"coverImage":252},{"title":254,"path":255,"date":256,"category":246,"coverImage":257},{"title":425,"path":426,"date":427,"category":274,"coverImage":428},{"title":345,"path":346,"date":347,"category":274,"coverImage":348},[582,583,584,585,586],{"title":313,"path":314,"date":315,"category":224,"coverImage":316},{"title":562,"path":563,"date":564,"category":224,"coverImage":565},{"title":282,"path":283,"date":284,"category":224,"coverImage":285},{"title":401,"path":402,"date":403,"category":224,"coverImage":404},{"title":5,"path":232,"date":226,"category":224,"coverImage":225},[588,589,590,591,592],{"title":345,"path":346,"date":347,"category":274,"coverImage":348},{"title":271,"path":272,"date":273,"category":274,"coverImage":275},{"title":277,"path":278,"date":279,"category":274,"coverImage":280},{"title":425,"path":426,"date":427,"category":274,"coverImage":428},{"title":324,"path":325,"date":326,"category":274,"coverImage":327},[594,595,596,597,598],{"title":277,"path":278,"date":279,"category":274,"coverImage":280},{"title":544,"path":545,"date":546,"category":274,"coverImage":547},{"title":425,"path":426,"date":427,"category":274,"coverImage":428},{"title":345,"path":346,"date":347,"category":274,"coverImage":348},{"title":355,"path":356,"date":357,"category":274,"coverImage":358},[600,601,602,603,604],{"title":271,"path":272,"date":273,"category":274,"coverImage":275},{"title":345,"path":346,"date":347,"category":274,"coverImage":348},{"title":425,"path":426,"date":427,"category":274,"coverImage":428},{"title":350,"path":351,"date":352,"category":274,"coverImage":353},{"title":430,"path":431,"date":432,"category":274,"coverImage":433},[606,607,608,609,610],{"title":298,"path":299,"date":300,"category":224,"coverImage":301},{"title":562,"path":563,"date":564,"category":224,"coverImage":565},{"title":375,"path":376,"date":377,"category":224,"coverImage":378},{"title":313,"path":314,"date":315,"category":224,"coverImage":316},{"title":364,"path":365,"date":366,"category":224,"coverImage":367},[612,613,614,615,616],{"title":485,"path":486,"date":487,"category":246,"coverImage":488},{"title":319,"path":320,"date":321,"category":246,"coverImage":322},{"title":287,"path":288,"date":289,"category":274,"coverImage":290},{"title":413,"path":414,"date":415,"category":274,"coverImage":416},{"title":430,"path":431,"date":432,"category":274,"coverImage":433},[618,619,620,621,622],{"title":282,"path":283,"date":284,"category":224,"coverImage":285},{"title":375,"path":376,"date":377,"category":224,"coverImage":378},{"title":313,"path":314,"date":315,"category":224,"coverImage":316},{"title":364,"path":365,"date":366,"category":224,"coverImage":367},{"title":562,"path":563,"date":564,"category":224,"coverImage":565},[624,625,626,627,628],{"title":271,"path":272,"date":273,"category":274,"coverImage":275},{"title":425,"path":426,"date":427,"category":274,"coverImage":428},{"title":345,"path":346,"date":347,"category":274,"coverImage":348},{"title":350,"path":351,"date":352,"category":274,"coverImage":353},{"title":544,"path":545,"date":546,"category":274,"coverImage":547},[630,631,632,633,634],{"title":298,"path":299,"date":300,"category":224,"coverImage":301},{"title":5,"path":232,"date":226,"category":224,"coverImage":225},{"title":308,"path":309,"date":310,"category":224,"coverImage":311},{"title":551,"path":552,"date":553,"category":224,"coverImage":554},{"title":401,"path":402,"date":403,"category":224,"coverImage":404},[636,637,638,639,640],{"title":520,"path":521,"date":522,"category":224,"coverImage":523},{"title":293,"path":294,"date":295,"category":224,"coverImage":296},{"title":249,"path":250,"date":251,"category":246,"coverImage":252},{"title":562,"path":563,"date":564,"category":224,"coverImage":565},{"title":329,"path":330,"date":331,"category":246,"coverImage":332},[642,643,644,645,646],{"title":345,"path":346,"date":347,"category":274,"coverImage":348},{"title":287,"path":288,"date":289,"category":274,"coverImage":290},{"title":425,"path":426,"date":427,"category":274,"coverImage":428},{"title":413,"path":414,"date":415,"category":274,"coverImage":416},{"title":430,"path":431,"date":432,"category":274,"coverImage":433},[648,649,650,651,652],{"title":313,"path":314,"date":315,"category":224,"coverImage":316},{"title":364,"path":365,"date":366,"category":224,"coverImage":367},{"title":401,"path":402,"date":403,"category":224,"coverImage":404},{"title":282,"path":283,"date":284,"category":224,"coverImage":285},{"title":375,"path":376,"date":377,"category":224,"coverImage":378},[654,655,656,657,658],{"title":249,"path":250,"date":251,"category":246,"coverImage":252},{"title":243,"path":244,"date":245,"category":246,"coverImage":247},{"title":329,"path":330,"date":331,"category":246,"coverImage":332},{"title":393,"path":394,"date":395,"category":246,"coverImage":396},{"title":475,"path":476,"date":477,"category":246,"coverImage":478},[660,662],{"title":334,"path":335,"stem":661,"children":-1},"blog/move-to-codex/index",{"title":446,"path":447,"stem":663,"children":-1},"blog/music-history/index",1786360180784]