Sådan caster du YouTube-videoer fra din telefon til Raspberry Pi ved hjælp af YouTube på tv (youtube.com/tv)

Denne artikel forklarer, hvordan du bruger YouTube på tv (https://youtube.com/tv) på en Raspberry Pi og styrer den ved hjælp af YouTube-appen fra din mobilenhed, næsten som om du bruger en Chromecast.

Når du har konfigureret alt, vil du være i stand til at bruge cast-knappen fra YouTube-appen på din telefon til at oprette forbindelse til YouTube på tv, der kører på din Raspberry Pi (ved hjælp af Chromium-webbrowser i kiosktilstand), og bruge din telefon som en YouTube fjernbetjening. Du vil være i stand til at afspille videoer, tilføje videoer til køen, ændre lydstyrken ved hjælp af telefonens lydstyrketaster osv. Også flere telefoner (så flere brugere) kan forbinde, afspille og tilføje videoer til køen på samme tid.

Bemærk, at jeg kun har testet dette med Android-telefoner, så jeg er ikke sikker på, om det også virker med iOS. Det burde den nok, men jeg ejer ingen iOS-enheder.

Vigtig note. Du må ikke forveksle YouTube på TV (https://youtube.com/tv) med YouTube TV (https://tv.youtube.com). "YouTube on TV" eller "YouTube for TV" er en YouTube-webgrænseflade designet til smart-tv'er, og det er det, vi kommer til at bruge på en Raspberry Pi, mens YouTube TV er en streaming-tv-tjeneste, der tilbyder live-tv og på -efterspørgsel video.

Brug af YouTube på tv på en Raspberry Pi har en del fordele i forhold til at bruge en Chromecast, men også nogle ulemper.

Fordele ved at bruge YouTube på tv (https://youtube.com/tv) på en Raspberry Pi i stedet for en Chromecast (jeg er ikke sikker på, om alt gælder for den nyeste Chromecast, jeg har den ældre Chromecast Ultra):

  • Du kan bruge en annonceblokering som Ublock Origin (leveres forudinstalleret med Chromium-browseren på Raspberry Pi OS) – ingen flere annoncer på YouTube (nej, Pi-hullet er ikke pålideligt til at blokere YouTube-annoncer, tro mig, jeg har prøvet)
  • YouTube-appen på din telefon afbryder ikke forbindelsen til YouTube på tv efter en periode med inaktivitet
  • YouTube-appen lukker ikke efter en periode med inaktivitet, så videoer, der er sat på pause, forbliver på skærmen på ubestemt tid
  • Du kan navigere gennem YouTube på TV-appen fra din telefon (efter at have oprettet forbindelse til YouTube på TV med din mobilenhed, klik på cast-ikonet, og du får en fjernbetjeningsknap, som gør det muligt at navigere gennem videoerne, ændre videoindstillingerne osv. )
  • Du kan ændre videokvaliteten (hvilket ikke er muligt på en Chromecast) ved hjælp af den fjernbetjening, jeg nævnte ovenfor
  • Du bør være i stand til at gennemse YouTube på tv-grænsefladen ved hjælp af dit tv's fjernbetjening, så længe tv'et understøtter CEC, ved at bruge cec-client. Dette kræver nogle justeringer, og jeg er ikke nået til at gøre det endnu. Sådan tænder/slukker du for eksempel et tv tilsluttet via HDMI-CEC.

Ulemper ved at bruge YouTube på tv på en Raspberry Pi i stedet for en Chromecast:

  • Brug af YouTube på tv på en Raspberry Pi er åbenbart ... kun for YouTube, mens en Chromecast understøtter mange andre lyd- og videoplatforme. Dette er en stor ulempe, hvis du bruger mange andre lyd-/videoplatforme, men hvis du kun vil have dette til YouTube, er det et godt alternativ at bruge YouTube på tv på en Raspberry Pi
  • Videokvaliteten kan være lavere. Ved at bruge h264ify-udvidelsen (installeret som standard på Raspberry Pi OS; påkrævet til hardware-accelereret videoafspilning på YouTube) får du en maksimal videokvalitet på 1080p30. Uden denne udvidelse får du op til 4K-videoer (men de spillede ikke ordentligt på min Raspberry Pi 4). Også ved brug af YouTube på tv på en Raspberry Pi, hvis en video kun er 1080p60, nedgraderes videoen til 720p60
  • Første gang du tilslutter en telefon til YouTube på TV, skal du indtaste en pinkode, og til dette skal du bruge en mus (eller noget software til at emulere en mus fra din telefon eller skrivebord) på din Raspberry Pi for at komme til pin side. Når en telefon er forbundet med en pin, fungerer den ligesom en Chromecast

Dette er alle de fordele og ulemper, jeg kunne komme i tanke om, men der kan være andre. Det afhænger virkelig af, hvordan du bruger dette, og hvad du vil have ud af det.

Det er vigtigt at bemærke, at for at teste alt dette, har jeg brugt en Raspberry Pi 4 med Raspberry Pi OS. Ikke alt fra instruktionerne nedenfor vil virke, hvis du bruger en anden Linux-distribution (f.eks. vil det ikke være det samme at tilføje programmer til opstart). Jeg er ikke sikker på, hvor godt ældre Raspberry Pi-modeller er i stand til at afspille YouTube-videoer. Du behøver heller ikke bruge dette på en Raspberry Pi – du kan bruge på en hvilken som helst computer, der kører Linux, men nogle dele af instruktionerne nedenfor vil ikke fungere nøjagtigt på samme måde.

Konfigurer YouTube på tv (https://youtube.com/tv) med Chromium for at starte ved opstart på din Raspberry Pi

1. Installer Chrome-udvidelsen YouTube TV på pc i Chromium-browseren.

Du kan få udvidelsen fraChrome Webshop.

Som standard omdirigeres et besøg på https://youtube.com/tv på en anden enhed end et tv til det almindelige YouTube-websted. Det ser ud til, at Google virkelig ikke vil have os til at bruge dette på andet end et tv på grund af ... sandsynligvis annonceblokkere.

Brug af en tv-brugeragent løser dette, men videoerne er 720p. Ved at bruge YouTube TV på pc-udvidelsen stopper https://youtube.com/tv med at omdirigere til det almindelige YouTube, mens det også tillader videoer med en kvalitet, der er højere end 720p. Vi skal stadig bruge en brugeragent, når vi starter Chromium i kiosktilstand, fordi den af en eller anden grund omgår denne udvidelses brugeragent (dette sker ikke, når den startes uden kiosk eller fuldskærmstilstand), men ved at bruge denne vil få videoer i højere kvalitet.

2. Opret et script, der starter Chromium-browseren i kiosktilstand og indlæser https://youtube.com/tv med nogle indstillinger for at optimere det til brug med YouTube på TV.

Lav et script, lad os kalde detyt, i~/.local/bin.

For at sikre, at~/.local/binmappe eksisterer (og opret den, hvis den ikke gør det), kør denne kommando:

mkdir -p ~/.local/bin

Opret nu en fil kaldetyti~/.local/bin, og åbn den med en teksteditor. Vi bruger Nano kommandolinjeteksteditor til at åbne den ved hjælp af følgende kommando:

nano ~/.local/bin/yt

Indsæt følgende i denne fil:

#!/bin/bash

sed -i 's/"exited_cleanly": false/"exited_cleanly": true/' ~/.config/chromium/Default/Preferences

sed -i 's/"exit_type": "Crashed"/"exit_type": "None"/' ~/.config/chromium/Default/Preferences

sleep 5; chromium-browser --autoplay-policy=no-user-gesture-required --enable-extensions --user-agent="Mozilla/5.0(SMART-TV; Linux; Tizen 4.0.0.2) AppleWebkit/605.1.15 (KHTML, like Gecko) SamsungBrowser/9.2 TV Safari/605.1.15" --kiosk "https://www.youtube.com/tv"  >/dev/null 2>&1 &

Her er hvad dette gør:

  • den 2sedkommandoer (viaRaspberry Pi StackExchange) ændre ChromiumPreferencesfil, som om Chromium afsluttede rent, hvis browseren faktisk ikke afsluttede rent. På denne måde får du ikke sessionsgendannelses-pop-up'et, hvis browseren går ned, din strøm går ud osv. Jeg er ikke sikker på, om dette virkelig er nødvendigt, når du starter Chromium i kiosktilstand, men jeg synes, det er bedre at have dette i scriptet, så Chromium ikke starter korrekt
  • sidste linje:
    • sleep 5bruges til at vente 5 sekunder, før du starter Chromium-browseren. Vi vil tilføje dette script til opstart, så vi venter 5 sekunder, før vi starter Chromium, så Raspberry Pi har tid nok til at oprette forbindelse til internettet. Hvis det tager længere tid for dig, skal du ændre søvnværdien her
    • derefter starter vi Chromium ved at bruge følgende muligheder:
      • --autoplay-policy=no-user-gesture-required: dette giver Chromium mulighed for at autostarte videoen. Uden dette skal du manuelt starte den første video efter en Chromium-genstart, og dette kan ikke gøres fra YouTube-appen, så du skal bruge et tastatur til at gøre dette, eller sende en nøgle ved hjælp af noget som f.eks.xdotool
      • --enable-extensions: selvforklarende – det tillader indlæsning af udvidelser, såsom YouTube TV på pc-udvidelsen, UBlock Origin, h264ify osv.
      • --user-agent="Mozilla/5.0(SMART-TV; Linux; Tizen 4.0.0.2) AppleWebkit/605.1.15 (KHTML, like Gecko) SamsungBrowser/9.2 TV Safari/605.1.15": Selvom vi bruger Chrome-udvidelsen YouTube TV på PC, hvis Chromium starter i fuldskærms-/kiosktilstand, omdirigeres den stadig til den almindelige YouTube-webstedsgrænseflade. Så vi bruger en tv-brugeragent til at få YouTube til at blive påhttps://youtube.com/tv
      • --kiosk: kører Chromium i kiosktilstand. Dette får den til at starte i fuld skærm og deaktiverer nogle popus, såsom oversæt popup osv.
      • "https://www.youtube.com/tv": dette er den URL, vi vil åbne, når Chromium starter
    • >/dev/null 2>&1omdirigerer STDOUT og STDERR, så du ikke ser noget output i terminalen, hvis du kører dette manuelt, og&holder applikationen kørende

3. Tilføj vores nye script til opstart.

Start med at lave det nyeytscript eksekverbar:

chmod +x ~/.local/bin/yt

Rediger derefter Raspberry Pi OS autostart-filen (~/.config/lxsession/LXDE-pi/autostart) ved hjælp af en teksteditor – ved at bruge kommandoen nedenfor åbner vi den ved hjælp af Nano kommandolinjeeditor:

nano ~/.config/lxsession/LXDE-pi/autostart

Tilføj følgende linje i denne fil for at autostarteytmanuskript:

@bash /home/pi/.local/bin/yt

Når du er færdig, skal du gemme filen (brugCtrl + O, derefterEnterfor at gemme den, efterfulgt afCtrl + Xfor at afslutte Nano).

Det er vigtigt at bemærke, at vi ikke kan bruge~/.local/bin/yti autostart-filen. Vi skal bruge den fulde vej tilytmanuskript. Så hvis stien er anderledes (du bruger ikke standardenpibruger), juster dette til dit system/brugernavn.

4. Start Chromium med YouTube på tv for første gang.

Chromium med YouTube på TV starter automatisk ved opstart. Men da vi ikke ønsker at genstarte bare for at starte den, kan vi starte den manuelt. Luk alle kørende Chromium-browservinduer, åbn derefter en terminal, og skriv:

~/.local/bin/yt &

5. Par din telefon med YouTube på TV, der kører på Raspberry Pi.

Med Chromium-browseren kørende og https://www.youtube.com/tv åben på din Raspberry Pi, gå til indstillinger (gearikonet nederst til venstre), og klik derefter påLink with TV code, og du vil se en kode på dit tv's skærm:

Åbn nu YouTube-appen på din telefon, klik på cast-ikonet øverst i appen, og du får en mulighed, der sigerLink with TV code

Klik på dette og indtast koden, du ser på dit tv:

KlikLinkefter indtastning af koden, og du er færdig! Du kan oprette forbindelse til YouTube på tv, der kører på din Raspberry Pi og caste YouTube-videoer fra din telefon til den ved at oprette forbindelse til den nyligt tilføjede enhed:

Dette får YouTube på TV op at køre på din Raspberry Pi. Men udover dette bruger jeg også nogle tweaks / optimeringer, som du måske også vil bruge. Se nedenfor for detaljer.

Optimeringer / tweaks til brug af YouTube på TV via Chromium på Raspberry Pi

1. Aktiver hardwareacceleration i Chromium-browseren, der kører på Raspberry Pi.

Dette er nok den vigtigste optimering/tweak. Ved at bruge dette skal YouTube-videoer bruge meget mindre CPU, mens du holder din Raspberry Pi køligere. Tjek følgende artikel fra Linux Uprising for nøjagtige instruktioner:

Sådan aktiveres hardwareacceleration i Chromium på Raspberry Pi OS

2. Skjul musemarkøren automatisk, når den er inaktiv.

Musemarkøren vises øverst på YouTube på TV. For at få det til at skjule automatisk, bruger jegunclutter-xfixes, en omskrivning af det populæreunclutterværktøj, men ved at bruge x11-xfixes-udvidelsen (og med nogle forbedringer). Du kan også bruge den originale unclutter (det er i depoterne), men jeg foretrækker personligt denne gaffel. Bemærk, at deres brug ikke er det samme, så hvis du vil bruge det originale ryddeligt, seher.

For at installere unclutter-xfixes, installer Git, hvis du ikke allerede har gjort det, samt unclutter-xfixes-afhængighederne:

sudo apt install git libx11-dev libxfixes-dev libxi-dev libev-dev asciidoc

Derefter skal du klone unclutter-xfixes GitHub-depotet, bygge og installere værktøjet:

git clone https://github.com/Airblader/unclutter-xfixes

cd unclutter-xfixes

make

sudo make install

For at automatisk skjule musemarkøren, når den er inaktiv, skal du tilføjeunclutter -btil opstart. For at gøre dette skal du åbne Raspberry Pi OS autostart-filen med en teksteditor – vi bruger Nano-konsollens teksteditor nedenfor:

nano ~/.config/lxsession/LXDE-pi/autostart

Tilføj i slutningen af ​​filen:

@unclutter -b

Når du er færdig, skal du gemme filen (brugCtrl + O, derefterEnterfor at gemme den, efterfulgt afCtrl + Xfor at afslutte Nano). Eller vent og gem det efter næste trin, da vi tilføjer endnu en kommando til autostart.

3. Deaktiver skærmblanking

For at deaktivere skærmblankning skal vi igen tilføje en kommando til autostart-filen. Så åbn~/.config/lxsession/LXDE-pi/autostartfil med Nano:

nano ~/.config/lxsession/LXDE-pi/autostart

Og i slutningen af ​​filen skal du tilføje:

@xset -dpms s off

Og til sidst, gem filen (brugCtrl + O, derefterEnterfor at gemme den, efterfulgt afCtrl + XAt forlade).

4. Installer Profile Sync Daemon for at indlæse Chromium-profilen i tmpfs (RAM).

Profil Sync Daemoner et værktøj til at holde din browserprofil i tmpfs og periodisk synkronisere den tilbage til din fysiske disk. Dette fremskynder Chromium, samtidig med at der bliver færre skrivninger til disken, så dit Raspberry Pi's sdcard/USB holder længere. Brug dette, hvis din Raspberry Pi har nok RAM.

Installer det ved hjælp af:

sudo apt install profile-sync-daemon

Kør derefter PSD for første gang for at oprette brugerkonfigurationsfilen:

psd

Rediger nu PSD-konfigurationsfilen ved hjælp af en teksteditor, f.eks. Nano:

nano ~/.config/psd/psd.conf

Fjern kommentarer i denne filBROWSERSlinje, og tilføjchromiumtil det, så det ser sådan ud:

BROWSERS="chromium"

Nu kan du aktivere og starte PSD:

systemctl --user enable psdsystemctl --user start psd

[[Redigere]]Chromium og et par andre browserehar deres cache gemt et andet sted end browserprofilen. Så lad os også indlæse Chromium-cachen i RAM (ved hjælp af tmpfs) ved at redigere/etc/fstabved hjælp af Nano konsol editor:

sudo nano /etc/fstab

Og tilføjer følgende linje til filen (rediger ikke andet, en dårlig fstab-fil betyder, at din Pi ikke længere vil starte):

tmpfs   /home/pi/.cache/chromium tmpfs   user,exec,uid=1000,gid=1000,size=500m      0 0

Redigersizeværdi med den mængde MB, du vil bruge til Chromium-cachen, der er gemt i RAM. Jeg bruger 500 her, men du vil måske bruge en anden værdi, afhængigt af mængden af tilgængelig RAM til din Raspberry Pi.

Jeg har også deaktiveret swap på min Raspberry Pi for at minimere diskskrivning, men jeg er ikke sikker på, om det er så god en idé, så jeg tilføjer ikke instruktioner til det her. Du kan finde ud af, hvordan du gør dette med en simpel søgning.

Kilde

Related Posts