Skip to content

[InstagramBridge] Carousel post videos have no audio (video-only DASH stream) #4973

@VBVerduijn

Description

@VBVerduijn

Describe the bug

For Instagram posts of type GraphSidecar (carousel posts) that contain
videos, the URL emitted in the <video><source> and <enclosure> points
to a video-only DASH stream. Playback is silent — the served MP4 has no
audio track. Single videos (Reels) are not affected: their video_url is
a progressive MP4 with audio and video muxed.

To Reproduce

Steps to reproduce the behavior:

  1. Generate two Atom feeds against any RSS-Bridge instance — one user who
    posts mostly Reels, another who posts carousels with videos. Examples:
    • ?action=display&bridge=InstagramBridge&context=Username&u=jetvdsteen&media_type=all&direct_links=on&format=atom (Reels)
    • ?action=display&bridge=InstagramBridge&context=Username&u=froknroll&media_type=all&direct_links=on&format=atom (carousels with video)
  2. From the carousel feed, take the <source src="..."> URL of any
    carousel-video entry and URL-decode it.
  3. Open that URL directly in a browser tab or in VLC. The video plays
    silently.
  4. Do the same with any Reel URL from the first feed — it plays with
    audio.

Expected behavior

Carousel-post videos should play with audio, like Reels do.

Screenshots

N/A — this is an audio bug; nothing visible to screenshot. The relevant
artefact is the URL itself. Comparison of the two video_url values:

  • Reel (audio works): vencode_tag=xpv_progressive.INSTAGRAM.CLIPS.C3.720.dash_baseline_1_v1,
    vi_usecase_id=10099. The base64-encoded _nc_vs parameter references
    both ..._video_dashinit.mp4 and ..._audio_dashinit.mp4; the
    served file is muxed.
  • Carousel item (silent): vencode_tag=xpv_progressive.INSTAGRAM.CAROUSEL_ITEM.C3.720.dash_baseline_1_v1,
    vi_usecase_id=10146. _nc_vs references only
    ..._video_dashinit.mp4. The audio track lives at a separate URL not
    surfaced via video_url.

Desktop (please complete the following information):

N/A — reproduces independent of client. Verified by opening the
video_url directly in Firefox on Windows 11 and in VLC; both play the
carousel video silently.

Smartphone (please complete the following information):

N/A — same as above. This is a server-side bridge output bug, not a
client rendering issue.

Additional context

In bridges/InstagramBridge.php, both the carousel and single-video code
paths read $singleMedia->video_url / $mediaInfo->video_url. The bridge
is faithful to what Instagram returns — Instagram simply uses different
delivery formats per post type: a muxed progressive MP4 for Reels, a
video-only DASH segment for GraphSidecar items.

Related: #1361 enabled video rendering for GraphSidecar carousel posts
in the first place; this bug is downstream of that — videos render now,
but without audio.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Bug-ReportConfirmed bug report

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions