Skip to content

Satshrut

Part of the Aashray Business Logic. Related: Accounts, Identity & Authentication, Adhyayan & Utsav, Payments, Credits & Reconciliation.

Satshrut is staff-run playback of recorded satsang videos from YouTube, with meditation audio between them. Staff plan one Satshrut session per date on a calendar in the staff panel. A staff member then plays it on the staff panel's full-screen player. The staff panel is built to play a long recording in daily parts: each day's Satshrut session starts where the previous one stopped. Mondays can play a rotating Monday Bhakti video instead. The 17th of each month has a separate morning programme, Aanand Tithi.

Nothing plays on its own. A Satshrut session has a date and video start and end points, but no time of day. A staff member opens the player and starts it.

Members take no part. The member app has no Satshrut feature. It only links out to the Satshrut website and lists Satshrut contacts (member app).


Who runs it

  • Super admins and staff with the Satshrut admin role can use every Satshrut screen. The backend refuses everyone else (backend and staff panel).
  • The staff panel has three Satshrut screens: the player, the calendar (with bulk import), and the configuration page (staff panel).

What plays on which day

Date What plays How staff start it
A date with an active Satshrut session The four-part Satshrut session "Play Today's Session", or the play badge on that date in the calendar
A Monday with no active Satshrut session That week's Monday Bhakti video, once. Only when Monday is a no-session day and the week's Bhakti video is set. Same as above
The 17th of any month Aanand Tithi, a six-step morning programme Only the "17th Morning" tag on that date in the calendar
Any other date Nothing. The player says that nothing is scheduled.

A 17th can also have a regular Satshrut session. The two are separate, and "Play Today's Session" plays the regular one (backend and staff panel).


Satshrut sessions

What a Satshrut session holds

Each date has at most one Satshrut session (backend). It holds:

  • Video 1: a YouTube link, a start point, an end point, a playback speed, and an optional title.
  • Video 2 (optional): a YouTube link, a start point, an end point, an optional title, and an optional speed of its own. It plays straight after Video 1.
  • Meditation audio (optional): two YouTube links that replace the default meditation audio for this date only.
  • Status: active or inactive. Only an active Satshrut session plays. An inactive one is a no-session marker for that date, with an optional reason.

Adding and editing

  • Staff click a date on the calendar, or use Add Session (staff panel).
  • The form takes times as hours:minutes:seconds (staff panel). The end must be after the start and after zero. Video 2 needs both a start and an end (staff panel and backend).
  • When the panel can read the real length of Video 1 from YouTube, it refuses a start at or past the end of the video, and an end past it. When it cannot read the length, it says the times will not be checked (staff panel).
  • An empty Video 1 title is filled from the YouTube video title (staff panel).
  • Continuing a recording. "Continue from last day?" copies the link, title, and speed of the latest-dated Satshrut session, and sets the new start to where that one ended. Entering a link that an earlier Satshrut session used also sets the start to where the latest of those ended. If the previous Satshrut session already reached the end of the video, the panel asks for the next video (staff panel).
  • A Satshrut session can be added by hand on a no-session weekday. The system shows only a warning (backend and staff panel).
  • The edit form cannot change the date. Staff use Move instead (staff panel).
  • Delete is permanent, after one confirmation (backend and staff panel).

Playback speed

  • The backend allows 0.25×, 0.5×, 0.75×, 1×, 1.25×, 1.5×, 1.75×, and 2×. The default is 1× (backend).
  • The add and edit forms offer 0.5× to 2× (staff panel). Adding or editing one Satshrut session with any other speed is refused (backend).
  • Video 2 plays at its own speed, or at 1× if it has none (backend and staff panel). The forms have no field for the Video 2 speed. Only bulk import sets it (staff panel).
  • Meditation audio, Monday Bhakti, and Aanand Tithi always play at 1× (backend and staff panel).

Every video and audio entry must be a YouTube link (backend). The system accepts:

  • A normal, short, or mobile YouTube link.
  • An embed, live, or shorts link.
  • A link without "https://".
  • The 11-character video code from the end of a YouTube link.

The system refuses any other link.

No-session days and markers

  • No-session weekdays are Monday and Thursday by default. Staff can choose any weekdays on the configuration page (backend and staff panel).
  • On a no-session weekday, the calendar greys the date, bulk import skips it, and the shift action passes over it. Adding a Satshrut session there by hand gives only a warning (backend and staff panel).
  • Marking one date. Staff can mark any date as a no-session day, with an optional reason such as an Utsav, a holiday, or maintenance. If the date has a Satshrut session, it becomes inactive and the reason replaces its title (backend). The reason prompt starts with the current title (staff panel). Switching a marker back on removes it if it has no video. Otherwise the Satshrut session becomes active again (staff panel).
  • A marker still holds its date. Staff cannot add a new Satshrut session on that date, and bulk import skips it (backend).
  • Utsav dates. The calendar shows "No session — Utsav" on every date inside an Utsav, unless an active Satshrut session is on it (staff panel). The shift action passes over Utsav dates (backend). Both count every Utsav, whatever its location or status.

Moving and shifting

  • Move puts a Satshrut session, or a marker, on another date. If the target date already has one, staff must confirm, and the target's entry is deleted. No-session weekdays do not apply to a move (backend and staff panel).
  • Swap exchanges the entries of two dates. The move window offers Move or Swap (backend and staff panel).
  • Shift moves every entry on or after a chosen date one valid day forward or backward. A valid day is neither a no-session weekday nor an Utsav date. A backward shift is refused if the first entry would land on a date that already has one. The shift completes in full or not at all (backend).

Bulk import from CSV or Excel

Staff choose a file. The panel shows a preview with a status for each row. Staff then import, and the backend reports which rows it created, skipped, or rejected (staff panel and backend).

File rules (staff panel)

  • CSV, .xlsx, or .xls, up to 10 MB. For Excel, only the first sheet is read.
  • Only the first 500 rows are imported. The panel warns when it drops rows.
  • Blank rows are ignored.
  • If a name in the first row contains "date", "youtube", "url", or "start", the first row is read as column names. The columns can then be in any order, and several names are accepted for each column. The sample file on the import screen shows the exact names.
  • Without column names, the columns are read in a fixed order: date, Video 1 link, start, end, speed (optional), title, then Video 2 link, start, end, and title.

How values are normalised

Value Accepted Otherwise
Date Year-month-day or day-month-year, with "-" or "/", and one-digit days and months. It must be a real calendar date (staff panel and backend). The row is rejected.
Time Hours:minutes:seconds or minutes:seconds. The panel pads it to two-digit hours (staff panel). The row counts as missing that time.
Video 1 speed One of the allowed speeds 1×, with no warning (staff panel and backend)
Video 2 speed One of the allowed speeds No speed of its own, so it plays at 1×
Title Any text No title

What happens to each row (backend)

  • Rejected: an invalid date; a missing Video 1 link, start, or end; a link that is not YouTube; an end that is not after the start, or is zero; a Video 2 link without both times; a bad Video 2 link or bad Video 2 times.
  • Skipped: a date on a no-session weekday, or a date that already has a Satshrut session or a marker.
  • Created: every other row, as an active Satshrut session.

Bulk import does not check Utsav dates or the real video length. It cannot set meditation audio for a date. The preview marks rejected rows and no-session weekdays, but the panel sends every row. The backend decides (backend and staff panel).


Configuration

The configuration page has three tabs and one Save button (staff panel).

Daily settings

  • Default meditation audio 1 and 2: the YouTube links for parts 2 and 4 of every Satshrut session. A Satshrut session's own meditation audio replaces them (backend).
  • No-session weekdays (see above).

Monday Bhakti

  • Exactly four slots, Week 1 to Week 4. Each slot has a YouTube link, a start, and an end (backend).
  • A start and end of zero play the full video. An end of zero plays to the end of the video. When an end is set, it must be after the start. Times cannot be negative (backend).
  • A slot can be left empty. On that week's Monday, nothing plays (backend).
  • Rotation (backend): Monday 3 August 2026 is Week 1. From that date, each Monday with no active Satshrut session moves the rotation on by one week. After Week 4, it returns to Week 1. A Monday with an active Satshrut session plays that Satshrut session instead and does not move the rotation.
  • Manual shift: staff can set a shift of 0 to 3 weeks, or press "Shift +1 week" on the configuration page or the calendar. After 3, the shift returns to 0 (backend and staff panel).

Aanand Tithi (17th morning)

Step Video Chosen Plays
1 Intro Same every month Once
2 Bhakti song Per month Once
3 Clip 1 Per month Twice
4 Pause 1, a 5-minute pause video Same every month Once
5 Clip 2 Per month Twice
6 Pause 2 or conclusion video Same every month Once
  • Every step plays its full video at 1×. A step with no video is skipped (backend and staff panel).
  • If the intro, the month's Bhakti song, and Clip 1 are all empty, that month has no Aanand Tithi (backend).

The player

The four parts of a Satshrut session (staff panel)

Part Plays Speed
1 Video 1 from its start to its end point, then Video 2 if set The set speed
2 Meditation audio 1, full length 1×
3 The same video segments as part 1, again The set speed
4 Meditation audio 2, full length 1×
  • Which audio: the Satshrut session's own audio first, then the default (backend). If only one audio is available, it plays in both parts 2 and 4. If there is none, the player refuses to start and asks staff to set the default audio (staff panel).
  • Total time: two passes of the video at the set speed, plus both audio lengths. The player reads each audio length from YouTube and assumes 5 minutes until it can (staff panel). The calendar's minutes badge shows one pass of the video at the set speed (backend and staff panel).
  • Monday Bhakti plays one video once. Aanand Tithi plays the six steps above (staff panel).

Starting and controlling (staff panel)

  • The Begin button stays disabled until the YouTube player is ready. Begin opens full screen.
  • The calendar's play badges and the "17th Morning" tag start playback on their own once the player is ready.
  • Staff can click any part or step on the timeline to jump to it.
  • YouTube's own controls work. While paused, the screen shows a PAUSED marker and the player does not move on.
  • The arrow keys jump 10 seconds back or forward, within the current video segment. F switches full screen. The mouse pointer hides after 3 seconds without movement in full screen. Captions are off.
  • At the end, the player shows "Jai Sadgurudev Vandan!" with the name of the programme that finished.

Resilience (staff panel)

  • The player moves on when the video reaches its end point, which it checks every half second, or when the video ends.
  • If the video buffers for more than 12 seconds, the player reloads it from 2 seconds before the point where it stopped. It keeps the end point and speed.
  • If the browser shows the page again from its back or forward history, the page reloads to fetch fresh data.
  • If loading fails, the player shows a message and does not play.

Known limitations today

  • "Today" can be the previous day. "Play Today's Session" uses the UTC date, so before 5:30 AM India time it loads the previous day's content. The calendar's "today" highlight and its default dates use the same clock.
  • Marking a Monday does not stop Monday Bhakti. On a Monday marked as a no-session day, or a Monday inside an Utsav, the calendar shows no Bhakti to play. The player still plays that week's Bhakti video, because it checks only for an active Satshrut session and never checks Utsavs.
  • Utsav dates are handled in two ways. The calendar and the shift action treat them as no-session days. Adding by hand and bulk import do not block or skip them.
  • Shift also moves markers. A shift moves every entry on or after the chosen date, including no-session markers, so a holiday marker moves off its holiday.
  • Continuing a recording can start at the wrong point. "Continue from last day?" and the automatic start time use the latest-dated Satshrut session in the calendar, not the one just before the chosen date. When staff fill a gap between planned dates, the start point is wrong.
  • A no-session reason overwrites the title. When staff mark a Satshrut session as a no-session day and enter a new reason, the reason replaces the title. Switching it back on does not bring the title back.
  • Speed has silent gaps. Bulk import cannot set meditation audio for a date, and a speed that is not allowed becomes 1× with no warning. The edit form has no 0.25× option, so saving a 0.25× Satshrut session from the edit form resets it to 1×.
  • A default meditation audio cannot be removed from the staff panel. Staff can only replace it.
  • Warning texts name Monday and Thursday even when staff have chosen other no-session weekdays.
  • The space bar and K do not pause the video. When the page, not the video, has keyboard focus, these keys only switch the PAUSED marker.

How this connects to other domains

  • Accounts, Identity & Authentication (02): staff role controls access. Only super admins and the Satshrut admin role can use Satshrut. No member card is involved.
  • Adhyayan & Utsav (07): Utsav dates feed the calendar and the shift action as no-session days. Satshrut does not read or change Utsav bookings.
  • Payments, Credits & Reconciliation (08): Satshrut playback takes no payment. The staff panel's settlement breakdown labels any settled payment with no matching Aashray transaction as a "Satshrut Transaction". That label has no link to the playback on this page.