RocketView - Alternativer Webviewer für den RBTV Youtube Stream

Hey, danke für euer Feedback.

@Aynce Ich werde mir das bei Gelegenheit mal ansehen (Theater Mode).

@ratzeputze Light Theme ist nicht schwer, hat jedoch geringe Prioriät. Ich werde wahrscheinlich ein Modal oder Panel mit Optionen integrieren, dank AngularJS ist es dann auch einfach ohne die Seite neu zu laden andere CSS Klassen zu verwenden und per Button/Checkbox das Theme zu ändern.

Zuschauerzahlen sind etwas kompliziert. Problem und mögliche Lösung http://stackoverflow.com/a/37478112, allerdings habe ich keinen PHP Server laufen und möchte für diese Anwendung auch darauf verzichten, Ich schaue mir grad webscraping mit google.sheets importxml an, vielleicht führt das zu etwas.

@Lubitzkie und @DoomDesign Die max-width ist tatsächlich auf eine maximale Bildschirmgröße von 1920x1080px optimiert. Bei Browser Vollbild und ausgeblendetem Chat sollen Player, Titel und Buttons (Play Live-Stream + Toggle Chad) im Bild sein. Da lässt sich bestimmt noch etwas optimieren. Ich habe nichts gegen Pull Requests, aber gedulded euch ruhig noch ein wenig und lasst mich noch etwas daran feilen :wink:

@Lubitzkie Ist gar nicht so schwer das Projekt zum Laufen zu bekommen. Erfordert node.js, ich benutze das Foundation for Apps Framework, die Installationsanleitung reicht eigentlich. Ohne WebDev bzw. Dev Erfahrung würde ich es mir allerdings gut überlegen da einzusteigen :wink:

@pronuntiator Danke für den Hinweis mit dem iframe Parameter, war mir nicht bekannt.

Abschließend: Womit ich aktuell am ehesten Hilfe benötige ist das oben erwähnte webscraping über importxml. GoogleSpreadsheet Beispiel, Abfrage des ViewCounts bei normalen Video Uploads funktioniert, bei Live Videos noch nicht. Wahrscheinlich hab ich einfach ein riesen Brett vorm Kopf und sehe die offensichtliche Lösung nicht.

1 „Gefällt mir“

Ich hab dir eine Lösung mit IMPORTDATA hinterlassen, aber vermutlich ist es einfacher, wenn du gleich ein App-Skript schreibst, das die Daten von live_stats in das Spreadsheet einträgt. Du hast da ein Quota von 13 Abfragen pro Minute.

Edit: Wie willst du das dann eigentlich darstellen? Dieses Geckoboard aus dem Artikel kostet Geld.

Cool danke. So etwas sollte reichen.

Ah, ok. Bin neu in JavaScript und kannte cross origin request header noch nicht :sweat_smile:

Wirklich tolle Seite bzw. tolles Projekt!

Updates

  1. Viewer Count hinzugefügt (Webscraping über Google Spreadsheet + GoogleAppScript -> JSON Request), minütliche Aktualisierung (GoogleAppScript Limit).
  2. Optimierungen der max-width.
4 „Gefällt mir“

Nutzt jetzt die Breite gut aus.
Bei eingeblendetem Chat fehlt jetzt allerdings die Leiste unter dem Stream inklusive dem Chat Eingabefeld.
Zumindest bei meinem 21:9 Bildschirm.Wegen mir musst du es aber auch nicht Optimieren. Ich werde wohl letztendlich hauptsächlich mit VLC + Chatfenster schauen.
Weiterverfolgen werde ich das Projekt aber. Mit Webentwicklung will ich mich eigentlich sowieso mal beschäftigen.

Ich werde nicht allzu viel Aufwand betreiben 21:9 zu unterstützen, allerdings kannst du mit wenig Aufwand helfen. Folgende Klassen werden genutzt um die max-width zu regeln. .grid-container-118rem wird über JavaScript (Angular) hinzugefügt je nachdem ob der Chat ein- oder ausgeblendet ist. Ich bin noch nicht sicher welche Optionen Sinn machen aber ich plane ein Options-Menü, hier könnte auch eine Checkbox für 21:9 vorhanden sein. Wenn du mir gute Breakpoints und max-width in rem dafür gibst, bzw für die vorhandenen Breakpoints, kann ich mit 1 min Arbeitsaufwand diesen Support hinzufügen.

.grid-container {
	max-width: 93rem;
	padding: 1rem;
	@include mq($min-width: 2100px) {
		max-width: 103rem;
	}
	@include mq($min-width: 2300px) {
		max-width: 116rem;
	}
}
.grid-container-118rem {
	max-width: 118rem !important;
	@include mq($min-width: 2100px) {
		max-width: 128rem !important;
	}
	@include mq($min-width: 2300px) {
		max-width: 141rem !important;
	}
}

Ok kann ich demnächst machen. Einen max-width Wert der für 21:9 passt zu finden bekomme ich hin.
Aber was meinst du mit Breakpoints?

CSS Media-Query Breakpoints. Im gezeigten CSS also z.B. $min-width: 2100px.

Die Breakpoints passen wohl. Der mit 2100px wird benutzt wenn der Browser nicht im Vollbild ist. Der mit 2300px dann im Vollbild. Ich hab jetzt Werte die mit und ohne Chat für Vollbild und nicht Vollbild in 21:9 und 16:9 passen:

.grid-container {
    max-width: 93rem;
    padding: 1rem
}

@media only screen and (min-width: 2100px) {
    .grid-container {
        max-width:97rem
    }
}

@media only screen and (min-width: 2300px) {
    .grid-container {
        max-width:109rem
    }
}

.grid-container-118rem {
    max-width: 118rem!important
}

@media only screen and (min-width: 2100px) {
    .grid-container-118rem {
        max-width:122rem!important
    }
}

@media only screen and (min-width: 2300px) {
    .grid-container-118rem {
        max-width:134rem!important
    }
}

Screenshots: http://imgur.com/a/j7I12

Kann ich übernehmen, aber sollte der Stream-Titel nicht vielleicht auch im Bild sein? Sicherlich eine Geschmacksfrage, allerdings macht es dann wohl mehr Sinn ein wenig Raum in der Breite zu verschwenden anstatt es gar nicht erst zu ermöglichen alles zu sehen.

Ich geb es dir gleich nochmal mit dem Stream Titel.
Allerdings hab ich grade noch das Problem gefunden das es nicht im Vollbild nur passt weil ich meine Tableiste links habe und damit die breite kleiner wird. Wenn die oben ist bräuchte man wieder andere Werte. Ich probier mal etwas ob das noch besser geht.

So passt es jetzt bei mir mit Stream Titel und auch wenn die Tab-Leiste oben wäre:

.grid-container {
    max-width: 93rem;
    padding: 1rem
}

@media only screen and (min-width: 2100px) {
    .grid-container {
        max-width:89rem
    }
}

@media only screen and (min-width: 2300px) and (min-height: 1000px) {
    .grid-container {
        max-width:106rem
    }
}

.grid-container-118rem {
    max-width: 118rem!important
}

@media only screen and (min-width: 2100px) {
    .grid-container-118rem {
        max-width:113rem!important
    }
}

@media only screen and (min-width: 2300px) and (min-height: 1000px) {
    .grid-container-118rem {
        max-width:130rem!important
    }
}

Damit es für andere Fenstergrößen auch passt müsste man wenn ich es richtig verstehe auch die Höhe des Videos beschränken. Extremes Beispiel bei dem es nicht passt:

Das ist dann aber auch komplizierter schätze ich mal :grinning:

Updates

  1. Options-Menü: Auswahl zwischen 16:9 und 21:9; Aktvieren/Deaktivieren von Notifications.
  2. HTML5-Notifications wenn ein neuer Titel (Wechsel des Videos oder neuer Stream Titel) erkannt wird.
  3. Hervorhebung von Shows/Sendungen im Titel sofern sie erkannt werden können.
2 „Gefällt mir“

Updates

  1. Geändertes Update Verhalten für Video Listen. Nur der aktive Channel wird automatisch aktualisiert. Umschalten triggert ein Update.
  2. Stream Titel Aktualisierung über Google Spreadsheet statt Youtube API.
  3. Uhr zur Menu-Leiste hinzugefügt.
  4. Notification Bilder/Logos für (fast) alle Sendungen hinzugefügt.

Updates

  1. Support für mehrere parallel laufende Streams (Wechsel über Liste aktuell verfügbarer Streams)
1 „Gefällt mir“

Updates

Stream und Video Daten werden nun indirekt über die Youtube API bezogen (Umweg über Google Spreadsheet), somit werden die API Limits umgangen und die Daten können minütlich aktualisiert werden. Unabhängig von der Anzahl an Benutzern.

2 „Gefällt mir“

geiles Projekt. :thumbsup:

kleine Frage: ist es möglich die Chat Icons von BetterRBTV auf der Seite zu implementieren, für alle die RBTV nicht am Desktop Rechner schauen und somit keine Addons installieren können?
Ich könnte mir vorstellen, dass es zwar möglich ist jedoch den Chat unbrauchbar macht, wenn in realtime die Icons per JavaScript ausgetauscht werden. Trotzdem wollte ich mal fragen ob du glaubst, dass man das vielleicht erfolgreich schaffen könnte. Ist die einzige Sache die rocketview noch zur Perfektion fehlt. Wenn bitte als zusätzliche Checkbox. Danke :heart: Hammer Projekt!