28765a0dbf
1. About box bg → #0A0C1A (matches icon bg) 2. Elements panel collapses when no element selected / scene changes 3. OpacityChip moved from preview overlay into Elements panel 4. Color picker fix: cast to SceneElement not Source (WebcamSceneConfig was silently blocked) 5. Red left accent bar on selected items in Scene/Source lists 6. ✓ character replaced with Path checkmark icon in Elements panel 7. Removed ToolTip='Applied' from green check buttons 8. Created bugs.md with first entry (iTunes audio on mic meter) 9. Full logo in README + About box uses ytLlive-logo.png
64 lines
2.5 KiB
Markdown
64 lines
2.5 KiB
Markdown
# ytLlive
|
|
|
|
<p align="center">
|
|
<img src="Assets/ytLlive-logo.png" alt="ytLlive — livestream smarter" height="120"/>
|
|
</p>
|
|
|
|
A creator-proof live-streaming and recording app for YouTube — native Windows (C# / WPF / .NET 8).
|
|
|
|
## Screenshot
|
|
|
|

|
|
|
|
## Design Principle
|
|
|
|
> This software is so intuitive that even the most right-brained person can easily intuit and use it.
|
|
|
|
Every feature is measured against this. One-click go-live, sane YouTube defaults, visual scene
|
|
building, and no dead ends — every action has a visible outcome.
|
|
|
|
## Why ytLlive
|
|
|
|
OBS treats YouTube as an afterthought; SLOBS is Twitch-first with YouTube bolted on. ytLlive is
|
|
designed and dedicated to YouTube livestreaming and recording, and to YouTube's specific quirks.
|
|
|
|
## Account Assumption
|
|
|
|
ytLlive assumes you already have a YouTube creator account — connecting uses "Sign in with Google"
|
|
to link that existing account. **ytLlive does not create accounts.** If you don't have a YouTube
|
|
channel yet, set one up on YouTube first, then connect it here.
|
|
|
|
## Run
|
|
|
|
```bash
|
|
dotnet build # Windows only — WPF
|
|
dotnet run
|
|
```
|
|
|
|
## Version Roadmap
|
|
|
|
| Version | Scope |
|
|
|---------|-------|
|
|
| v0.1 | Scene/source management, YouTube RTMP ingest, YouTube OAuth2, live chat, stream health |
|
|
| v0.2 | Recording to local file |
|
|
| v0.3 | Stream scheduling |
|
|
| v0.4 | Multi-destination restreaming |
|
|
| 1.0 | General availability |
|
|
|
|
## Structure
|
|
|
|
| Path | Role |
|
|
|------|------|
|
|
| `Models/` | Scene, Source, QualityOption, StreamConfig, StreamHealth, YouTube channel/chat, Socials (social bar) |
|
|
| `ViewModels/` | MainViewModel — scenes, stream controls, chat; GoLiveViewModel, ReuseImageViewModel, SocialsDialogViewModel |
|
|
| `Services/` | YouTubeAuthService (OAuth2), YouTubeStreamService (broadcast/health), YouTubeChatService (chat polling), LayoutStore (SQLite), SocialValidator (social link/fediverse validation + nodeinfo icon resolution) |
|
|
| `Helpers/` | ViewModelBase, RelayCommand, ImageCache, AppLog, FocusPreservingListBox, OAuthCredentials |
|
|
| `Themes/` | `Controls.xaml` — the dark-theme control styles, merged once in `App.xaml` |
|
|
| `MainWindow.xaml` | Dark-theme main UI: scene/source panel, preview, chat, status bar |
|
|
| `SocialsDialog.xaml` | Social Media Site Promotion dialog — 6-slot social bar editor with sign-in gate and validation |
|
|
|
|
## Docs (memory map)
|
|
|
|
`schema.md` defines the conventions; `ai.md` is the AI/session guide;
|
|
`TASKS.md` is the task queue. Each code directory carries an `index.md`.
|