PLAY DEVELOPERS BLOG

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

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

初心者必見! AWS の基礎をゲーム感覚で身につけられる AWS Cloud Quest のご紹介

AWS

初めまして 、ソリューション技術部の中西と申します。 エンジニアになり初めてAWSに触れることになった時、どこから勉強をすれば良いか分からない、実際に参考記事通りに操作をしてみようと思っても、注意として「時間単位でお金がかかります!終わったら消…

初心者が知るべき CORS の基本

こんにちは 、ソリューション技術部の木下です。 ベンチプレス100kgは上げられるものの105kgが一向に上げられず、減量中のせいだということにして、やり過ごしている日々です。きっと増量し始めたら上げられると信じています。 さて、CORSはWeb開発を行って…

大規模案件におけるReact Nativeでのスタイリング手法

最近新しい趣味を始めようと、前々から欲しかった車を買いました。 みなさんこんにちは、ソリューション技術部の隈本(クマモト)です。 今回は弊社でも新しい試みであるReact Nativeのお話です。 React Nativeを触ったことあるみなさんは、その中でもスタイリ…

YouTube, X, Instagram で OAuth 2.0 を実装してみた

こんにちは。プラットフォーム技術部第2グループの冷牟田です。 今回は、自社プロダクト開発を進める中でOAuth 2.0というものに触れました。いくつか実際に処理を実装したため、簡単にご紹介させていただきます。 OAuth 2.0について OAuthとは OAuth 1.0とOA…

字幕つきの動画配信を行おう

こんにちは。クラウド推進技術部の牧田です。 今回は、HLS での VOD 配信において字幕のつけ方をご紹介したいと思います。 はじめに 動画に字幕をつけるには 1. 字幕ファイルを用意する。 2. 字幕のメディアプレイリストに字幕ファイルを記述する。 3. マル…

AndroidTV・FireTV でアクティブ率を高めるために対応したい機能のご紹介

こんにちは、Androidアプリの開発を担当しているソリューション技術部の宮本です。 AndroidTV・FireTVのアプリは、スマホに比べると対応している数が少なくどういった機能に対応できるかあまり認知されていないと感じる場面があったので、一部機能を紹介させ…

多言語翻訳サービスの WOVN について調べてみた

こんにちは、SaaSプロダクト開発部第1開発グループの平原です。 最近テイルズオブヴェスペリアをプレイしましたが、なんと開始時に日本語/英語が選べるんです。そんな15年以上前のゲームに思いを馳せつつ、今回は多言語翻訳について話します。 今回は開発の…

AWS CDK を使ってみよう

AWS

こんにちは、SaaSプロダクト開発部の村山です。 業務でAWS CDKを使って環境構築を行う機会がありましたので 、今回はAWS CDKの紹介をしていきます。 AWS CDKとは? AWS CDKの構造 アプリケーション スタック コンストラクト やってみる 準備 VPCの作成 Lambd…

ユーザーフレンドリーなシェル「fish」に乗り換えてみた

こんにちは、プラットフォーム技術部第一グループのワンです。 コマンドラインの世界って、ちょっと取っ付きにくいって思っていませんか?黒い画面にずらっと並ぶ白い文字… なんだか難しそうに見えますよね。でも、fishは、そんなコマンドラインに対するイメ…

Lambdaから外部サービスにリクエストする際のIPアドレスを固定した話

AWS

みなさまはじめまして。ソリューション技術部の岡田です。 年始に今年やりたいことを100個書き出したのですが、2ヶ月ほど過ぎた現在まだ6つしか達成できていない状況に若干の焦りを感じながら過ごしている今日この頃です。 さて今回はある開発にてAWS Lambda…

ファイアウォール機器のリプレース時に通信断が発生するケースについて

こんにちは、ソリューション技術部の平良です。 弊社で利用しているファイアウォール製品(以下、FW)にてEOSL*1の発表があり、機器自体のリプレースを行うべく事前検証を行った際に発生した事象についてご紹介します。 スイッチ*2などネットワーク機器を触…

Rubocop のコーディング規約をもとに読みやすいコードについて考えた

こんにちは。ソリューション技術部OTTサービスソリューション統括部LOGICAプロダクトグループの田上です。 最近、チームリーダー的な立場でソースコードレビューすることも多く、また不具合発生などにより過去の処理を読み解くことがよくあります。 その際、…

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で確認…