PLAY DEVELOPERS BLOG

HuluやTVerなどの日本最大級の動画配信を支える株式会社PLAYが運営するテックブログです。

HuluやTVerなどの日本最大級の動画配信を支える株式会社PLAYが運営するテックブログです。

Rails 4 から Rails 7 にバージョンアップした話

こんにちは。ソリューション技術部プロフェッショナルサービス第2グループの渡邉です。今回はRuby, Railsのバージョンアップにあたり実施したことをまとめて紹介します。 実はこの会社に入る前に独学でRailsのWebアプリを作ったことがあり(6年以上前です)、…

署名付きURLを使用したAmazon S3へのマルチパートアップロードを実装してみた

初めまして、弊社のプロダクト「KRONOS DRIVE」開発メンバーの大野です。 2024年に突入しましたが、年末年始はどのように過ごされましたでしょうか? 私はというと、カリフォルニアのディズニーランドで年越しをしてきました。初めての年越しディズニーでと…

Snowflake のクラスタリングキーを設定したらデータの集計が爆速になった話

こんにちは、SaaS プロダクト開発部の池田です。 主に視聴動向データの分析を行うサービスの開発・運用を担当しております。 視聴動向データの分析基盤で採用している Snowflake において、クラスタリングキーの設定をすることで、クエリの応答速度が爆速に…

VS Code のおすすめの拡張機能をご紹介 & 拡張機能を自作してみた

こんにちは、SaaSプロダクト開発部第1開発グループの陳です。 今回は開発でよく使うコードエディターVS Codeの拡張機能&便利な使い方について、紹介していきます。 おすすめの拡張機能 Turbo Console Log Pretty TypeScript Errors Search In Browser Error…

Apple シリコンの macOS で “Docker Desktop vs OrbStack” を検証してみた

こんにちは。今年の4月に入社したプラットフォーム技術部の杉森です。データ分析基盤の構築を行っております。 弊社のとあるアプリケーションの開発環境として Docker を使用しているのですが、 Apple シリコンの macOS での開発環境の立ち上げに多くの時間…

映像と音響の魅力を高める Dolby Vision・Dolby Atmos の基礎と動画配信での活用

こんにちは、プラットフォーム技術部第1グループの川端です。 突然ですが、みなさん、高画質な映像と迫力のある立体音響に魅了されますよね?これらを実現する技術に、ドルビー・ラボラトリーズ(以降Dolby社)が開発したDolby Vision・Dolby Atmosがあります…

Figmaでスライド資料を作成して良かった話

ソリューション技術部デザイングループの池田です。 強火の犬派 兼 中火の猫派です。現在は猫を飼ってます。 みなさん、スライド資料を作成した経験はありますか? 使うツールはPowerPointですかね。 便利ですよねパワポ。 残念ながら今回はパワポの話ではな…

読みやすいコード、メンテナンス性の良いコードを書こう

エンジニアの松永と申します。 私は開発リーダー的な役回りが多いので、コードレビューをする機会が多いです。いろんなプロジェクトを経験して実体験として感じるのは、煩雑で分かりにくい設計・コードはやっぱりバグが多いです。ですので、分かりやすいコー…

fastlaneを用いたAndroidアプリビルド〜配布までの自動化

はじめまして、ソリューション技術部でAndroidアプリ開発をしている古川です。 Android開発歴2年とまだまだ若輩者ではありますがよろしくお願いします。 アプリ開発をしているとお客様先でアプリのリリースがしたいという理由やテスターへの配布などで作成…

Mockoonを使ってローカル環境で手軽にMock APIサーバを立ち上げる

こんにちは、ソリューション技術部 OTTサービスソリューション統括部 LOGICAプロダクトグループの小川です。 今回はローカル環境で簡単にMock APIサーバを立ち上げることができるアプリケーションをご紹介します。 外部システムと連携する機能を開発する際に…

ESLintを導入して独自ルールを作成してみた

こんにちは。ソリューション事業部の樋口です。 最近私が担当している案件に、ESLintを導入する機会があったのでその際の手順を記載します。 同じ様な境遇の方の助けになれば幸いです。 ESLintとは何か? なぜESLintを導入したのか? 導入手順 インストール …

GitHub Actionsをオートスケールするself-hosted runnersで動かしたくて

こんにちは、SaaSプロダクト開発部の松本です。 弊社プロダクト「PLAY VIDEO STORES」のエンジニアを担当しています。 最近は朝の布団との格闘が始まり、冬の幕開けを沸々と感じています。 寒い冬はMacBook Proで暖を取りましょう(?) さて、本題に入りま…

AWS Amplify で Next.js 14 アプリを SSG(静的サイト)としてホスティングする [2023年11月版]

こんにちは、SaaS プロダクト開発部テックリードの丸山です。 2023 年 10 月 26 日に、Next.js の最新バージョンである Next.js 14 がリリースされました。 nextjs.org そこで早速、Next.js 14 で作ったウェブサイトを AWS Amplify でホスティングしようとし…

RunTask API を用いた ECS タスク実行時に気をつけたいこと4選

AWS

Amazon Elastic Container Service (以下、ECS) はコンテナ化されたアプリケーションのデプロイ、スケーリング、管理などを行うフルマネージドサービスです。AWS Fargate (以下、Fargate) は、Amazon EC2 インスタンスやサーバーを管理することなくコンテナ…

ChatGPTでファインチューニング (Fine-tuning) を試してみた

LLM

こんにちは、プラットフォーム技術部開発第2グループの李です。 最近AIサービスChatGPTがよく注目されます。米国時間2023年8月22日にOpenAIは、大規模言語モデル「GPT-3.5 Turbo」がFine-tuningに対応したと発表しました。 openai.com 今回、このFine-tunin…

再生プレイヤーの UI 改修でアニメーションとグラデーションの実装に試行錯誤した話

こんにちは、SaaSプロダクト開発部の田澤です。フロントエンドをメインに、再生プレイヤーの開発を行っています。 今回は、当社動画配信プラットフォームの一つであるULIZAの、プレイヤーUI改修にて試行錯誤した話をさせていただこうと思います。 プレイヤー…

Node.jsのStream APIを使用してAmazon S3の大きなオブジェクトを少ないメモリ消費量で圧縮する

クラウドサービスを使用しているとメモリやストレージを節約したくなりますよね? 今回はそんな節約に役立つNode.jsのStream APIについてです。Java等にもStreamはありますが、全くの別物です。AWSのSDKと組み合わせて、S3からダウンロード、圧縮してアップ…

GitHub Enterprise ServerのログをAmazon S3へ転送してAthenaで確認できるようにしてみた

AWS

こんにちは、ソリューション技術部の藤原です。 弊社ではAWSでGitHub Enterprise Serverを運用しているのですが、監査等のためログを一定期間保存するようにしています。 今回はGitHub Enterprise ServerのsyslogをLogstashを使ってS3に保存し、Athenaで確認…

動画データの世界への基礎概論

こんにちは。クラウド推進技術部の山田です。 昨今、動画配信は、生活の一部になるほど身近になっています。 YouTubeの動画、ストリーミングサービスの映画、SNSの投稿動画、Webサイトの動画広告など、ブロードバンドやスマホが普及し、今や外で動画を見るこ…

sidekiq の本番運用を始める前に注意すべきポイント

こんにちは、LOGICAプロダクトグループの篠原です。 先月末に約10年振りにARMORED COREの新作が出ました。 以前からAC乗りはやっていたので久しぶりにコントローラーを持ち3周目まで完了した感想ですがやはりハイスピードメカバトルはよい物です。 閑話休題…

iOS デバイスに接続した外部ディスプレイに対して別の画面を表示させる方法について調べてみた

iOS

はじめまして、ソリューション技術部の伊藤です。 今携わっているプロジェクトで、iPhone/iPadをHDMIケーブルを使って外部ディスプレイと接続した時に iPhoneと外部ディスプレイで別の画面を表示してほしいという依頼があり、実際に開発した内容をまとめてい…

G.I.G. で Google Cloud 認定の Professional Cloud Developer を取得しました

こんにちはソリューション技術部の中山です。 この度、Google Cloud 主催の G.I.G. Japan プログラム 第 6 期に参加させていただき、無事 Google Cloud Professional Cloud Developer 認定資格を取得し、修了することができました。 プログラム内容や、私が…

【入門編】いつかどこかで使えるかもしれない FFmpeg コマンドの紹介

みなさん、こんにちは。ソリューション技術部の叶です。 今回は、FFmpeg に関するテックブログをお届けします。 PLAY の開発において、動画ファイルは、とても重要な役割を果たしています。私は日々、FFmpeg で生成した動画ファイルを使い、開発や検証をして…

字幕の不具合で WebKit にバグレポートを出した顛末記

こんにちは、クラウド推進技術部開発第1グループの石川です。 フルスタックエンジニアとして、システムプログラミングからWebプログラミングまで幅広く手を出していますが、最近は機械学習が加わりました! 生成AIや、画像認識、超解像などのモデルも組める…

Pulumi AIでAWS Media Servicesを使用したライブ配信環境は作成できるのか?

こんにちは。プラットフォーム技術部開発第2グループの村井です。 最近ではAWS CDKやTerraformなどのInfrastructure as Code(IaC)ツールを使ってインフラをコードで管理することも珍しくないですよね。 今回はIaCツールの一つ、Pulumiのコードを今流行りの…

視聴動向データの分析基盤を Redshift から Snowflake に乗り換えた話

こんにちは、SaaS プロダクト開発部テックリードの丸山です。さて今回は、少し前の話にはなりますが、昨年実施した視聴動向データの分析基盤のリニューアルプロジェクトについてご紹介したいと思います。視聴動向データとは、誰が、いつ、どこで、どの動画を…

Amazon GuardDutyとAmazon Inspector:AWSセキュリティにおける継続的な監視と診断

プラットフォーム技術部のアーロンです。AWSのセキュリティサービスであるGuardDutyとInspectorについて紹介します。 これらのサービスは、AWS環境におけるセキュリティの監視と評価を支援するための強力なツールです。GuardDutyは、マルウェアの検出、不審…

弊社テックブログのリニューアルについて

ソリューション技術部 デザイングループでデザイナーをしている山本です。 今年の4月に他業界から転職し、社内で飛び交う聞き覚えのない単語にもやや慣れてきたかな?と感じているところです。 私の所属するPLAYのデザイングループは、社内外を問わずデザイ…

Amazon SESで学ぶメールのBounce(バウンス)とComplaint(苦情)

AWS

ソリューション技術部の杉嵜です。BMIが18.5付近で反復横跳びしています。 今回の題材はAWSのAmazon Simple Email Service(SES)で、その中でもバウンス(Bounce)と苦情(Complaint)について取り扱います。Amazon SESを利用することでメール送信に関する構…

GitHub Actionsを使ってプルリクエスト作成時に自動でRubocop + RSpecを実行する

こんにちは。LOGICAプロダクトグループの松本です。 GitHub Actionsを使ってlintツール"Rubocop"と単体テスト"RSpec"を実行する方法を紹介します。 概要 背景 GitHub Actionsとは 解説 name on jobs runs-on services uses: actions/checkout@v2 uses: ruby/…