"""canonical source webpage URL on media assets Revision ID: 0043_asset_source_url Revises: 0042_download_links Create Date: 2026-07-04 Stores yt-dlp's canonical `webpage_url` for a download's source, so the Downloads page can show a clean "downloaded from" reference (copyable + openable). Nullable — filled by the worker on extraction; existing/queued rows fall back to a URL derived from source_kind+source_ref. """ from typing import Sequence, Union import sqlalchemy as sa from alembic import op revision: str = "0043_asset_source_url" down_revision: Union[str, None] = "0042_download_links" branch_labels: Union[str, Sequence[str], None] = None depends_on: Union[str, Sequence[str], None] = None def upgrade() -> None: op.add_column("media_assets", sa.Column("source_webpage_url", sa.Text(), nullable=True)) def downgrade() -> None: op.drop_column("media_assets", "source_webpage_url")