PLAY DEVELOPERS BLOG
https://developers.play.jp/
HuluやTVerなどの日本最大級の動画配信を支える株式会社PLAYが運営するテックブログです。
フィード

社内 LT 会「てっくじゃむ」9月29日のイベントレポート
PLAY DEVELOPERS BLOG
2026年9月29日(火)に、PLAY 社内で 「てっくじゃむ #12 」を開催しました。 このイベントは PLAY の技術情報交流を活発化させるため不定期で開催している社内の LT 会です。 ジャムセッション(即興で行われる演奏会)のように、普段はあまり関わりがない人たちが、ふらりと立ち寄って話をするような場であってほしい、また、パンにジャムを塗るようにエンジニアにも知識を塗り足していきたい、といった想いを込めて「てっくじゃむ」と名付けています。 9月から就業型インターンシップにご参加いただいた2名の学生さんの成果発表会の場として「てっくじゃむ」を活用しました。 登壇者 タイトル 小林 1ヶ…
1日前

Photoshopで「画面を作る」からFigmaで「状態を設計する」ようになるまで
PLAY DEVELOPERS BLOG
デザイングループの山本です。 入社から3年経ち、入社時から触り始めたFigmaの使い方にも慣れてきたところで、これまでのデザインツールについて振り返ってみようと思います。 「Webサイトを作る」が仕事だった頃 Webが変わり、ツールも変わっていった 「画面を作る」から「状態を設計する」へ FigmaとUIデザイン ツールが変わっても、変わらないこと Photoshopから、Fireworks、XD、Figma、そしてAIへ。 私が初めてWebデザインの仕事に携わった2000年代半ば頃は「紙は終わる、これからはWebだ」と言われていた時代でした。そこから考えると、Webデザインの仕事も、使うツー…
3日前

就業型インターン参加レポート: タスクの価値と進め方を模索した1ヶ月
PLAY DEVELOPERS BLOG
こんにちは!約1ヶ月間、株式会社PLAY メディアサプライチェーン技術部 開発第2グループ でインターン生として就業させて頂いた、立命館大学大学院 情報理工学研究科 1年の仮屋薗 純です。 動画などのアセットをクラウド上で一元管理する「KRONOS DRIVE」というプロダクトを開発するstorageチームに配属されました。 この記事では、インターン期間で行ったタスクのうち1つである「動画のエンコード進捗の%を画面に表示する機能の開発」について「誰の何を解決するのか」と「どう進めるのか」を探りながら進めた過程を紹介できたらと思います。 インターンについて 参加のきっかけ 今回の目標 やったこと…
10日前

就業型インターン参加レポート: 1ヶ月のインターンで、考え方が2回砕かれた話
PLAY DEVELOPERS BLOG
こんにちは、小林碧唯です。9月の1ヶ月間、PLAYのSTREAKS GALLERY(以下GALLERY)チームでエンジニアとしてインターンに参加しました。 この記事では、インターンで取り組んだことと、そこで学んだことを書きます。一番の学びは「正解は要件と規模で変わる」ということでした。もう1つ、部署を越えていろいろな方と話せたのも、参加してよかったと思える理由です。 インターンの目標 1ヶ月で触ったところ 考え方が2回砕かれた話 起こりうる問題に気づく 1回目:「処理を1つにまとめればいい」 2回目:「楽観ロックで防いで、並列化で速くすればいい」 結果:今の規模に合わせて楽観ロックで対応 学ん…
10日前

iOSDC Japan 2026 参加レポート
PLAY DEVELOPERS BLOG
こんにちは。技術基盤部 SDK開発グループの藤森です。 9月11日から13日にかけて開催されたiOSDC Japan 2026に参加してきました。PLAYは去年に続いてシルバースポンサーとして協賛し、今年はTシャツスポンサーにもなっています。 iOSDC Japan 2026とは PLAYのスポンサー協賛 聴講したセッション Day1: 映像変換サーバーなしで端末内でHLSを生成してライブ配信 Day1: 「守り」で活用するオンデバイスLLM 〜写ってはいけないを総力戦で防ぐ〜 Day2: Heart of Swift Concurrency おわりに iOSDC Japan 2026とは i…
25日前

【iOS 27】Now Playingフレームワークでロック画面に再生情報を表示する
PLAY DEVELOPERS BLOG
こんにちは。ビデオマーケット事業部 開発統括グループの石井です。 普段から動画配信サービス「ビデオマーケット」の開発に携わっていることもあり、iOS 27で新たに追加されたNow Playingフレームワークを試してみました。 Now Playingフレームワークは、ロック画面・コントロールセンター・Dynamic Island・CarPlay・Apple Watchに表示される再生情報や再生・停止などの操作を扱うためのフレームワークです。 これまでは、MPNowPlayingInfoCenterやMPRemoteCommandCenterで再生情報やリモートコマンドを設定していましたが、新フ…
25日前

社内 LT 会「てっくじゃむ」9月3日のイベントレポート
PLAY DEVELOPERS BLOG
2026年9月3日(木)に、PLAY 社内で 「てっくじゃむ #11 」を開催しました。 このイベントは PLAY の技術情報交流を活発化させるため不定期で開催している社内の LT 会です。 ジャムセッション(即興で行われる演奏会)のように、普段はあまり関わりがない人たちが、ふらりと立ち寄って話をするような場であってほしい、また、パンにジャムを塗るようにエンジニアにも知識を塗り足していきたい、といった想いを込めて「てっくじゃむ」と名付けています。 今回はこれまでと少し違い、新しい試みをいくつか行いました。 8月から1ヶ月間、就業型インターンシップに参加していた浦山さんの成果発表会を同時開催 セ…
25日前

Claude の使い残しを、Claude Code Routines で減らす
PLAY DEVELOPERS BLOG
こんにちは。配信プラットフォーム技術部開発第2グループの土谷です。 自分は Claude を個人で契約していて、Claude Code も日常的に使っています。 ただ業務では会社が用意した環境を使っているので、個人のアカウントを開くのは通勤前と帰宅後、あとは週末だけです。 あるとき Claude の Usage を見ていて、平日の日中に9時間ほどまったく使っていない時間があることに気づきました。 この記事は、その9時間を Claude Code の Routines で埋めて、週次上限の使い残しを減らした話です。 使い残していたのは週次上限だった 「スマホから使えばいい」では解決しなかった 設…
1ヶ月前

【iOS 27】Foundation Modelsに追加されたLanguageModelとAttachmentを試す
PLAY DEVELOPERS BLOG
こんにちは。技術基盤部 SDK開発グループの藤森です。今回は、iOS 27でFoundation Modelsに追加されたAPIを紹介します。 Foundation Modelsは、Apple Intelligenceの端末内モデルをアプリから利用するための、iOS 26で登場したフレームワークです。 追加されたAPIはいくつかありますが、この記事では、プロンプトに画像を入れられるようにする型のAttachmentと、ClaudeのようなApple製以外の言語モデルを渡せるようにするprotocolのLanguageModelの2つについて調査しました。Claudeを使ったサンプルアプリで、レ…
1ヶ月前

就業型インターン参加レポート: ライブ配信基盤の裏側に迫る一ヶ月
PLAY DEVELOPERS BLOG
こんにちは! プラットフォーム本部 技術基盤部 配信基盤グループ インターン生の浦山です。今回は、1ヶ月の就業型インターンの参加レポートをお届けします。 私が配属されたのは、動画配信サービスを支える基盤を開発・運用しているSTREAKSチームです。 1ヶ月の間、ライブ配信を支える機能開発に、フロントエンドからインフラまで携わることができました! 普段Webアプリケーションを触っているだけでは出会わない「動画が視聴者の手元に届くまで」の未知の世界に、足を踏み入れた1ヶ月でした。 今回はその中身をできるだけ具体的に書いてみます。 インターンについて 期間・所属 参加のきっかけ 今回の目標 Day1…
1ヶ月前

Amazon ElastiCache for Redis v5 から Valkey v8 へ、欠損率 0% で移行した話
PLAY DEVELOPERS BLOG
みなさまこんにちは。配信プラットフォーム技術部 開発第1グループの岡田です。 以前ブログを投稿してから約2年が経ち、部署が変わりまして新しく覚えることやわからないことが多く、日々新卒の頃のような初心に戻って仕事に励んでおります。 さて、今回はある大規模動画配信サービスのバックエンドにて、Amazon ElastiCache for Redisのv5からAmazon ElastiCache for Valkeyのv8に移行した話をさせていただきます。 移行方法や移行までの流れ、確認した観点や直面した問題について共有できればと思いますので、ぜひ読んでいただけますと幸いです。 この記事の対象読者とス…
2ヶ月前

Android TV 向けアプリの TalkBack 対応について
PLAY DEVELOPERS BLOG
Androidには、TalkBack(トークバック)という機能が備わっています。この機能は、Googleが提供しているAndroid端末向けの画面読み上げ機能(スクリーンリーダー)です。 主に目が不自由な方(全盲やロービジョンの方)を対象とした、Android標準のアクセシビリティ機能で、画面を見なくても指先の感覚と「耳」だけでスマートフォンやタブレットを完全に操作できるように設計されています。 先日、あるアプリを新しいAndroid TVにインストールし、TalkBackを有効にしたところ、サイドメニューの表示が行えない、その他にも動いていない箇所が散見されるという状況でした。 本記事では、…
2ヶ月前

Vega OS アプリ開発における Storybook の活用
PLAY DEVELOPERS BLOG
お久しぶりです。 ソリューション技術部 開発第1グループの諸岡です。 昨年AmazonがリリースしたVega OSでのアプリケーション開発において、弊社内の一部プロジェクトではStorybookを使用しております。 今回は、Vega OSアプリ開発へStorybookを導入した狙いも交えてどのように対応を行っているかを大まかに解説します。 Vega OSアプリ開発へStorybookを導入した経緯 対応の全体像 Storybookで使用するnpmモジュール コア ビルド React Native -> Web変換 ネイティブモジュールのモック化 モックファイル一例 例1: デバイス情報のモック…
2ヶ月前

「ないなら作ればいい」— Claude Code 主体で Obsidian プラグインを開発してコミュニティ公開するまで
PLAY DEVELOPERS BLOG
はじめに Kanban ボードだけが移行できなかった ないなら作ればいい:要件と設計思想 開発は Claude Code 主体 社内ツールを OSS にするまで いざコミュニティプラグインとして公開へ Property Kanban の紹介 使い方 おわりに はじめに 今年の3月から、業務で積極的に Claude Code を使うようになりました。 AI と一緒に仕事をするようになると、メモの置き場所に対する要求が変わってきました。 自分のメモを AI にそのまま読ませたい。 AI の調査結果やドラフトを、自分が普段見る場所に直接出力させたい。 そこで、それまで使っていた Notion から、…
2ヶ月前

GitHub ActionsとNotebookLMで実現する、AIを活用したドキュメント運用基盤の構築
PLAY DEVELOPERS BLOG
1. はじめに 2. 昨年度下期の活動とNotebookLMの活用について 3. GitHubからNotebookLMへの連携の全体像 4. Geminiでの活用方法と利用時の注意点 5. Googleドライブの自動同期対応について 6. 今後の課題について 1. はじめに こんにちは、ソリューション技術部 開発第2グループの篠原です。 AIの導入により開発効率は飛躍的に向上していますが、コードを書いた後の「次に繋げるための資料整理」など、基礎となる部分を固めることが更なる生産性向上には不可欠です。そのため、私は日々プロジェクトの標準プロセスや運用ツール周りの開発・整備を行っています。 最近、…
4ヶ月前

AWS Summit Japan 2026 に行ってきました
PLAY DEVELOPERS BLOG
技術推進グループの杉嵜です。 AWS Summit Japan 2026 は、6 月 25・26 日の 2 日間にわたって開催されました。去年に続いて台風が接近し悪天候に見舞われましたが、今年も幕張まで出向いてきたので、参加レポートをお届けします。 AWS Summit Japan 基調講演 スペシャルセッション Expo セッション 終わりに 基調講演 初日の幕張メッセには 8 時 10 分ごろに到着して 8 時半に開場、無事に基調講演の予約席に座れました。開場の時点で非常に長い待機列が形成されていたようで、AWS のコミュニティの拡大を感じます。なお記念品としてクッションをもらえましたが、…
4ヶ月前

AWS DevOps Agentを活用したインシデント自動分析基盤の構築
PLAY DEVELOPERS BLOG
こんにちは、PLAY CLOUD本部 技術推進グループの市川です。 PLAY CLOUDでは現在、システムの安定運用と運用負荷の低減を目指し、インシデント対応の自動化に取り組んでいます。 その一環として、AWS DevOps Agent を活用した、エラー通知から調査・Issue起票(PR作成)までを一気通貫で自動化する基盤を構築しました。 本番環境でエラーが発生すると、Slackにアラートが飛び、エンジニアがログを確認し、コードを調査し、GitHub Issueを起票し修正をする——この一連の作業を毎回手動で行うのは大きな負担です。 特にエラーの発生頻度が高い環境では、同じようなエラーに対し…
4ヶ月前

webOS TV開発事始め:LG実機で自作アプリを動かす最短ルート
PLAY DEVELOPERS BLOG
LGのスマートTV(webOS)の実機に自作アプリをインストールして動作確認を行うまでの一連の流れを解説します! スマートTVのアプリの開発において、シミュレーターは確かに便利です。 ただ、シミュレーターが「嘘をつかない」のはあくまでロジックまで。 実際にリモコンを握って操作した時のもっさり感や、大画面で見つけたフォントの違和感、そして実機特有のメモリ制限……。 こうした「現場のリアル」は、やはりテレビにアプリをインストールして動かしてみないことには始まらないので、やはり最終的なパフォーマンスや挙動は実機で確認をしたいものです。 「PC上では完璧だったのに!」という悲劇を防ぐためにも、今回はL…
5ヶ月前

TSKaigi 2026 に現地参加しました! #TSKaigi
PLAY DEVELOPERS BLOG
先日開催された TSKaigi 2026 に、PLAY はシルバースポンサーとして協賛しました!また弊社の市川が登壇するということもあり、そちらの応援も兼ねて現地参加しております。 日常的にTypeScriptを書いているので以前から気になっていたイベントだったのですが、実際に足を運んでみると想像以上に熱量が高く、とても学びの多いイベントでした。 会場の熱気とブースの様子 セッション 制約と時代から読み解くTypeScriptコンパイラ設計史 ReactとSvelteのその先、Ripple-TS LLM時代のリファクタリング戦略:AIエージェントによる段階的・安全なTS移行方法 OST(Ope…
5ヶ月前

AIエージェントによる段階的・安全なTypeScript移行方法
PLAY DEVELOPERS BLOG
こんにちは、PLAY CLOUD本部 技術推進室の市川です。 PLAY CLOUDでは現在、プロダクトの管理画面について、稼働させたまま TypeScript に置き換える 作業を進めています。 JavaScript から TypeScript への移行は、型による不具合の早期検出、IDE 補完の精度向上、リファクタリングの安全性、新メンバーのオンボーディング高速化など、技術的なメリットが非常に大きい施策です。 一方で、ある程度の規模になったプロダクトでこれをやり切ろうとすると、人月単位の時間とコストがかかる こと、機能開発リソースと完全に競合する こと、直接的な利益に繋がることがわかりづらい…
5ヶ月前

データ取得がなんか重い、、、複数のアプローチから原因の解明とパフォーマンス改善に取り組んだ話
PLAY DEVELOPERS BLOG
こんにちは。メディアサプライチェーン技術部第1グループの大野です。 「システムの動きがなんとなく重い気がする、、、」 「データ取得に結構時間がかかっているな、、、」 そんな風に思ったことはありませんか? 私が担当している Node.js と PostgreSQL で構築されたプロダクトでも、そのように感じるタイミングが時々ありました。 そこで、ボトルネックになっている箇所をチームで特定していくと、ボトルネックとなっている原因が1箇所ではなく複数あることが分かりました。 原因を特定し順番に対応したことで、以下のような改善をすることができました。 レスポンスタイムの短縮などによるUXの改善 インデ…
5ヶ月前

Compose MultiplatformでのAndroid/iOSアプリ開発を試してみた
PLAY DEVELOPERS BLOG
こんにちは。OTTサービス技術部 開発第3グループの森本です。 この記事では、Compose MultiplatformでのAndroid/iOSアプリの導入についての説明をします。 これからCompose Multiplatformの利用を検討する方の参考になれば幸いです。 Compose Multiplatformとは 特長 他のクロスプラットフォーム技術との比較 導入方法 Step 1: 開発環境の準備 Step 2: プロジェクトの作成 Step 3: プロジェクト構造の理解 サンプルプロジェクト ネイティブ実装が必要となる部分 まとめ Compose Multiplatformとは …
7ヶ月前

テスト自動化の新たな一歩 〜 Playwright MCPの実践 〜
PLAY DEVELOPERS BLOG
皆さん、こんにちは。プラットフォーム技術部の林と申します。 しばらくご無沙汰しておりましたが、また記事を書いてみようと思います。 以前、Playwrightについての記事を書きましたが、その後さらに触っていく中で、Playwright MCPとPlaywright CLIにも挑戦してみました。今回はその延長として、実際に触ってみた感想を共有したいと思います。 Playwrightについて詳しく知りたい方や、これから学び始める方は、こちらの記事もぜひご覧ください。 https://developers.play.jp/entry/2022/12/09/160940 Playwright MCPと…
7ヶ月前

AWS 認定資格全冠 RTA 完走しました【クリアタイム:35日10時間56分】
PLAY DEVELOPERS BLOG
こんにちは、テックリードの丸山 @maruyamaworks です。 タイトルの通りですが、このたび AWS 認定全冠を達成しました。先月(2026 年 2 月)の初めから動き始め、約 35 日間というきわめて短期間で無事に全冠を達成することができました。本稿では、これから全冠を目指す方のために、全冠達成までの流れや勉強方法についてシェアしようと思います。 全冠を目指した理由 本 RTA のレギュレーションについて 成績発表 受験順について ポイント1: 序盤から高難度に挑戦する ポイント2: 1 日に 2 つの試験を受ける ポイント3: 3 つのバウチャーでサイクルを回す 勉強方法について …
7ヶ月前

【25卒チーム開発】AI時代に必要な「課題発見能力」とは? 新卒研修のプロダクトが社内で実運用された話
PLAY DEVELOPERS BLOG
皆様はじめまして。 25卒で新卒入社いたしました、ULIZAサービス部の浜川です。 PLAYでは毎年、新卒社員は入社後に技術研修を受け、その中でチーム開発に取り組んでいます。年度によって、チーム開発の期間やテーマなどは異なります。 私の代、25卒では自分たちで作るプロダクトを選定して、3人1チームで取り組むことになりました。 本稿では、新卒の技術研修にて、チームで取り組んだプロダクト開発についてご紹介します。約1ヶ月という期間で、私たちは何を考え、何を作ったのか。そしてそれがどのように実際の社内インフラとして運用されるに至ったのかをお話しさせていただきます。 チーム開発 テーマ選定:AI時代だ…
7ヶ月前

AWS SAMを使ったLambda自動デプロイ + Lambda関数URL化 + CF設定までの道のり
PLAY DEVELOPERS BLOG
こんにちは、OTTサービス技術部の小渕です。 SmartTV(HTML5TV)向けのアプリ開発は、PCやスマホアプリ開発とは異なる独特の苦労があります。ブラウザエンジンの性能が限られているため、少しの重い処理がユーザー体験(UX)を著しく損なわせます。 私が担当したある案件では、以下の三重苦に直面しました。 巨大なレスポンスを返す既存API 厳しいリクエスト制限 があるAPI 画像生成などの重い処理 をテレビ側で行うことによるパフォーマンス低下 これらを解決するために、AWS Lambdaを「BFF(Backend For Frontend)」兼「画像生成エンジン」として活用し、そのインフラ管…
7ヶ月前

Google Antigravityを触って分かった最新AIエージェントの凄さ
PLAY DEVELOPERS BLOG
みなさんこんにちは。2025年4月に新卒として入社しました、プラットフォーム技術部開発第3グループに所属しています、村山と申します。 皆さんは普段、開発を行う際に何のAIを使っていますか? GitHub CopilotやCursor、あるいはClaudeを横に置いてプログラミングをする光景は、今や私たちの日常になりました。しかし、AIとエンジニアの関係は「補完」からさらに一歩先、「自律的なエージェント」へと急速に進化しています。 その決定打とも言えるのが、Googleから登場した最新のAIエージェント型エディタ『Antigravity(アンティグラビティ)』です。 これまでのAIエディタと何が…
8ヶ月前

Figma MCP を用いて React コンポーネントを爆速で実装する
PLAY DEVELOPERS BLOG
こんにちは、25卒で新卒入社いたしました、OTTサービス技術部開発第4グループの今村です。 業務では主にフロントエンドを担当しております。 担当案件にて他端末ですでに実装されていたコンポーネントを一から新規作成する機会がありました。 その際にFigma MCPを用いて開発を行ったのですが、デザインからコードへの反映がとてもスムーズになり、実装工数が大幅に削減されました。 本記事では、Figma MCPの導入手順から実際にデザイン実装する流れ、そして実務での活用事例と使用して感じた利点と課題点についてお話しいたします。 Figma MCPとは? 導入方法 Figma側の設定 1. Devモードの…
9ヶ月前

【New Relic Game Day イベントレポート】実践で学ぶオブザーバビリティの基礎と活用
PLAY DEVELOPERS BLOG
PLAY では、技術力の向上を目的としたLT会の開催やテックブログなどを積極的に運営しています。今回は、オブザーバビリティへの理解向上と社内での活用促進を目的として New Relic株式会社様ご協力のもと、オブザーバビリティプラットフォーム「New Relic」に特化した社内勉強会を開催しました!本記事では、約30名の社員が参加した勉強会の様子をレポートします。 Game Day スケジュール 今回のイベントは、New Relicの基礎力を確認するためのクイズや実際にデータを分析し問題点や改善点を特定する「チーム対抗戦」。ステージ1からステージ6までの構成となっており、参加者はチームごとに協…
9ヶ月前

AWS から Google Cloud の Workload Identity Federation を使う時にハマったところ
PLAY DEVELOPERS BLOG
AWS の Lambda 関数から Google Cloud の Workload Identity Federation を使おうとした際に遭遇したエラーの話です。The size of mapped attribute google.subject exceeds the 127 bytes limit. Either modify your attribute mapping or the incoming assertion to produce a mapped attribute that is less than 127 bytes.AWS と連携する際の Workload Identity Pool (以下 WIP)の属性マッピングは、 google.subject としてデフォルトでは assumed-role の ARN がマッピングされます。この google.subject は127バイト以下にしないといけないですが、Lambda 関数から連携するケースでは基本的に assumed-role の ARN に IAM ロール名と Lambda 関数名が使われるので、これが長いと ARN が127バイトを超えてしまい、WIF 側でエラーになってしまいます。
9ヶ月前