1. Pinterest ビデオピンは画像ではありません: ピン CDN の内部
Pinterest のブックマーク サイトからビデオ中心のディスカバリー プラットフォームへの移行は静かに行われ、そのツールに関する前提条件のほとんどが追いつくことはありませんでした。 pinterest.com 上のビデオ ピンは、ポスター属性を持つ HTML5 ビデオ要素としてレンダリングされます。石積みのグリッドに表示される JPEG は文字通りポスター フレームで、移動するコンテンツは v.pinimg.com および v1.pinimg.com ホストの下で Pinterest の専用ビデオ CDN でホストされている MP4 (または DASH レンディション セット) であり、人々がサイトに関連付けている i.pinimg.com 画像ホストとは完全に別のものです。
ピンのデータ モデルにより、分割が明示的に行われます。各ピン オブジェクトには、レンディションによってキー設定された video_list を持つビデオ サブオブジェクト (HLS ラダーの V_720P や V_HLSV4 などのエントリ) が含まれており、それぞれが署名付き CDN URL を指します。標準解像度、高解像度、およびアダプティブ エントリが共存し、どれが再生されるかはビューポートによって異なります。すべてのダウンローダー ツールが取得する画像サブオブジェクトはそのすぐ隣にあり、静的なレンディションのみが含まれています。これが、単純なツールがビデオ ピンに対して JPEG を返す理由です。つまり、オブジェクトの間違ったブランチを読み取っているのです。
一方、Pinterest 独自の [保存] ボタンは、ピンをボードの 1 つに保存します。これは、ディスク上のファイルではなく、Pinterest 内のブックマークです。ビデオ ピンからローカル MP4 へのプラットフォーム内パスは存在しません。これは、信号のないワークショップでオフラインで利用できるようにしたいクラフト チュートリアル、動作中のレシピ、トレーニング デモンストレーション、デザイン リファレンスなどに Pinterest を使用する人々にとって、真のギャップです。
抽出の洞察は Instagram のものを反映しています。署名された video_list URL はセッションに対して発行されたため、セッション内で検証されます。ローカル抽出では、ピン オブジェクトを読み取り、最高解像度のエントリを選択し、タブの資格情報を使用してそれをフェッチします。リンクを貼り付ける仲介者が関与したり、ポスター フレームで失望したりすることはありません。
2. 「名前を付けて画像を保存」するとポスターフレームが表示される理由 (およびその他の失敗モード)
Pinterest で最も一般的なダウンロードの失敗は、右クリックの罠です。再生中のビデオ ピンを長押しまたは右クリックし、保存オプションを選択すると、デバイスに保存されるのは静的な JPEG です。これはブラウザのバグではありません。仕様に記載されているとおりに動作しているのは、poster 属性です。ブラウザーにはメディア要素のコンテキスト メニューのポスター画像が表示されますが、Pinterest の UI レイヤーは実際のビデオ要素を扱いにくいターゲットにします。表示されているビデオ タグのクエリに依存する一般的なビデオ ダウンローダー拡張機能は、関連する理由でほとんどのピンを見逃します。Pinterest の仮想化グリッドはスクロールするとピン カードをマウントおよびアンマウントするため、ワンショットの document.querySelectorAll('video') は現在レンダリングされている 3 つのピンのみをキャッチします。
短いリンクは 2 番目の障害モードです。 Pinterest トラフィックの大部分は、pin.it URL (正規のピン パスに到達する前にリダイレクター サービスを通じてリダイレクトされる共有シート短縮機能) を通じて到着します。 Web ダウンローダー サイトの処理には一貫性がありません。リダイレクトに完全に失敗するサイトもあれば、PIN の地域バリアントに解決されてリージョン ブロックされたエラーを返すサイトもあれば、正しく解決されるものの、キャッシュされた低解像度のコピーを提供するサイトもあります。リダイレクト チェーン自体は無害です。ツールはそれをうまく実装していないだけです。
3 番目の失敗モードは GIF の混乱です。 Pinterest には、ユーザーが GIF と呼ぶループ コンテンツが多数あり、実際にはそのほとんどすべてがループに固定された MP4 ビデオです。MP4 ループは帯域幅の一部であるため、Pinterest は何年も前に GIF アップロードをビデオ レンディションに変換しました。サードパーティの変換サイトから「GIF」を保存するということは、そのサイトが MP4 を取得し、多くの場合それを実際のアニメーション GIF 形式に再ラップし、3 MB の MP4 を色の忠実度が劣る 40 MB の GIF にバルーン化することを意味します。ほとんどの場合、必要となるのは MP4 そのものです。
セッション認識解像度によるローカル抽出は、次の 3 つすべてを処理します。検出器はピンのマウント時にグリッドを継続的に観察し、タブ内の pin.it チェーンを解決し、ポスターではなく MP4 をプルします。
3. pin.it リンクを含む HD でのビデオ ピンのダウンロード
Video Downloader Bundle がインストールされているワークフローは、ピンを 1 回クリックするだけです。 Pinterest を開いて、ホーム フィード、検索結果、特定のボード、クリエイターのプロフィールなどを通常どおり閲覧します。拡張機能のディテクタは MutationObserver をグリッドにアタッチするため、ビデオ ピンは、ホーム フィードの最初の行であろうと、キルティング アーカイブの深いスクロールの 40 番目のピンであろうと、ビューポートにマウントされた瞬間にダウンロード ボタンを取得します。ボタンをクリックすると、アダプターはピンのビデオ オブジェクトを読み取り、解像度別に video_list エントリを並べ替え、セッションを通じて上位の MP4 レンディションを要求して、署名が検証されるようにします。ファイルは数秒以内にダウンロード フォルダーに配置され、ピンの説明と ID に基づいた名前が付けられます。
pin.it リンクは、非常に多くのリクエストが短いリンクとして届くため、もう 1 回説明が必要です。誰かが pin.it URL をメッセージで送信した場合、それをブラウザで開くと正規の pin ページに移動し、そこから通常のボタン ワークフローが適用されます。短いリンクをどこにも貼り付ける必要はありません。ブラウザは Cookie を使用してリダイレクトを実行し、解決されたページで抽出が行われます。このタブ内解像度は、リージョン バリアントが動作する理由でもあります。つまり、データセンターからのプロキシ サーバーとしてではなく、リージョンから自分自身としてダウンロードしていることになります。
正直に述べた解像度の期待値: Pinterest ではビデオ ピンをほとんど 720p で提供しており、一部の 1080p ソースも提供しています。 CDN が保持する最高のレンディションが 720p である場合、これが上限であり、どのツールもプラットフォームに保存されているものを超えることはできません。作成者自身が控えめなソースをアップロードしているため、レシピとチュートリアルのピンは 480 ~ 540p でアップロードされることがよくあります。
MP3 抽出は、曲の識別クリップや、運転中に聞きたい音声チュートリアルなど、オーディオが重要なピンにも適用されます。デマルチプレクサはローカルで行われ、MP3 は損失の多い 2 回目のパスを介してトランスコードするのではなく、ソース オーディオ ビットレートを保持します。
4. オフライン参照用にボードをバッチアーカイブする
Pinterest の本当のパワー ユーザー ベースは閲覧するのではなく、キュレーションするのです。ウェディング プランナー、インテリア デザイナー、コスプレイヤー、教師、木工職人、シェフは、何年にもわたって蓄積された数百のピンを備えたボードを管理しています。その投資に対するプラットフォーム独自の輸出ストーリーは存在しません。あなたのボードは Pinterest のクラウドに存在します。ショップ アカウントが停止される前、またはボードが誤って削除される前に 400 ピンのリファレンス ボードを構築したクリエイターは、多くを失ったことになります。オフライン アーカイブは、プラットフォームのリスクに対する合理的な対応です。
バッチ ダウンローダーはボードおよびプロファイル レベルで動作します。保存したいボードを開き、「すべてダウンロード」をトリガーします。アダプターは、ボード ビューに存在するすべてのビデオ ピンを列挙します。Pinterest はマウントされたカードのみをレンダリングするため、拡張機能は表示される DOM ではなくデータ レイヤー全体を歩き、それぞれを解像度メタデータとともにキューに入れます。キュー プロセッサは、レート制限しきい値を下回るようにリクエストのペースを調整し、進行状況モーダルでアイテムごとのステータスを追跡し、一時停止して再開した場合に完了したアイテムを再ダウンロードせずに一時的なエラーを再試行します。
本当に大きなボードの場合、実用的なヒント: ボードのビデオ ピンが数百を超える場合は、アーカイブを座って実行し、ローカルの進行状況トラッカーが再開時に重複を除去できるようにします。写真とビデオを組み合わせた混合ボードでは、両方のファイル タイプが生成されます。ビデオは同じパイプラインを通過し、画像は i.pinimg.com ソースからフル解像度で直接フェッチされるため、実行が完了すると、ビデオのサブセットだけでなく、ボード全体がファイルとして得られます。
ファイル構成は、アーカイブとジャンク ドロワーの違いです。ボードごとに名前を付け、タイトルを固定し、シンプルなマニフェストを保持します。拡張機能のローカル ダウンロード履歴は、拡張機能を再構築するためのメタデータを提供します。この方法で競合ボードをアーカイブするデザイナーは、Pinterest が提供していない 2 番目の利点を得ることができます。プラットフォームやアカウントに何が起こっても、リファレンス ライブラリはオフラインでも完全に検索可能で、自分のファイル ツリー内に残ります。
5. 帰属、フェアユース、およびクラフトフェア経済
Pinterest のコンテンツ エコシステムには独特のしわがあります。ほとんどのピンはリピンの繰り返しであり、オリジナルの作成者は、あなたが見ているピンから 3 ホップ離れたところにいることがよくあります。この階層的な来歴により、Pinterest では他の主要なプラットフォームよりも帰属がずさんになり、再利用の倫理が誤解されやすくなります。ワークショップでオフラインでフォローできるようにビデオ チュートリアルを保存することは、明らかに個人的な使用です。同じチュートリアルを自分のボードに再投稿し、リピン チェーンによって作成者の名前が埋もれるのは、プラットフォーム上の作成者が常に不満を訴える低級の帰属の低下です。
ビジネス アカウントを運用しており、マーケティング調査、クライアント作業のためのムードボード、競合分析など、商用目的で使用する場合、保持すべき境界線は内部使用と外部公開です。あなた自身のオリジナルの作品を知らせるアーカイブされた参考資料は、業界の標準的な慣行です。自分のマーケティングで他人のビデオ コンテンツを許可なく再公開することは禁止されており、Pinterest の著作権報告フローでは、他の場所と同じ DMCA 機構を使用してこれを処理します。このシリーズのすべてのプラットフォームで通用する実践的な経験則: ディスク上のファイルは、ダウンロードした瞬間から個人的な成果物であり、法的に興味深いことはすべて、それを共有した瞬間に起こります。
作品をアーカイブするクリエイターにとって、エコシステムを健全に保つ習慣が 1 つあります。保存された参考資料が、公開するもの (テクニック、レシピ、デザインの方向性など) を実質的に形作るとき、クレジット内のオリジナルのピンまたはクリエイターのプロフィールをリンクします。これには 1 行のテキストが必要ですが、それがアーカイブと価値の抽出のまったくの違いになります。
また、ビデオ ダウンローダー バンドルのすべてのプラットフォームと同様に、抽出はセッション内で、既に表示されているコンテンツに対して実行され、マシン上にすべてのバイトが残ります。ツールのジョブはダウンロード フォルダーで終了します。そこから何をするかが、あなたを定義する部分になります。