Skip to content
streamneo.
Use Cases13 min read

How to Add a Pomodoro Timer to a 24/7 YouTube Study Stream

Add a visible Pomodoro timer to a 24/7 YouTube study stream with OBS Browser Source, careful scene settings and a proper YouTube test.

sn.
StreamNeoPublished 4 October 2026
Worth sharing?

A visible Pomodoro timer can be added to a 24/7 YouTube study stream by loading a timer page into an OBS Browser Source and placing it in the scene viewers see. OBS then sends the complete scene, including the timer, to YouTube through the normal encoder workflow.

The timer display and the continuous broadcast are separate jobs. The browser page shows work and break phases, while OBS and the streaming arrangement must keep sending the composed video even if the timer page refreshes or the computer is unavailable.

How a visible Pomodoro timer fits into a stream

Think of the stream as a set of layers. Your study background might be a looping video, a still image, or a camera view. Above that, you can add text, a logo, music controls and a timer. OBS combines those layers into one scene before sending the result to YouTube.

A browser-based timer is useful because it behaves like a webpage inside the scene. It does not need to be filmed with a camera, and viewers see the clock as part of the video rather than as a separate link they must open.

The basic path is:

  1. Create or open the scene used for the study stream.
  2. Add the timer page as a Browser Source.
  3. Set the source dimensions and place it over the study layout.
  4. Check the timer's work, short-break and long-break behaviour.
  5. Send the finished OBS output to YouTube.

This does not make the stream continuous by itself. If OBS is running on a desktop computer, the computer still needs power, a stable connection and a process that keeps the broadcast running. If you use a remote streaming arrangement, the timer must be included in the video composition before that arrangement takes over. For background on keeping a loop going, see this guide to looping podcast audio and video in OBS.

A timer can also change the rhythm of what you publish. A study stream may use a repeating visual schedule while the underlying background video continues. If you regularly replace or rotate that background, the advice on changing content on a 24/7 YouTube stream is relevant, but it does not replace testing the timer itself.

Choose a timer page

Start with the timer behaviour your viewers need, not with the most elaborate overlay. A plain page showing the remaining minutes may be enough for a quiet study channel. A more configurable overlay can show the current phase, session number and the next break, but each extra control creates another behaviour to check.

OBS Browser Source can load a web address or, where the implementation supports it, a local file. The choice affects how you manage the timer:

Timer type Useful when Questions to check before broadcasting
Plain hosted timer page You want a quick, visible clock Does it cycle automatically, and what happens if the page reloads?
Configurable overlay You need custom work and break durations Are the phase label, session count and long-break rules clear to viewers?
Local or self-hosted page You want more control over files and access Can the page load on the streaming machine without depending on a separate login or service?

Examples documented by timer projects include 25-minute work with a five-minute break, 50 minutes with a 10-minute break, and other configurable combinations. These are choices made by the implementation or creator, not requirements that every Pomodoro stream must follow.

The r7kamura/obs-browser-sources project documents a Pomodoro browser source with a 50-minute work period and a 10-minute break as its default, with URL parameters for other intervals. The Bskasan/pomodoro-obs-overlay project documents controls for study, short-break and long-break durations, session counts and automatic starting. Read the current documentation for any project you use rather than assuming that a setting from one timer exists in another.

A hosted overlay may be convenient because you do not have to maintain the page yourself. A local page may give you more control over availability and privacy. Neither choice removes the need to check what happens after a refresh, scene change or loss of the page connection.

You may find timer pages that can switch OBS scenes when a phase changes. Treat that as an optional, implementation-specific feature. It may require additional OBS permission, and a timer that merely displays a clock is simpler to validate than one that also controls the broadcast layout.

Before adding anything to OBS, open the chosen page in a normal browser. Confirm that the numbers are readable, the phase name is understandable and the page does not depend on a control that viewers should not see. Keep the final URL or local file path available for the next step.

Add the timer as an OBS Browser Source

Open OBS and select the scene that will be used for the study stream. In the Sources panel, choose the option to add a new Browser Source. Give it a descriptive name such as Pomodoro timer, so you can identify it later without guessing which browser layer is active.

Enter the timer page URL, or select the local file if your chosen implementation supports one. OBS describes Browser Source as one of its most versatile source types because it can bring web content into a scene. The OBS Browser Source documentation lists the current properties and behaviour, so use it if the labels in your version differ.

Set the browser viewport width and height to match the area in which the timer will be displayed. These dimensions describe the page that OBS loads, not necessarily the final size the viewer will see. You can resize the source on the canvas afterwards, but a sensible viewport makes the page easier to design and inspect.

Many browser sources use custom CSS that makes the page background transparent, removes body margins and hides scrollbars. This can allow the digits and phase label to sit over your study background. Do not assume that every timer page is designed this way. If it arrives with an opaque background, you may need to use the page's own transparent mode, a different overlay, or a layout with a dedicated timer panel.

The source order matters. In OBS, sources higher in the list generally appear above sources lower in the list. Put the timer above the video or image it should overlay, but below any element that must remain in front of it, such as a channel logo or a warning label.

At this point, do not start the public broadcast. The page can look correct in the editor while still having a problem with focus, refresh behaviour or readability at the final output size.

Size and position the timer for viewers

A timer should be legible without taking over the study scene. Place it where it will not cover the main workspace, subtitles, important artwork or a person on camera. A corner panel often works for a desk scene, while a centred timer may suit a minimal background with no other information.

Use the OBS canvas to resize the source, then check the text at the same output resolution you intend to send to YouTube. A timer that looks comfortable on a large preview can become difficult to read in a small YouTube player or on a mobile screen.

Keep the remaining time and the phase label visually distinct. Viewers should not have to infer whether 24:12 means focused work or a break. If the page supports a label such as Focus, Short break or Long break, leave it visible unless the rest of the layout already communicates that state.

Avoid placing the timer against a busy moving background. Digits can be technically large enough but still hard to read when bright areas, text or fast motion pass behind them. A semi-transparent panel, outline or shadow can improve contrast without changing the underlying study footage.

Check the browser source's aspect ratio before stretching it. Stretching can make numbers look unusually wide or narrow. If the timer page includes controls or unused margins, resize or crop carefully so that viewers see the clock rather than a large empty browser rectangle.

The timer is part of the scene, so check what happens when other sources change. A new background video, an alert, or a temporary “starting soon” layer must not cover the clock accidentally. Saving a separate Study with timer scene can make this easier to inspect than sharing a complicated scene with several unrelated layouts.

Check focus and break intervals

Choose the schedule deliberately. A channel for quiet reading may use a longer focus period, while a channel aimed at short revision sessions may prefer shorter cycles. The important point is that the displayed schedule is consistent and explained in the stream title or description if viewers need to plan around it.

Check these settings in the timer page:

  • Focus duration.
  • Short-break duration.
  • Long-break duration, if supported.
  • How many sessions occur before a long break.
  • Whether the first session starts automatically.
  • Whether the timer pauses or resets when a control is used.
  • Whether the phase name changes when the clock reaches zero.

Automatic cycling is usually the useful setting for an always-on visual schedule, but it needs careful testing. A manual timer may be appropriate if someone is present to operate the channel. If no operator will be watching throughout the day, decide what should happen after the first cycle and confirm that the page follows that decision.

Some timers begin counting as soon as the page loads. Others wait for a start button. This difference matters when the OBS scene is loaded hours before the YouTube broadcast begins. If a page starts immediately, it may already be in a break by the time you test the public stream.

The timer's state after a refresh is equally important. It might restart from the beginning, restore its previous phase, or wait for manual input. There is no universal behaviour. Refresh the page deliberately in a test scene and record what happens before you rely on it during a continuous broadcast.

OBS also has source lifecycle settings. By default, Shutdown source when not visible and Refresh browser source when scene becomes active are off. If you enable either setting, the page may be unloaded or refreshed when the source is hidden or the scene becomes active. That can be useful for a separate break scene, but it can also reset a timer unexpectedly.

If you only want to display the clock, leave scene-control features disabled unless you have a clear reason to use them. A timer page that changes OBS scenes needs more permissions and creates a larger test surface. For many study channels, a stable visual overlay is enough.

Send the composed scene to YouTube

Once the scene works locally, connect OBS or your chosen encoder to YouTube Live. In YouTube Live Control Room, create or select the stream and obtain the YouTube Live server URL and stream key. Enter those values in the encoder settings, then start the encoder and follow YouTube's live control flow.

The YouTube Help instructions for creating a live stream with an encoder contain the current steps and interface details. Keep the stream key private. If it is exposed, replace it through the relevant YouTube controls rather than continuing to use a compromised key.

YouTube receives the final OBS output, not the individual Browser Source. That means the platform does not know that one part of the picture is a timer page. The timer, background, labels and any audio are encoded together as the scene that OBS sends.

This distinction helps diagnose faults. If the timer is wrong but the rest of the scene is visible, inspect the Browser Source and its page lifecycle. If the whole picture stops reaching YouTube, inspect OBS, the encoder connection and the continuous-stream arrangement instead. Adding another timer page will not repair a disconnected broadcast.

A 24/7 stream also needs an operating plan. A computer-based setup may need automatic startup, restart handling and protection against sleep or updates. If you use a remote service to run the broadcast, make sure the finished scene or source configuration is actually available in that workflow. The timer is only one component of the path from file to viewer.

For readers deciding how much of this operation to keep on a personal machine, compare the practical trade-offs in VPS versus managed 24/7 streaming. If you are running the encoder yourself, a plan for automatically restarting a failed YouTube stream is separate from the timer configuration.

A cloud-based workflow can remove the need to leave your own computer switched on for the video operation. StreamNeo is useful at the point where you want to upload the prepared video, add your YouTube stream key and let the channel run without installing software locally; the timer still needs to be part of the video or scene you prepare for that workflow, and it does not control the timer's schedule.

Be careful with archive assumptions. YouTube's encoder guidance says streams under 12 hours are automatically archived. That does not establish that a broadcast longer than 12 hours will become one complete recording, so plan recording and archive needs separately for an always-on channel.

Test the timer in the stream

Test the complete path, not just the browser page. Use a private or unlisted broadcast if appropriate, then watch it from another device or connection. The OBS preview confirms what the encoder is composing, while the YouTube playback confirms what reaches viewers.

Run at least one accelerated check through the important transitions. Confirm the initial focus state, the move into a short break, the return to focus and, if your schedule uses it, the long-break transition. If the timer does not allow shorter test intervals, let the test run long enough to expose how it handles the end of a phase.

Check the following on the YouTube playback:

  • The timer remains readable at the player size your viewers are likely to use.
  • The phase label changes at the expected point.
  • The clock does not freeze when the background video loops.
  • Audio continues independently of the timer page.
  • The timer is not hidden by another source.
  • The page does not show browser controls, scrollbars or private information.
  • A scene change does not unexpectedly reset the countdown.
  • A temporary source shutdown does not leave a blank space.

Then test the failure cases. Hide and show the scene, refresh the Browser Source and restart OBS in a controlled test. Record whether the timer resumes, resets or waits for input. There is no universally correct result, but you need to know which result your chosen implementation produces.

Watch the stream from outside the production computer. A local preview may continue while the public broadcast has stopped or fallen behind. When checking a long-running channel, also verify that the background loop, audio and timer remain aligned after several cycles rather than stopping the test as soon as the first minute looks correct.

Finally, write down the working settings: the timer URL or file, viewport dimensions, source position, interval choices, lifecycle settings and YouTube connection process. If you later rebuild the scene or move it to another machine, this record prevents a small forgotten setting from changing the schedule.

Before committing, compare the operating options on the pricing page. When the file and channel are ready, start free — 24-hour trial, no card.

FAQ

Can I add a Pomodoro timer without changing my study video?

Yes. Add the timer as a separate Browser Source above the existing video or image source. The timer becomes part of the composed scene while the underlying study material continues playing.

Will the timer keep running if the YouTube stream disconnects?

Not necessarily. The timer page and the live connection are separate, so a disconnect can affect the broadcast without producing a useful viewer-facing result. Test how your encoder and timer behave after a restart, and arrange automatic recovery for the broadcast separately.

Should the timer change OBS scenes between work and break periods?

It does not need to. A timer-only overlay can show the current phase while one study scene remains active. Scene switching is an optional feature of some implementations and may require extra permissions, so use it only when the visual change is worth the additional testing.

Can a 24/7 stream be saved as one YouTube recording?

Do not assume that it can. YouTube's current encoder guidance states that streams under 12 hours are automatically archived, but that statement does not confirm the same treatment for longer broadcasts. Check the current official guidance and make a separate recording plan for an always-on channel.

YOU’VE REACHED THE END

Keep the ideas coming.

More guides, useful tools and a little help for your next broadcast.

Back to the journal ↗
YOUR NEXT READ

A little more to explore.

More Use Cases guides ↗ · All topics ↗