Skip to main content
STREAM
Service homePrivacyWatch live

DOCUMENT 01 Stream / live.codebam.ca

Terms of Service.

Rules for public viewing, accounts, prepaid streaming credits, watch pages, and relay outputs.

Effective: September 15, 2026

Document index

01 Agreement02 Service format03 Accounts04 Prepaid credits05 Refunds and disputes06 Your broadcasts07 Acceptable use08 Third parties09 Funding10 Availability11 Liability12 Changes13 Contact

01 / AGREEMENT

Agreement and operator

These Terms of Service govern Stream at stream.seanbehan.ca, the personal livestream at live.codebam.ca, related public watch pages, and streaming and relay features (the "Service"). The Service is independently operated by Sean Behan. References to "we" or "us" mean the operator.

By creating an account, buying prepaid credits, publishing a broadcast, or otherwise using the Service, you agree to these terms and the Privacy Policy. If you act for an organization, you confirm that you can bind it. You must be able to enter a binding contract where you live.

02 / FORMAT

What the Service provides

Stream accepts one live broadcast from OBS, provides one public browser watch page, and can send that broadcast to configured YouTube, Twitch, X, Kick, and Telegram destinations. Cloudflare Realtime carries live media. The Service does not record broadcasts or provide recording storage.

  • Each account can have one named channel and one public watch address.
  • Each channel supports one live broadcast at a time and up to 25 simultaneous browser viewers.
  • You can save one destination for each supported provider and enable all five at once.
  • Paused destinations can remain configured without being included in a new relay run.
  • The optional always-start preference attempts to start enabled destinations on a future OBS connection; manual relay start and stop do not change that preference.
  • The personal broadcast on live.codebam.ca is separate from customer channels and uses the operator's owner channel.

Broadcast technical limits

To keep delivery sustainable, incoming broadcasts are re-encoded to a fixed maximum. These are the highest delivery parameters the Service will produce for any broadcast; configuring OBS to send more does not raise them.

  • Video is capped at 1080p (1920×1080) at 60 frames per second.
  • The top video layer is capped at 5 megabits per second; adaptive lower layers are delivered to constrained viewers. Sending a higher bitrate (for example 50,000 Kbps) is re-encoded down to this ceiling and adds no quality.
  • Audio is delivered as Opus, stereo, up to 96 kilobits per second.
  • A channel carries one broadcast at a time to at most 25 simultaneous browser viewers.

The operator may lower these ceilings over time. They do not change the metered credit prices in the prepaid credits section.

03 / ACCESS

Accounts and credentials

Discord or GitHub provides account sign-in. You are responsible for your provider accounts, active browser sessions, ingest token, destination stream keys, and secure server addresses. Do not share credentials or let another person use your account. Tell us promptly if you believe access has been compromised.

Account and channel names must be accurate enough to administer the Service and must not impersonate another person or organization. We may reject or change a misleading, abusive, or technically reserved public address.

04 / PREPAID

Prepaid credits and usage

The Service has no monthly fee, monthly commitment, or automatic renewal. Relay credits are advertised at CAD $1.50 per enabled destination-hour. Viewer credits are advertised at CAD $0.75 per aggregate browser viewer-hour. Stripe processes a one-time Checkout for any whole quantity from 1 through 1,000 hours of one credit kind per order. The quantity, unit price, taxes if applicable, currency, and total shown in Stripe Checkout control before you confirm payment.

Stripe Checkout accepts active percentage-off promotion codes, including a 100% discount when the code permits it. A percentage discount changes the amount charged, not the selected credit hours. A 100%-discounted Checkout adds credit only after the Service verifies Stripe's completed zero-total state and confirms that no Payment Intent exists. Fixed-amount coupons are not accepted. Stripe enforces each promotion code's validity, redemption, customer, expiry, and other restrictions.

Credits never expire

Confirmed relay and viewer credits remain in the account balance until used or adjusted under the refund and dispute rules below. There is no billing-period reset or monthly renewal.

Viewer usage is aggregate browser viewing time: two browsers connected for one hour consume two viewer-hours. Internal relay transport does not count as a browser viewer. Viewer admission stops when the viewer balance is exhausted or the 25-viewer concurrency limit is reached.

Relay usage is destination-weighted wall time. A relay generation is metered using the fixed number of destinations in its confirmed desired configuration. Two enabled destinations running for one wall hour consume two relay destination-hours. If an output is degraded, failed, or retrying while that desired relay configuration remains confirmed, it continues counting. Counting ends when the relay is stopped or a configuration change invalidates or replaces that relay run.

Delivered usage is allocated when its accounting event settles, using an immutable first-in, first-out order. Any base credit recorded for the account is consumed first. The oldest purchase grant that is currently spendable is consumed next. Because this is settlement order rather than service-time order, delayed usage can consume credit that is available when the event settles. Once a ledger allocation is recorded, it does not move to a different grant later.

The Service enforces available credit and concurrency limits. A relay stops when relay credit is exhausted. Browser delivery stops or rejects new sessions when viewer credit is exhausted. Small overrun amounts caused by live cutoff and durable accounting remain recorded as delivered usage.

05 / SETTLEMENT

Grant timing, refunds, and disputes

Submitting Checkout does not itself grant credit. Credit is granted only after the Service verifies the paid Stripe Checkout, Payment Intent, charge, amount, currency, quantity, price terms, account ownership, and related payment state. Confirmation may remain pending while Stripe events and server reconciliation complete. If a paid order cannot be safely granted to its current billing identity, the Service can hold it and attempt a full automatic refund.

  • A partial refund by itself does not proportionally revoke or reduce granted credit.
  • After refunds total the full order amount, unused credit from that order is removed. Any credit already allocated to delivered usage remains allocated, and both the usage and its physical ledger allocation remain recorded.
  • An open payment dispute, or a potentially full refund still in progress, holds unused related credit so it cannot be consumed while the outcome is unresolved.
  • A won or otherwise released dispute restores unused held credit unless another hold or full refund applies.
  • A terminal lost dispute removes unused related credit. Delivered usage remains recorded.
  • If an automatic refund cannot be completed after the Service's retry process, the order can show a refund-failed state for operator review.

One-time prepaid purchases do not renew and have no future renewal to cancel. Leaving Checkout before payment does not add credit; an open Checkout can remain resumable until Stripe expires it. Except where applicable law requires otherwise or these terms expressly describe a refund, completed purchases are not refundable merely because you stop using the Service. Email sean@seanbehan.ca about duplicate, incorrect, or unresolved charges.

Historical recurring-plan and fixed top-up records may remain in Service accounting. They do not create a new recurring charge or change the prepaid rules for new purchases.

06 / CONTENT

Your broadcasts and destinations

You keep your rights in video, audio, names, and other material you send through the Service. You give the operator and infrastructure providers limited, worldwide permission to receive, process, transmit, and temporarily hold technical session data only as needed to operate, secure, account for, and troubleshoot the Service.

You confirm that you have the rights and permissions needed to broadcast the material and send it to each destination. You are responsible for audience notices, releases, music rights, privacy obligations, and compliance with YouTube, Twitch, X, Kick, Telegram, OBS, and other applicable third-party terms.

A channel may publish a link to a public Telegram chat and present it in its watch page sidebar as either a link card or Telegram's own embedded widget. Stream stores only the public link the channel owner saves; it does not host, store, transmit, or moderate chat messages and cannot edit or delete one. In embed mode the page loads Telegram's widget directly, so Telegram sees that visit under its own terms. Use Telegram's report tools or ask a chat administrator about a message you believe is unlawful.

07 / CONDUCT

Acceptable use

You must not use the Service to:

  • break the law, infringe rights, or broadcast content you are not allowed to use;
  • harass, exploit, defraud, threaten, or expose another person's private information;
  • distribute malware or facilitate attacks, spam, credential theft, or platform abuse;
  • bypass account, payment, credit, viewer, destination, security, or the broadcast technical limits described above;
  • probe or disrupt the Service, or send source media or automated traffic that unreasonably burdens it (including sustained bitrates far above the stated delivery ceiling); or
  • resell account access or operate the Service for another account holder without written permission.

We may stop a broadcast or relay, disable a channel, suspend access, or terminate an account when reasonably needed to address abuse, security, payment reversal, exhausted credit, legal demands, or a material breach. Where practical, we will give notice and an opportunity to correct the issue.

08 / EXTERNAL

Third-party services

The Service depends on Cloudflare and may connect at your direction to Discord, GitHub, Stripe, YouTube, Twitch, X, Kick, and Telegram. Those services are governed by their own terms and can change, reject, interrupt, record, or end their features. The operator of Stream is not responsible for a third-party account, destination, payment system, recording, or outage outside the operator's reasonable control.

Where a watch page links to a Telegram chat, that chat is a Telegram service governed by Telegram's terms and privacy policy, not by these terms. Viewers post there as Telegram users, and channel owners are responsible for the chats they choose to link.

09 / FUNDING

Operator funding and service pauses

Stream is an independently funded service, not a utility, and it depends on paid third-party capacity, principally LiveKit Cloud. The operator keeps the Service OFF while it cannot afford to run it. The operator's current funding rule is that at least 50 relay destination-hours must be paid for in a calendar month before the Service is treated as funded for that month. If that floor is not met, the operator may keep the Service off or pause new broadcasts, relay delivery, browser playback, or the Service as a whole until enough paid hours have been collected.

Paid hours means hours the Service has confirmed as paid under the prepaid credit rules. For the funding floor, hours are measured from the net amount actually settled for those hours, after percentage discounts and refunds, at the published relay hourly price. Hours merely left in an account, hours reserved, or hours an open Checkout might add do not count for the month until they are confirmed. The operator may raise the floor when LiveKit or other infrastructure bills require it; the current floor is posted with these terms.

A funding pause is not a forfeiture of prepaid credit. Confirmed relay and viewer credits remain recorded under these terms until used or adjusted under the refund and dispute rules above. Where practical, the operator will give notice on the Service before or during a pause, but a pause may take effect immediately when needed to avoid an unfunded bill.

The dashboard shows the current estimated LiveKit allowance and monthly funding status. That estimate is a convenience built from Stream's own metering, not a representation of LiveKit's invoice; the LiveKit Cloud dashboard and invoice control for billing.

10 / AVAILABILITY

Availability and ending use

The Service is provided on an "as is" and "as available" basis. No uptime, support response, audience size, video quality, destination delivery, or uninterrupted operation is guaranteed. Live video can be delayed, degraded, retried, or interrupted by browsers, source networks, Cloudflare, destinations, maintenance, exhausted credit, a funding pause under section 09, or events outside our control.

You can stop using the Service at any time, stop or remove relay destinations, and delete your channel. There is no new recurring plan to cancel. We may change or discontinue the Service. Changes to unit prices apply to future purchases, not hours already credited. If the operator permanently ends the prepaid Service, contact us about unused purchased credit; this does not limit non-waivable consumer rights.

11 / RISK

Warranty and liability

To the extent permitted by law, the operator of Stream disclaims implied warranties, including merchantability, fitness for a particular purpose, and non-infringement. You are responsible for testing your setup, keeping a backup broadcast plan, monitoring each output, and preserving any recording you need through another service.

To the extent permitted by law, the operator is not liable for indirect, incidental, special, consequential, or lost-profit damages. The operator's total liability arising from the Service or these terms will not exceed the fees you paid for the Service during the 12 months before the event giving rise to the claim. Nothing in these terms excludes a warranty, remedy, or liability that applicable law does not allow us to exclude or limit.

12 / REVISION

Changes to these terms

We may update these terms as the Service or legal requirements change. Material changes apply prospectively and will be posted here with a new effective date. If you do not agree to an update, stop using the Service before the update applies. Existing credit remains subject to payment adjustments, disputes, applicable law, and the terms in effect for its continued use.

13 / CONTACT

Contact

STREAM / OPERATORIndependently operated by Sean Behan
sean@seanbehan.ca
STREAM

Stream / independently operated

TermsPrivacyContact