پرش به مطلب اصلی

Playback & the player

StatusCurrent
OwnerAparat Product Team
Last verified2026-08-02 — Figma "AWD - Video Single", the single-video API mapping, the live product, and support-centre articles on sections, cards and playback

Part of the Video Single page. UI labels are given as an English gloss followed by the Persian string in quotes; the quoted Persian is authoritative — except for the word video, which this documentation always spells «ویدئو» even where the screen shows «ویدیو» (see the language note).

Introduction & Purpose

The player is the fixed center of the watch page — everything else is arranged around it. This page covers how a viewer plays and controls a video, the playback options (quality, speed, repeat, sound), the alternative view modes, navigation within the video via its sections, and how one video flows into the next through autoplay and the end card. It also covers the player's special states: a video that is still processing, the data-usage notice, the VPN notice, and the ads shown before and during playback.

Business goal: keep the viewer watching with a fast, reliable player and a frictionless path from one video to the next.

Scope

The player and its controls, the settings menu, view modes, video sections, the autoplay/next-video behavior, and the processing / data-usage / VPN / ad states. Actions rendered below the player (Like, Share, Save, Download, Report, comments, recommendations) are covered in the sibling sub-pages.

Out of scope: the standalone live-broadcast player (this page covers a saved video, including the saved recording of a live stream, which plays like any other video), and playback in the native or TV apps.

Audiences & Roles

Playback is identical for signed-out and signed-in viewers; nothing here is gated by account type. See the hub's roles.

Business Rules

  • BR-1 — Autoplay is on by default. The autoplay toggle («پخش خودکار») starts enabled; when a video ends the player advances to the next video after a short countdown unless the viewer turns it off or chooses to stay.
  • BR-2 — Next-video source. If the video belongs to a playlist, “next” follows the playlist order («ویدئو N از M»); otherwise it follows the channel/recommended queue. The destination is decided when the page loads, not when the video ends — the page is handed the next-video link up front.
  • BR-3 — Quality options. The quality menu («تنظیم کیفیت») defaults to Auto («خودکار (بر اساس سرعت اینترنت شما)» — auto by connection speed) and offers the renditions the video actually has, from 144p up to 1080p. Each is labelled با کیفیت {N}p and carries its file size, which is what the download list shows too (e.g. 144p ≈ ۱.۹۹ مگابایت, 1080p ≈ ۴۶.۵۲ مگابایت for a 102-second video). An HD badge appears on the player when an HD rendition is available.
  • BR-4 — Speed options. The speed menu («تنظیم سرعت») defaults to 1x and offers 0.5x, 0.75x, 1x, 1.25x, 1.5x, 1.75x, 2x.
  • BR-5 — Repeat and sound. The settings menu also exposes Repeat video («تکرار ویدئو») and Play sound («پخش صدا», on by default).
  • BR-6 — Subtitles. A video can carry a subtitle track; when it does, the player offers it in the settings menu.
  • BR-7 — Processing state. While a freshly uploaded video is still processing, the player shows «ویدئو در حال پردازش است» and the multiple playback qualities are not yet available: «کیفیت‌های مختلف پخش، پس از پایان پردازش در دسترس قرار می‌گیرند.» The view count is 0 («۰ بازدید»). (See Scenario 6.)
  • BR-8 — Ads. A skippable pre-roll video ad plays on load and a pause ad overlay can appear while the video is paused; both are served by Aparat's ad partner rather than by the page itself. The in-player ad slot is conditional — the design carries both an ad-present and an ad-absent state. A Close ad control («بستن تبلیغ») dismisses the overlay ad.
  • BR-9 — Data-usage notice. A notice states that traffic used on Aparat is billed at full price: «ترافیک مصرفی شما در آپارات به صورت تمام‌بها محاسبه می‌شود.»
  • BR-10 — VPN notice. When the viewer appears to be behind a VPN, the player surfaces «برای تجربه تماشای بهتر، فیلترشکن خود را خاموش کنید.»
  • BR-11 — End card. A suggestion card appears over the last seconds of the video: the creator chooses whether it shows for the final 10 or 20 seconds, and whether it suggests another video or following the channel. End cards are only available on videos longer than 60 seconds.
  • BR-12 — Video sections. A video can carry titled, timestamped sections («بخش‌بندی»). The uploader authors them as lines in the video's description in the form بخش N: title - m:ss; the watch page parses them from there and renders a chapter list («معرفی کوتاه» for the first one, «بخش‌های دیگر» for the rest), with a count badge («۸ لحظه»). There is no separate sections field or editor on this page.
  • BR-13 — Time format and progress reporting. Elapsed and total time use MM:SS (e.g. «۰۶:۲۵ / ۱۳:۲۸»). Watch progress is reported continuously to a tracking endpoint that is independent of the page load, which is what separates a view from watch time.
  • BR-14 — Controls are conditional. The player renders only the controls that apply: play, volume, seekbar, duration, quality, fullscreen, picture-in-picture, theater mode, autoplay, next video, replay, sections and cast are each independently switchable in the design. In the current design cast is off in every instance — treat it as not shipped on this surface until Product confirms otherwise.

Scenarios

Scenario 1: Watch a video and control playback

Purpose — the viewer plays the video and uses the on-player controls.

Roles Involved — all viewers (signed-in or guest).

Preconditions — the viewer has opened aparat.com/v/[video-id] and the video has finished processing.

Main Flow

  1. The page opens and a skippable pre-roll ad plays. → After a countdown, a Skip («رد کردن») control appears; a sponsored CTA (e.g. «تماشا کنید» / «خرید بلیت») is shown alongside.
  2. The viewer skips or waits, and the video begins. → The player shows the current section's title (e.g. «معرفی کوتاه»), an HD badge when available, and the time as MM:SS.
  3. The viewer uses the transport controls: Pause/Play («توقف» / «پخش»), −5s («۵ ثانیه قبل»), +5s («۵ ثانیه بعد»), Next video («ویدئو بعدی»), and Mute («بی صدا»). → The player responds immediately.
  4. The viewer opens Settings («تنظیمات»). → A menu titled «تنظیمات پخش کننده» (“player settings”) opens with Autoplay, Repeat video, Play sound, Quality, and Speed. (Quality and speed → Scenario 2.)
  5. The viewer switches view mode or enters Fullscreen («تمام صفحه»). → The player resizes (view modes → Scenario 3).

Extensions — Alternative & Exception Flows

  • 2a. The viewer pauses the video:
    • 2a1. A pause-ad overlay may appear over the paused frame (BR-8); the viewer dismisses it with Close ad («بستن تبلیغ»).
  • 2b. A data-usage notice applies to this video:
    • 2b1. The player surfaces «ترافیک مصرفی شما در آپارات به صورت تمام‌بها محاسبه می‌شود.» (BR-9).
  • 2c. The viewer appears to be behind a VPN:
    • 2c1. The player surfaces «برای تجربه تماشای بهتر، فیلترشکن خود را خاموش کنید.» (BR-10). Whether this only advises or also affects playback is unconfirmed — see Open Questions.
  • 2d. The video is still processing → see Scenario 6.
  • 3a. The video is loading/buffering: [CLARIFICATION NEEDED: a distinct buffering/loading state is not specified in the design.]
  • 3b. The viewer's connection is unstable: playback problems on Aparat are, per the support centre, most often attributable to the viewer's internet provider rather than to the page; no in-player diagnostic is offered.

Postconditions — the video plays under the viewer's chosen controls; one view is counted for the page load, and watch progress is reported separately (BR-13).

Scenario 2: Change playback quality and speed

Purpose — the viewer adjusts video quality and playback speed.

Roles Involved — all viewers.

Preconditions — the video is playing and has finished processing (multiple qualities exist).

Main Flow

  1. The viewer opens Settings («تنظیمات») and selects Quality («تنظیم کیفیت»). → The menu lists Auto («خودکار (بر اساس سرعت اینترنت شما)», selected by default) then the renditions the video has, lowest first: 144p, 240p, 360p, 480p, 720p, 1080p (BR-3).
  2. The viewer picks a quality. → Playback switches to it and the menu shows it as current.
  3. The viewer selects Speed («تنظیم سرعت»). → The menu lists 0.5x, 0.75x, 1x (default), 1.25x, 1.5x, 1.75x, 2x (BR-4).
  4. The viewer picks a speed. → Playback rate changes and the menu shows it as current.

Extensions — Alternative & Exception Flows

  • 1a. The video is still processing:
    • 1a1. Only a single/limited quality is available until processing completes (BR-7); the full list appears afterward.
  • 1b. The video was uploaded at a lower resolution:
    • 1b1. Only the renditions that exist are listed — the ladder is per-video, not a fixed set, and the HD badge is absent when no HD rendition exists.

Postconditions — the chosen quality and speed persist for the current playback.

Scenario 3: Use the view modes

Purpose — the viewer changes how large the player is on the page.

Roles Involved — all viewers (desktop primarily).

Preconditions — the viewer is on the watch page on a desktop-width screen.

Main Flow

  1. The viewer clicks Enter theater mode («ورود به حالت تئاتر»). → The player widens to a theater layout; the control toggles back to exit.
  2. The viewer clicks Fullscreen («تمام صفحه»). → The player fills the screen.
  3. The viewer clicks the picture-in-picture control. → A compact floating player is shown, so playback continues while the rest of the page scrolls. [CLARIFICATION NEEDED: the design's control is a picture-in-picture toggle, but the label seen on the live product for the control in this position was «اشتراک تصویر» (“share picture”), which does not obviously mean the same thing — confirm which control this is.]
  4. The viewer scrolls the page while watching. → The player adopts a compact “scroll” layout so it stays visible as the viewer reads comments or recommendations.

Extensions — Alternative & Exception Flows

  • 1a. Not all controls are present on every video: the player shows only the applicable controls (BR-14). Cast in particular is absent throughout the current design.
  • 2a. The viewer leaves fullscreen with the same control or the Escape key: the player returns to the layout it was in before.

Postconditions — the player is in the selected view mode; the viewer can return to the default layout with the same control.

Scenario 4: Jump to a section of the video

Purpose — the viewer navigates within the video using its sections.

Roles Involved — all viewers.

Preconditions — the uploader has written sections into the video's description, so the player shows a section count («۸ لحظه»).

Main Flow

  1. The viewer opens the sections list. → The first section is presented as «معرفی کوتاه» (“short introduction”) and the remainder under «بخش‌های دیگر» (“other sections”), each with a title and timestamp — e.g. «مقدمه، آشنایی با پایتون» at «۰:۰۰», «مقایسه سرفیس با مک بوک» at «دقیقه ۱۳:۴۸».
  2. The viewer selects a section. → Playback jumps to that timestamp and the player's current-section label updates.

Extensions — Alternative & Exception Flows

  • 1a. The video has no sections defined:
    • 1a1. The section list and count badge are not shown. Nothing on this page lets a viewer add them — sections come from the description, which only the uploader edits (BR-12).
  • 1b. (Mobile) The viewer taps the sections box on a small screen:
    • 1b1. [CLARIFICATION NEEDED: the mobile design does not specify whether the sections box expands in place or opens its own list view. The nearby referenced-videos box does open an internal list page (see Recommendations & playlists, Scenario 2), but nothing states that the sections box behaves the same way.]
  • 1c. The description contains lines that look like sections but are mistyped:
    • 1c1. The support centre's guidance is that the exact بخش N: title - m:ss shape is what produces the list; text that does not match it stays ordinary description text.

Postconditions — playback resumes from the chosen section.

Scenario 5: Continue automatically to the next video

Purpose — the viewer keeps watching without choosing the next video manually.

Roles Involved — all viewers.

Preconditions — Autoplay («پخش خودکار») is on (default, BR-1) and the video is near its end.

Main Flow

  1. The video reaches the start of its end-card window — the last 10 or 20 seconds, as the creator configured it (BR-11). → An end card appears over the video: either the next video's title and channel, or a follow the channel prompt («پیشنهاد کانال»).
  2. The video reaches its end. → A countdown «N ثانیه تا پخش ویدئو بعدی» (“N seconds to the next video”) runs.
  3. The viewer does nothing. → After the countdown, the player automatically loads the next video (playlist order if in a playlist, otherwise the channel/recommended queue — BR-2).

Extensions — Alternative & Exception Flows

  • 1a. The video is 60 seconds or shorter:
    • 1a1. No end card is available for it (BR-11); the video ends straight into the countdown or the replay screen.
  • 2a. The viewer chooses I'll watch this («همین را می‌بینم»):
    • 2a1. The countdown stops and the current video stays; autoplay does not advance.
  • 2b. The viewer chooses I'll watch other videos («ویدئوهای دیگری می‌بینم»):
    • 2b1. The player surfaces alternative suggestions instead of auto-advancing.
  • 2c. Autoplay is off:
    • 2c1. The video ends on a replay/end screen and does not advance automatically.
  • 2d. Repeat («تکرار ویدئو») is on:
    • 2d1. The same video restarts instead of advancing.

Postconditions — either the next video is playing or the viewer has stayed on the current one.

Scenario 6: Watch a video that is still processing

Purpose — a viewer opens a video whose upload is still being processed.

Roles Involved — all viewers (typically the owner right after upload).

Preconditions — the video was just published and processing has not finished.

Main Flow

  1. The viewer opens the video. → The player area shows “Video is processing” («ویدئو در حال پردازش است») with the sub-line «کیفیت‌های مختلف پخش، پس از پایان پردازش در دسترس قرار می‌گیرند.» (“the different playback qualities become available after processing finishes”).
  2. The meta shows the just-published state — 0 views («۰ بازدید») and a fresh relative time (e.g. «۱ دقیقه پیش»).

Extensions — Alternative & Exception Flows

  • 1a. The viewer opens the quality menu:
    • 1a1. The full quality list is not yet available (BR-7); it appears once processing completes.
  • 1b. Processing fails rather than finishing:
    • 1b1. The support centre documents an unprocessable-video path for the uploader; the watch page's own behaviour in that case is not specified in the design. [CLARIFICATION NEEDED: what a viewer sees when processing fails.]

Postconditions — once processing finishes, the video plays normally with all qualities.

Mobile & Tablet View

Only the differences from desktop (see the hub Mobile & Tablet View for the page-wide patterns):

  • The player sits at the top of the single column; the details/sections panel opens as a bottom sheet rather than inline.
  • How the sections box behaves when tapped is unspecified in the mobile design (Scenario 4, 1b).
  • Theater mode is a desktop-oriented layout; on mobile the emphasis is fullscreen and the compact scroll player.
  • The data-usage notice and the “open in app” prompt are more prominent on mobile.

Open Questions

  • 2026-08-02 — VPN notice. The copy is confirmed; the trigger is not, and it is unclear whether the notice only advises or also affects playback (Scenario 1, 2c). — waiting on Product.
  • 2026-08-02 — Cast. The control exists in the player component but is disabled in every design instance and no data drives it. Confirm whether it ships (BR-14). — waiting on Product.
  • 2026-07-21 — Whether a distinct buffering/loading state exists (Scenario 1, 3a). — waiting on Product.
  • 2026-07-21 — The control labelled «اشتراک تصویر» on the live product sits where the design puts picture-in-picture. Confirm whether they are the same control (Scenario 3, step 3). — waiting on Product.
  • 2026-08-02 — What a viewer sees when processing fails rather than completing (Scenario 6, 1b). — waiting on Product.
  • 2026-08-02 — Sections: which design is final. The design of the section list and the reusable component it is built from differ. The design review raised this on 2023-09-27 and closed the thread on 2023-09-30 without recording an answer, so the decision exists but is not written down anywhere this documentation can read. The behaviour in Scenario 4 (jump to a timestamp) is not in doubt; only which of the two layouts shipped. — needs someone with the 2023 context to confirm, not a new decision.
  • 2026-08-02 — Playback path split. The web player and the three native clients read entirely different playback fields. This page documents the web behaviour; whether the two paths are meant to converge is an engineering decision that is still open. — informational.

Changelog

DateChangeSource
2026-08-02Rewritten. “Moments” renamed to sections and their real source documented (authored in the description). Added the end-card window (last 10/20 s, videos over 60 s), the VPN notice, per-video quality ladders with file sizes, subtitles, ad-slot conditionality, and the control-visibility rule including cast. Added a machine-readable endpoint-context block to the page's front matter, for developers who read this repository rather than the site.Design contracts + Figma + live product + support centre
2026-07-21Initial version.Figma "AWD - Video Single" + live product