To stream a video library from Vultr around the clock, transfer the files to a server directory over SFTP, add them as media sources in OBS, and send OBS to YouTube Live. For one file, enable Loop in its OBS Media Source; for a rotation of files, use OBS’s VLC Video Source and check the playlist before starting the broadcast.
That workflow is different from uploading ordinary videos to YouTube: the library sits on the server used for playback, while YouTube receives the live encoder output. Vultr’s Broadcaster guide documents the SFTP-to-OBS route. Object Storage and Rclone can be useful for staging or transferring a library, but the documented guide does not show OBS reading an Object Storage bucket directly.
Prepare the video library
Start by deciding what the viewer should see and hear while you are not at the controls. A devotional channel might play one long bhajan continuously, or rotate through separate tracks. A study channel may use a sequence of lesson files, while a local news loop might use a slate between programme blocks. That choice affects whether you need one looping source or a playlist, and it is easier to settle before a long upload begins.
Put the files you intend to use in a clearly named local folder. Use filenames that make the sequence obvious, such as morning-aarti-01.mp4, morning-aarti-02.mp4, and morning-aarti-03.mp4. Avoid relying on ambiguous names such as final2.mp4; playlists can be harder to troubleshoot when you cannot tell which version is playing. Keep a local copy of the originals until you have confirmed that the server copies play correctly.
Check the media before transferring it. Open representative files on your computer and confirm the picture, sound, duration, and intended order. If one file has no audio or an unexpected black section, the same issue will appear when OBS plays it. A short test file can help you learn the workflow, but test again with a representative file: a still image and a silent clip will not expose the same playback and audio problems as a moving programme with sound.
Do not infer a Vultr transfer or storage limit from YouTube’s ordinary-upload limit. YouTube Help gives an individual video upload maximum of 256 GB or 12 hours, whichever is less, and says unverified accounts have a default limit of 15 minutes. Those rules concern uploading a video to YouTube, not sending a file by SFTP to Vultr. See YouTube’s current upload limits for that separate process. They do not tell you how much a Vultr account can store or how long an SFTP transfer will take.
If the library is large, transfer time depends on the files and the available connection; do not plan around a guessed completion time. Upload in manageable groups and confirm that each group arrived. If you are comparing a self-managed server with a workflow that runs on your own machine, the trade-offs around power and ongoing attention are covered in this Raspberry Pi streaming guide.
Upload files to Vultr over SFTP
The documented route is to connect to the Vultr Broadcaster server using SFTP, create or choose a directory for the media, and upload the local files there. SFTP transfers files over an encrypted connection and gives you a familiar file-transfer workflow. You will need the server connection details and credentials supplied for your server; keep credentials private and do not paste them into a public support post or stream description.
In a terminal with an SFTP client, connect to the server using its address and your account details. Vultr’s guide uses /tmp as an example working location, creates a directory for OBS files, and demonstrates a put command to transfer a local file. Treat /tmp as an example from that guide, not as a general recommendation for a durable media library. Choose a directory appropriate to your setup and confirm that the account running OBS can read it. The right persistent path depends on the server configuration; there is no universally correct path to assume.
A typical transfer session follows this pattern, with the server address, username, and paths replaced by the values for your own machine:
sftp username@server-address
cd /path/available/to/obs
mkdir media
cd media
put /local/path/morning-aarti-01.mp4
The exact commands available can vary with the client and whether you are already in an interactive SFTP session. In a graphical SFTP client, the same idea is to open the server directory on one side and your local folder on the other, then transfer the selected files. Do not assume a successful connection means every large file completed: inspect the remote directory and compare the filenames and sizes with your local copy where your client provides that information.
Upload one representative file first. In OBS, attempt to open it from the server-side directory before transferring the full library. This catches a wrong path or permissions issue while there are fewer files to diagnose. Then transfer the remaining files in batches and check the results. Keep the naming and folder arrangement consistent with the playlist you plan to build.
SFTP puts the media on the server; it does not publish each file as a YouTube video. If your separate aim is to publish individual uploads to a channel, that is a different YouTube Studio workflow with its own account and upload rules. For a continuing live programme, OBS reads the local server-side media and sends a live encoded stream to YouTube.
Add media sources in OBS
Once the files are on the server, open OBS on that server and add a media source. In the Sources panel, use the add control and choose Media Source. Give the source a useful name, then browse to the uploaded file. A source name such as Main programme is more informative later than Media Source 2, particularly if you add a logo, holding slide, or more than one scene.
Make sure the selected path points to the server’s copy, not to a file that exists only on your desktop. A local path from your own computer will not automatically become available to OBS running on another machine. If the file chooser cannot see the directory, check the remote path and access permissions rather than uploading the same file again under a different name.
After selecting a file, inspect the image in the OBS preview. Check that the picture fills the intended canvas and that the source is not hidden under another source. Then watch the Audio Mixer while the file plays. You should see activity on the source’s audio meter when the content has sound. Meter movement confirms that OBS is receiving audio from the source; it does not by itself prove that viewers will hear it at the right level, so listen to the preview or a private test as well.
The OBS Project’s guide to media sources explains the source controls. Vultr’s guide describes the practical path from its uploaded directory to a file selected in OBS. If you are arranging several scene elements, such as a channel mark over a devotional video, this overlay design guide can help you think through what belongs on top of the programme without obscuring important content.
Do not add the whole library as separate sources merely because it is large. A source per file can become cumbersome to manage and makes sequence changes harder. For a simple continuous channel, choose either a single file that loops or a playlist source that handles the rotation; use additional sources only where your intended layout genuinely calls for them.
Loop one video or build a playlist
For a single file, open the Media Source properties and enable Loop. Save the source settings, then allow the file to reach its end and confirm that it starts again. Do not assume that seeing the first few seconds proves the loop works: a file with an unusual ending, a damaged final segment, or an unexpected pause may only reveal itself at the transition.
For a series of files, Vultr’s documented workflow points to VLC Video Source in OBS. Add that source, choose the files you want in the rotation, and set up the playlist and repeat behaviour for the programme. The source is intended for VLC-backed playback, so confirm it is available in your OBS installation before building the full schedule. If you do not see the source type or a file fails to load, check the OBS/VLC setup and the formats of the media rather than treating a blank preview as a YouTube problem.
Arrange the list deliberately. If order matters, verify the order shown in the source properties, then watch transitions between a few items. A playlist can make a 24/7 loop simpler than switching scenes by hand, but it also means that one inaccessible or unsuitable file can affect the rotation. Remove test clips and duplicate versions before you leave the channel unattended.
Test the end of one item and the start of the next. Look for black gaps, a frozen final frame, abrupt audio level changes, or a source that stops instead of advancing. For a church or bhajan playlist, the transition may matter as much as the content itself; the practical sequencing points in this church service playlist guide are relevant even when your programme is not a service.
Keep a fallback scene or known-good file available if an item needs to be removed. A fallback does not fix the underlying file, but it gives you a controlled way to avoid leaving a broken source on screen while you troubleshoot. Confirm that switching to it does not accidentally stop the stream or mute the programme audio.
Connect OBS to YouTube Live
In YouTube Studio’s Live Control Room, create or manage the live stream and copy the stream URL and stream key into OBS’s streaming settings. The URL identifies the ingest destination and the key identifies the stream. Treat the key like a password: anyone with access to it may be able to send an encoder feed to your broadcast. Keep it out of screenshots, notes shared with helpers, and public messages. If it is exposed, reset it in Live Control Room and update OBS with the replacement.
YouTube recommends RTMPS, the encrypted version of RTMP, for encoder ingest. Select the server or URL and key shown for your stream rather than copying values from an old setup or guessing from an example. The current instructions are in YouTube’s live encoder settings. Once the credentials are entered, save the OBS settings and check that the selected stream is the intended broadcast before going live.
OBS’s output settings need to suit both the content and your measured upload capacity. YouTube documents supported encoder choices and settings, including H.264, H.265/HEVC, and AV1 options, frame rates up to 60 fps, constant bitrate, and a recommended two-second keyframe interval that should not exceed four seconds. These are not a reason to choose the highest setting available. A moving, detailed scene needs more capacity than a mostly static image, while a connection that cannot sustain the chosen output can produce buffering or interruptions. Use the current official settings table and test from the actual server and network you will use.
Latency is also a trade-off. Lower latency can make interaction feel more immediate, but YouTube notes that it may bring more playback buffering. If viewers mainly watch a continuous devotional or ambience feed without interacting, immediate chat response may matter less than steady playback. Choose the latency mode for how the audience uses the stream, then validate it during a test.
Consider Rclone and Object Storage
If you already keep a large library in Vultr Object Storage, Rclone can be an alternate way to transfer or stage those files. Vultr’s Rclone and Object Storage guide configures an S3 backend with a regional Vultr endpoint, access key, secret key, and private ACL. Its example endpoint is region-specific; use the endpoint for the region and bucket you actually configured, not the example by habit.
The commands rclone copy and rclone sync have different consequences. Copy transfers files without mirroring deletions. Sync makes the destination match the source and can remove destination objects that are no longer present at the source. Vultr’s example demonstrates that removal behaviour. Before using sync, inspect source and destination carefully and test with a small, disposable set of files; a mistaken direction or source selection can remove objects you intended to keep.
Keep the Object Storage ACL private unless you deliberately need public URL access and understand the implications. The documented Rclone workflow is an object-storage transfer and storage method. It does not show OBS opening a Vultr bucket as a direct media source. If OBS is to play the media through the documented server workflow, arrange access to the assets and transfer or copy them to a server-side playback directory that OBS can read. Do not assume an S3 bucket URL can be entered into OBS in place of the server file path.
Vultr’s guide says HTTP 429, 503, or 504 responses may indicate Object Storage rate limits. It suggests limiting transactions with --tpslimit 100 and using --transfers 1 to avoid parallel file transfers. These are troubleshooting suggestions, not a promised transfer speed or finish time. If a transfer is rejected, reduce the request rate and retry carefully rather than launching more parallel jobs. Rclone may suit a library already managed in object storage; SFTP remains the more direct documented route from your computer to the Broadcaster server.
Test playback and stream health
Before an unattended broadcast, run a test using a representative section of the real programme. YouTube recommends testing with movement and audio similar to the planned stream. Check that OBS preview shows the right scene, the audio meter responds, viewers can hear the programme, and the stream starts correctly in Live Control Room. A static logo alone will not test the same conditions as a video with changing picture and sound.
Watch the stream health messages in YouTube Studio while the test runs. Look for warnings about the incoming video, audio, or connection, and correct the relevant issue before relying on the setup. A stream that appears active in OBS is not sufficient evidence that YouTube is receiving a clean feed. Also view the actual playback from a separate device or browser: the encoder preview and the viewer experience are not identical checks.
Let the media reach at least one meaningful transition: the loop point for a single file, or a change between playlist entries. Confirm there is no unexpected silence, black screen, frozen frame, or accidental scene change. If the channel will run through the night, check the settings and files before the unattended period and make sure someone knows how to stop the broadcast or replace a compromised stream key.
Your responsibility differs by operating method. With OBS on a server you manage, you control the software and media paths, but you also need to maintain the machine, diagnose playback failures, and restore the stream if the process stops. A managed continuous-stream workflow can reduce the need to leave and monitor your own computer; StreamNeo removes the specific burden of keeping that computer running by turning an uploaded file into a YouTube live stream that continues with your computer switched off. It is YouTube-only, so it is not a general-purpose destination for other platforms.
There is no universally better choice. Self-managed Vultr and OBS make sense when you want direct control over the playback environment and are comfortable maintaining it. A managed service is worth considering when the recurring task of server setup, keeping OBS available, and recovering playback is the part you want to avoid. Compare the options against your actual library workflow, control needs, and ongoing cost rather than assuming either route guarantees a particular stream result.
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 uploading to Vultr upload the videos to my YouTube channel?
No. SFTP places files on the Vultr server so OBS can play them as part of a live broadcast. Uploading an ordinary video to YouTube is a separate action in YouTube Studio and is not required for this server-side playback workflow.
Can OBS play files directly from Vultr Object Storage?
The Vultr guide cited here documents Rclone for moving and managing objects, and a separate Broadcaster workflow for selecting media on the server. It does not document Object Storage as a direct OBS source. Arrange for the files to be available in a server-side directory OBS can read if you are following that playback route.
Should I use rclone copy or rclone sync?
Use copy when you want to transfer files without mirroring deletions. Sync makes the destination match the source and can delete destination objects missing from the source, so verify both locations and the command direction before running it.
What should I check before leaving a loop running?
Confirm the media path, the loop or playlist transition, the OBS preview and audio meter, and YouTube’s stream health during a representative test. Watch the actual playback as a viewer and keep the stream key private. A clean test helps expose problems, but it does not guarantee that a stream will never need attention.