**Show HN:**  
私は16年ぶりにVideo.jsを取り戻し、再構築してサイズを88%削減しました。

2026/03/25 3:03

**Show HN:** 私は16年ぶりにVideo.jsを取り戻し、再構築してサイズを88%削減しました。

RSS: https://news.ycombinator.com/rss

要約

Japanese Translation:

## Summary

Video.js v10.0.0 beta は 2026年3月10日にリリースされ、Video.js、Plyr、Vidstack、および Media Chrome の完全な書き直しとして登場しました。既に75kのGitHubスターと毎月数十億回の動画再生を誇るエコシステムです。この新バージョンは **デフォルトバンドルサイズを約88 %削減** し、圧縮前の最小化済みHTMLプレイヤーを260 kBから97 kB(gzippedでは25 kB)に短縮します。さらに、デフォルトビルドからアダプティブビットレートサポートを除外することで **コード量を追加で66 %削減** しています。

重要なアーキテクチャの変更点は、**State、UI、および Media をオプションコンポーネントに分離** したことです。開発者は `createPlayer` に機能配列を渡すことで、必要なものだけを含めることができます。ベータ版では二つのスキン―フロスト(凍った外観)とミニマルクリーン―を提供し、それぞれに洗練されたコントロール、アニメーション、および新しいエラーダイアログがあります。

リリースには軽量な **SPF (Streaming Processor Framework)** エンジンが導入されました。単純なHLS使用時は **HLS.js‑light の12 %程度** で済みます。実際に、v10 + SPF を HTMLプレイヤーに組み込むと、144.6 kB(minified)/38.7 kB(gzipped)、単体のSPFエンジンは38.5 kB(minified)/12.1 kB(gzipped)となり、hls.js などの従来のエンジンよりも遥かに小さくなります。

デフォルトでは **3つのプリセット** が用意されています:default video、default audio、および background video(コントロール/オーディオなし)。API はまだベータ段階で、基本的な再生、字幕、複数形式をサポートしていますが、設定メニューは未実装です。

将来のマイルストーンとしては **2026年中頃のGA**(完全機能同等)と、その後に広告サポート、レガシープロジェクト向けの移行ガイドがあります。コードベースは意図的に **AI‑フレンドリー** であり、スタイルなしUIプリミティブ、`llms.txt` ナビゲーション、LLM向け Markdown ドキュメント、および拡張中の AI スキルリポジトリを提供しています。

開発者にとって、このベータ版は React、TypeScript、Tailwind、または AI ワークフローとの統合がスムーズな、より軽量な動画体験を実現します。ロード時間、帯域幅コスト、およびウェブ動画エコシステム全体での統合作業を削減します。

本文

2026年3月10日 – 読了時間14分

本日は Video.js v10.0.0 ベータ版のリリースを発表できることに大変喜びを感じています。これは、Video.js([ディスカッション])だけでなく、Plyr、Vidstack、Media Chrome の再設計も含めた、相当規模のゼロからの書き直しの結果です。Web 動画に対して熱意を持つオープンソースプロジェクトと開発者が集結し、合計 75,000 件以上の GitHub スターと毎月数十億回の再生を誇る珍しい協業でした。

私は16年前に Video.js を構築した際、Flash から HTML5 動画への移行を支援するためでした。その後、多くの方々のおかげで大きく発展しましたが、コードベースと API は時代遅れなままでした。今回の再設計は、現代の開発者に合わせてプレイヤーをモダナイズし、AI 連携機能への次なる大規模移行の土台を築きます。

主な取り組み点は以下です:

  • バンドルサイズの縮小 – デフォルトバンドルが 88 % 軽量化
  • 選択したフレームワーク(React、TypeScript、Tailwind)で親しみやすいカスタマイズを実現
  • 「どうしてこんなに美しくできたの?」と驚くようなデフォルト UI を提供
  • AI エージェントがプレイヤー構築時に共に作業できるよう設計されたコードベースとドキュメント

従来の Web メディアプレイヤーとは異なる動作ですが、実際に開発する感覚にはより馴染みやすくなっています。


バンドルサイズ

現在のビデオプレイヤーで最も不満が多い点はファイルサイズです。1 MB 程度に minify され、gzip だと数百 KB。従来のプレイヤーはスマートバンドラーやツリーシェイキングなどの技術が登場する前に構築されたため、大きくなりがちです。

プレイヤーMinified (kB)Gzip (kB)備考
Video.js v8(コア)260.575.2
Vidstack237.474.1
Media Chrome175.541.3
Plyr109.832.6
Video.js v10 Video Player [HTML]97.425.1
Video.js v10 Audio Player [HTML]85.823.0
Video.js v10 Video Player [React]62.018.0
Video.js v10 Audio Player [React]49.215.2
Video.js v10 Background Video [HTML]22.26.9
Video.js v10 Background Video [React]10.73.5

v10 のデフォルトプレイヤーは、前バージョンのデフォルトに比べ 88 % 軽量です。主な節約効果は Adaptive Bitrate(ABR)サポートを分離したことによるもので、以前は

video.js/core
からインポートしていた機能です。ABR を除けば、v10 のデフォルト HTML プレイヤーは 66 % 軽量化しています。


エンジンサイズ

ストリーミングエンジンは HLS/DASH に対応し、マニフェスト解析・セグメント読み込み・バッファ管理・ABR ロジック・コーデック検出・MSE 統合・DRM・サーバー側広告などを担当します。従来のエンジンはモノリシックです。

Video.js v10 では SPF(Streaming Processor Framework) を導入しました。これは機能コンポーネントで構成され、目的に合わせて小さくまとめられたストリーミングエンジンを作るフレームワークです。単純な HLS 使用例では、SPF を用いた v10 は ABR を含む v8 のファイルサイズの 19 % にしかならないほど軽量です。

エンジンMinified (kB)Gzip (kB)備考
Vidstack + HLS.js764.3238.1
Media Chrome + HLS.js701.2202.9
Video.js v8 + VHS*697.0202.7*VHS はデフォルトでバンドル
Plyr + HLS.js614.0188.5
Video.js v10 + HLS.js526.5164.1
Video.js v10 + SPF [HTML]144.638.7
Video.js v10 + SPF [React]107.331.6
v10 Background Video + SPF [HTML]61.218.9
v10 Background Video + SPF [React]49.215.6

SPF 組み合わせエンジンは、単純な Adaptive Streaming(HLS)に必要なものだけを含むため、

hls.js-light
のファイルサイズの 12 % にすぎません。その他のエンジン(dash.js, Shaka, hls.js)は大きく、一般的なユースケースで SPF を置き換えることは想定していません。


最小例

React だけで「hello world」のビデオと再生ボタンを作るコードは gzip <5 kB に収まります。プレイヤーのインフラは極めてシンプルですが、カスタムプレイヤーへの拡張も容易です。

Video.js v10 は State・UI・Media をそれぞれ独立したコンポーネントに分離し、API コントラクトで通信します。各コンポーネントは任意で置き換え可能です。音声が不要ならボリューム/ミュートコードはバンドルされません。UI コンポーネントをインポートしなければ、それもバンドルに入らない設計です。


UI カスタマイズ

v10 ベータ版には、以下のような洗練されたスキン(コントロールセット)がデフォルトで搭載されています:

  • Default skin – 霧がかった美しい外観
  • Minimal skin – 開発者向けにクリーンに設計

両方とも Base UI と Radix に触発されたスタイル未設定 UI プリミティブを用い、各コンポーネントは単一の HTML 要素で出力されるため、直接制御が可能です。任意のスキンをエクスポートすれば、フレームワーク固有言語で完全なソースコードを取得できます ― 本当に自分だけのコンポーネントとして所有・変更できる形です。

デザインは最優先事項です:Plyr の創設者 Sam Potts が新スキンを設計し、洗練されたコントロール、滑らかなインタラクション、思慮深いアニメーション、およびエラーダイアログの統一感を実現しました。


ユースケース別プリセット

プリセットは特定ユースケース向けにスキン・機能・メディア設定をまとめたものです:

  1. Default video preset – 一般的なウェブサイト用ビデオ
  2. Default audio preset – 音声タグ置換
  3. Background video preset – レイアウトのみ、コントロールや音声なし

これらのプリセットを使えば、すぐに構築できる一方で完全なコンポジション柔軟性も残せます。


AI への焦点

ベータ版は Video.js ベースプレイヤーを AI と共に作る体験を重視しています:

  • 抽象化の少ないコンポーネントとスタイル未設定 UI プリミティブ
  • llms.txt
    によるドキュメントの効率的ナビゲーション(フレームワーク別)
  • すべてのドキュメントを Markdown バージョンで取得可能 (
    Accept: text/markdown
    )
  • リポジトリ内に AI スキルが増設され、構築支援を行います

ベータ版の試し方

  • API はまだ安定しておらず、GA までインターフェースは変更される可能性があります。
  • 機能は限定的です – シンプルなウェブ再生、字幕、多数フォーマット・ストリーミングサービスを想定しています。設定メニューなどはまだ実装途中です。
  • フィードバックが不可欠です。GitHub で issue を報告し、Discord に参加して動作確認や不具合を共有してください。

新しいプロジェクトを始める際は videojs.org で v10 を試してください。既存バージョンを本番環境で運用中の方は、マイグレーションガイドに注目していただければ幸いです。


ロードマップ(2026年半期 GA)

  • Plyr、Vidstack、Media Chrome との機能同等化
  • 2026 年後半に広告サポートを計画
  • Video.js v8、Plyr、Vidstack、Media Chrome 向けマイグレーションガイド
  • より多くのプレイヤープリセットを追加

謝辞

@cpilsbury, @decepulis, @esbie, @luwes, @mihar‑22, @sampotts, @claude, @dhassoun, @essk, @ewelch‑mux, @gesinger, @gkatsev, @kixelated, @littlespex, @mister‑ben, @misteroneill, @muxinc, @brightcove, @qualabs など、貴重なご協力をいただいた皆様に感謝します。

あなたがビデオプレイヤーへの愛着を再び深めることを心から楽しみにしています ❤️

それでは、
@heff

同じ日のほかのニュース

一覧に戻る →

2026/03/25 0:29

Appleビジネス

## Japanese Translation: > **Apple Business ― デバイス管理と広告を統合したプラットフォーム** Apple は 4 月 14 日に、200 以上の地域で *Apple Business* を開始し、Apple Business Essentials、Apple Business Manager、および Apple Business Connect を置き換えます。新しいオールインワンソリューションは、組み込み型モバイルデバイス管理(MDM)と「Blueprints」を統合し、ゼロタッチ展開、自動化された Managed Apple Account の作成、従業員グループ/役割管理、アプリ配布、および Admin API を提供します。さらに、ビジネスメール、カレンダー、ディレクトリサービス、カスタムドメインサポート、iOS 26+、iPadOS 26+、macOS 26+ 向けの Apple Business アプリも付属しています。 既存顧客のデータは自動的に移行されます。 Apple Business は米国とカナダで Apple Maps 上の広告を追加(今夏開始)し、検索結果の上部および Suggested Places に表示される広告は明確にラベル付けされて透明性を保ちます。このプラットフォームには、Apple Business Connect のブランドプロファイルとロケーション機能が組み込まれており、リッチプレイスカード、ショーケース/カスタムアクション、ロケーションインサイト、ブランデッドコミュニケーション、および Tap to Pay ブランド化が含まれます。 コアサービスは全世界の新規ユーザーと既存ユーザーに対して無料で提供されます。有料オプションとして、最大 2 TB の iCloud ストレージ($0.99/ユーザー/月)と AppleCare+ for Business(デバイスあたり $6.99 またはユーザーあたり $13.99/月)が利用可能です。ゼロタッチ展開は、Apple または認定販売業者から購入したデバイスで利用でき、プライバシーモデルではユーザーの位置情報と広告インタラクションデータを Apple アカウントから分離し、オンデバイスに保存され、第三者と共有されません。

2026/03/25 6:24

害虫駆除向けの垂直型 SaaS を構築したいと思ったので、技術者として働くことにしました。

## Japanese Translation: (主要ポイントをすべて組み込む)** 著者は30 億ドルのTAMと強固な継続収益性が見えたため、害虫駆除業界へ転職しました。彼は業界最大手グループの子会社に採用され、即座にローカルブランド全体で**数十億ドル規模の売上を担当**しました。13日という記録的な期間で集中的な学習・セミナー・試験・監督付きトラック時間を経てライセンスを取得しました。 現場業務では、典型的な物流上の課題に直面しました:バッテリーがフラット、燃料カードが5週間以上遅れ、経費精算が遅い。会社のコアシステムは高度にカスタマイズされたSalesforce環境であり、オンボーディングには10個以上のモバイルアプリが必要でした。彼はトラックアイドリング、GPS、訪問時間、電話活動を通じて技術者のパフォーマンスを監視しました。最初は厳格な監視に抵抗したものの、結局は従事しました。 現場での成功により、彼は上級技術者を追跡し正式なトレーニングなしに小規模アップセルを実行したことから「潜入ボス」というニックネームを得ました。その後セールスへ転身し、アウトバウンドワークフローを構築して21日で24 k ARR契約(さらに小規模なアップセル)を確保しました。しかし、内部見積もりプロセスが複数署名と新規アカウント作成を必要とするため手間がかかり、取引損失のリスクがあることに気付きました。 セールスチームは10年以上の経験を持つベテラン担当者で構成されており、それぞれ800k–1.2M ARRを生成し低いチャーン率を維持しています。彼らの文化は変化に抵抗が強く、エグジットインタビュー後、マネージャーから自分自身の会社を立ち上げるよう提案されました。 今後、著者はローカルニッチオペレーターを取得し、専用ツールを開発し、見積もり・オンボーディング・監視を統合したスケーラブルなプラットフォームを構築する計画です。このモデルにより現場技術者とセールス担当者の効率が向上し、チャーンが減少し、収益獲得が加速し、害虫駆除業界で競争力のダイナミクスが変わる可能性があります。

2026/03/24 21:06

HNに知らせてください:PyPI 上の Litellm 1.82.7 と 1.82.8 が改ざんされていること。

## 日本語訳: > PyPI の wheel **`litellm==1.82.8`** には、悪意のある `.pth` ファイル(`litellm_init.pth`、34 628 バイト)が含まれており、このファイルは `litellm` をインポートしなくても、Python インタープリターが起動するたびに自動的に実行されます。 > 隠されたスクリプトは二重 Base64 エンコードされたペイロードを実行し、ホストから認証情報(SSH キー、クラウドプロバイダーのクレデンシャル、Git の設定、Docker 設定、データベースパスワード、暗号ウォレットの秘密鍵など)を収集します。取得したデータは一時ファイルに書き込まれ、その後ランダムな AES‑256 キーで暗号化されます。AES キー自体はハードコードされた 4096 ビット公開鍵(キーは `MIICIjANBgkqhkiG9w0BAQEFAAOCAg8A...` から始まります)を使って RSA 暗号化されています。 > 暗号化されたアーカイブ(`tpcp.tar.gz`)は **`https://models.litellm.cloud/`** に POST されます。 > この脆弱性は **2026‑03‑24** に、Ubuntu 24.04 の Docker コンテナで Python 3.13 を実行している環境で発見され、影響を受けたのはバージョン 1.82.8 だけが確認されています(他のリリースも脆弱になっている可能性があります)。 > PyPI 管理者はこの wheel を直ちに削除または取り下げるべきです。`litellm==1.82.8` をインストールしたユーザーは、`site‑packages/` 内の怪しい `.pth` ファイルを確認し、漏洩した認証情報をローテーションし、CI/CD パイプラインが侵害されていないか監査してください。この脆弱なバージョンを使用していたシステム(ローカル開発マシン、Docker コンテナ、本番サーバー、自動ビルドシステムなど)は、多数の組織にわたる幅広い秘密情報が漏洩した可能性があります。