Skip to content
streamneo.
Streaming Settings12 min read

How to Make a YouTube Live Playlist Skip Videos Played Today

YouTube repeat and OBS shuffle do not track daily playback. Learn what a history-aware playlist rotation requires.

sn.
StreamNeoPublished 5 October 2026
Worth sharing?

YouTube’s playlist repeat control repeats playback for viewers; it does not choose which videos your live encoder sends. If your broadcast must skip every video already played today, OBS’s built-in playlist controls are not enough: you need a separate scheduler or custom automation that keeps a date-based playback history.

That distinction matters whether you run a bhajan channel, a study stream or a local news loop. OBS can play a list and shuffle its order, but its documented controls do not record which items have played on today’s date. A history-aware scheduler is an inference from the available controls, not a tested or guaranteed integration.

Define “played today” for the broadcast

A viewer may mean “do not show the same item twice between midnight and midnight”. An encoder needs a more precise rule before it can enforce that request. Does an item count as played as soon as it starts, only when it finishes, or after it has been on air for a minimum duration? If the stream drops halfway through a song, the answer changes which video the rotation should offer next.

The date boundary also needs a time zone. A channel aimed at viewers in India might define its programming day by Indian Standard Time, even if the computer running OBS uses another time zone. If the scheduler instead changes its history at local midnight on that computer, the list could reset at an unexpected hour from the channel’s point of view.

Write down the rule in ordinary language before changing sources. For example: “An item counts when it begins; the daily list resets at midnight IST; if every eligible item has been played, allow a repeat rather than leaving the stream blank.” This is an example policy, not a setting that YouTube or OBS provides. It gives whoever configures the scheduler a behaviour to implement and test.

There is a separate editorial question: whether two different files count as the same item. A bhajan may exist as a short and a long edit, or a news loop may have refreshed graphics but mostly unchanged footage. A file-based system usually treats different files as separate items unless someone gives them a shared identifier. Decide whether the rule applies to files, programmes, songs or another content unit.

YouTube repeat and live playout are separate

YouTube’s repeat control belongs to the player used by someone watching a video or playlist. It tells that viewer’s player what to do after playback reaches the end; it does not tell your encoder which file to send next in a live broadcast. You can read YouTube’s explanation in its playlist repeat help.

A live stream’s sequence is determined upstream, by the source that creates the outgoing video. If OBS is playing local files, its sources and any controller connected to them determine what appears on air. If a different encoder or playout system produces the broadcast, its own playlist logic is the relevant place to look. A viewer repeating a YouTube playlist cannot change what the encoder is transmitting.

Option Where it controls playback Playlist support Random order Date-based history
YouTube playlist repeat A viewer’s YouTube player Viewer playlist Not a broadcast sequencing control No encoder history
OBS Media Source The OBS scene and outgoing broadcast One media file per source No playlist shuffle control in the source No daily ledger documented
OBS VLC Video source The OBS scene and outgoing broadcast VLC playlist Shuffle Playlist control No daily ledger documented
Separate scheduler or custom automation A controller feeding or updating playout Depends on implementation Can be designed to randomise eligible items Can be designed to store playback dates

The table distinguishes documented controls from a design possibility. In particular, the final row describes what a separately built system could do; the table is not evidence that a particular OBS integration already meets the requirement. If you only want a viewer to replay a playlist, use the YouTube control. If you want the live programme to change its sequence, inspect the encoder’s playout source instead.

For another view of OBS playlist behaviour, see this guide to looping a folder in random order for YouTube Live. It concerns rotation and randomness, which are related to—but not the same as—excluding items already played on a calendar day.

Check whether OBS is playing local files

Start by confirming how the live picture is made. In OBS, inspect the active scene and its Sources list. A Media Source can play an individual local file. A VLC Video source can use a playlist. If neither is in the scene, the video may be coming from another application, a capture device or a different encoder, so changing an OBS media setting will not change the sequence.

The OBS Media Sources documentation describes these source types and their controls. Check the source itself, not just the preview: scenes can contain hidden sources, and an inactive scene may hold a playlist that is not currently on air. If your channel uses multiple scenes or scheduled programme blocks, identify which source actually supplies each block.

If you find a single Media Source, it is probably the wrong source type for managing a file rotation by itself. You could create multiple media sources and manage scene changes, but that still does not produce a daily playback record. If you find a VLC Video source, you have a playlist-capable OBS source and can configure its ordinary rotation controls before deciding whether you need a separate history mechanism.

Also establish where the files live and who is expected to maintain them. A path that works on the desktop running OBS may not exist on a replacement computer. A scheduler that supplies an updated candidate list would need to use locations accessible to the playback source, and someone needs to handle files that are renamed, moved or removed. The details depend on your setup; they are not solved by enabling shuffle.

If you are still choosing between a computer-based and hosted workflow, a guide to streaming a pre-recorded video to YouTube Live on a Mac mini may help you think through where playback should run. It does not add date-aware selection, but it can clarify which machine or source is responsible for the broadcast.

Set up an OBS VLC Video playlist

For a list of local videos, add a VLC Video source in OBS and populate its playlist with the files you intend to rotate. VLC must be installed for the source to be available. OBS documents availability on Windows, macOS and Linux, and notes that 64-bit OBS requires 64-bit VLC. Check the current OBS source instructions for the steps and platform details rather than relying on an old tutorial for a different version.

Keep the initial test simple: use a few representative files, confirm that each one opens, and verify that the source is visible in the live scene. Test files with the formats and durations you expect to use. If one file fails to load, find that out before it is part of an unattended rotation. The purpose here is to establish that basic playout works, not to suggest that a small sample proves an all-night broadcast will behave perfectly.

The VLC Video source offers controls labelled Loop Playlist and Shuffle Playlist. They control how the source behaves as it moves through its media list. Loop Playlist restarts the list when it reaches the end; Shuffle Playlist randomises its ordering. Configure these according to whether you want a fixed sequence or a varied sequence. Neither control records an item’s date of playback.

Before relying on the source, check the OBS scene that will be used for the live broadcast and make sure the media appears as intended. Confirm the audio path as well as the picture: a video that is visible but silent is not a useful playlist item. If you use overlays, check that the media source and overlay remain arranged correctly in the scene; OBS source ordering for a 24/7 stream is relevant when one source can cover another.

An ordinary VLC playlist is a useful starting point when you need a set of files to continue playing without someone selecting each one. It is not a daily schedule. If that is all you need, keep the playlist manageable and review its contents when you add or retire videos. If you need the stronger “not already played today” rule, treat this OBS setup as the playback endpoint and plan a separate selection layer.

What looping and shuffling can—and cannot—do

Looping answers what should happen when the source reaches the end of its list: start the list again. Shuffling changes the order in which entries are played. They are useful controls for a continuously running stream, but neither answers the question “has this item already been played since the start of today?” That question requires remembering past events and comparing them with a date.

Imagine a playlist with a dozen devotional videos. Shuffle may play one of them first, but there is no documented daily-history control in the OBS VLC Video source that marks it as ineligible for the rest of the day. If the shuffled sequence later starts over, the same item may appear again. Random order makes the sequence less predictable; it does not make repeats impossible.

The same distinction applies to playlists that are reordered by hand. Moving yesterday’s first item lower down, or making a fresh shuffle each morning, does not establish which items actually reached the live output. A file can be in a playlist but never get played because the broadcast stopped, a source was disabled or an operator changed scenes. To enforce a rule based on what aired, a playback record needs to reflect actual playback events rather than just playlist membership.

You can use loop or shuffle while deciding how a future scheduler should select eligible items. For example, a scheduler could first remove items already recorded for the current date and then randomise the remaining candidates. That is a possible design inferred from the desired behaviour and the documented OBS controls, not a built-in combination documented by OBS. A repeat policy is still needed if no candidates remain.

Add a scheduler that remembers dates

To meet the exact requirement, a separate scheduler or custom controller would need to maintain playback state. At a minimum, it would need a stable identity for each content item, a date and time zone, and a rule for when playback counts. It would then select from items without a qualifying record for the current date and pass that candidate list to the playback source, or otherwise control what the source plays.

That description is an inference from the gap between the required behaviour and the documented controls. The research for this article did not verify a ready-made OBS integration that skips all items played on a given date. Do not assume that a plugin with “playlist” or “random” in its name provides a daily history ledger; check its own documentation and test its actual behaviour against your rule before putting it on air.

A workable design needs to answer several questions. Does the record get written when a file starts, when it completes, or after a threshold? Does a brief interruption count? What happens if the scheduler restarts and its in-memory state disappears? Where is the date boundary? How is a changed file name matched to the existing content item? These are implementation decisions, not settings supplied by YouTube’s repeat button or OBS’s Loop Playlist toggle.

For a small channel, a person can maintain a daily log and build a fresh list, but that is a manual process and depends on somebody doing it consistently. Custom automation can make selection repeatable, but it also adds another component that must be monitored. If it fails, your system needs a fallback: perhaps a defined repeat, a standby item or an operator alert. Choose the fallback deliberately rather than leaving the source with an empty list.

StreamNeo can remove the separate burden of keeping your own computer on to send an uploaded video as a YouTube live stream, but it does not provide the date-aware playlist history described here. If daily exclusion is the essential requirement, assess the scheduler or playout system that will own that decision before changing where the stream runs.

Test the daily history and fallback behaviour

Test the rule with a small playlist before applying it to the channel’s full library. Record what the system should do, then observe the actual sequence: an eligible item starts, the scheduler records it according to your chosen definition, and the next selection excludes it for the rest of the defined day. This is a test plan for your implementation, not a claim that a particular integration has been tested here.

Include edge cases. Start an item and stop it early; see whether the record follows your “played” definition. Restart the scheduler and check whether the history remains available. Test the time-zone boundary you chose, and verify which items become eligible after it passes. Try an item that has been renamed or removed, and check that the candidate list does not silently point to a missing file.

Then test exhaustion. If every item has a playback record for today, does the system stop, repeat an item, or choose from a standby set? There is no universally correct answer. A devotional station may prefer to repeat a familiar item rather than show a blank scene; a news loop may need an operator to refresh the material. Decide which outcome fits your channel and document it for whoever is on call.

Finally, observe the live output rather than relying only on a scheduler log. Check that the selected video actually reaches the scene and that audio and overlays remain correct. If you also need the local playback machine to remain available overnight, think separately about power, network and recovery: a playlist rule cannot fix a computer that has shut down. The guide to streaming a folder of videos to YouTube Live in a loop covers the broader continuous-playback problem, while the daily exclusion rule still needs its own history logic.

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

Does YouTube playlist repeat control what my live encoder plays?

No. It repeats playback in the YouTube player for a viewer, while your encoder determines the sequence sent in the live broadcast. Change the encoder’s playout source if you need to alter the on-air rotation.

Can OBS shuffle a playlist without repeating today’s videos?

OBS’s VLC Video source has a Shuffle Playlist control, but the documented setting randomises order rather than maintaining a date-based playback ledger. A shuffled list can still include an item that has already appeared earlier that day.

Do I need VLC for an OBS playlist?

OBS documents VLC Video as a playlist-capable source and requires VLC to be installed for it to appear. It also notes that 64-bit OBS requires 64-bit VLC, so check the current OBS documentation for your platform and installation.

Is there a tested OBS scheduler that skips everything played today?

This article does not verify a ready-made integration that provides that exact behaviour. A separate scheduler or custom automation could be designed to record playback dates and filter the list, but you should verify its documentation and test the chosen definition of “played” before relying on it.

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 Streaming Settings guides ↗ · All topics ↗