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:
- 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)
- From the carousel feed, take the
<source src="..."> URL of any
carousel-video entry and URL-decode it.
- Open that URL directly in a browser tab or in VLC. The video plays
silently.
- 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.
Describe the bug
For Instagram posts of type
GraphSidecar(carousel posts) that containvideos, the URL emitted in the
<video><source>and<enclosure>pointsto a video-only DASH stream. Playback is silent — the served MP4 has no
audio track. Single videos (Reels) are not affected: their
video_urlisa progressive MP4 with audio and video muxed.
To Reproduce
Steps to reproduce the behavior:
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)<source src="...">URL of anycarousel-video entry and URL-decode it.
silently.
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_urlvalues:vencode_tag=xpv_progressive.INSTAGRAM.CLIPS.C3.720.dash_baseline_1_v1,vi_usecase_id=10099. The base64-encoded_nc_vsparameter referencesboth
..._video_dashinit.mp4and..._audio_dashinit.mp4; theserved file is muxed.
vencode_tag=xpv_progressive.INSTAGRAM.CAROUSEL_ITEM.C3.720.dash_baseline_1_v1,vi_usecase_id=10146._nc_vsreferences only..._video_dashinit.mp4. The audio track lives at a separate URL notsurfaced via
video_url.Desktop (please complete the following information):
N/A — reproduces independent of client. Verified by opening the
video_urldirectly in Firefox on Windows 11 and in VLC; both play thecarousel 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 codepaths read
$singleMedia->video_url/$mediaInfo->video_url. The bridgeis 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
GraphSidecaritems.Related: #1361 enabled video rendering for
GraphSidecarcarousel postsin the first place; this bug is downstream of that — videos render now,
but without audio.