Behöver ert företag hjälp med att implementera AI? Kontakta oss och få prisoffert här →
AI Skolan
januari 22, 2026

Plex + qBittorrent: smidig fjärrstreaming

Rickard Andersson Partner, Nodenordic.se

Fjärrstreaming i Plex får ofta skulden för ”buffring”, men den verkliga boven är oftast dina egna nedladdningar. qBittorrent drar ner en stor fil, din upplänk blir överbelastad och plötsligt ser din stream ut som 2009.

Ägare av hemmamediaservrar märker det först. Men byråteam med en delad kontorsserver och IT-generalister som vaktar en ”community-Plex” hamnar i samma röra. Den här Plex qBittorrent-automationen löser det genom att strypa nedladdningar i samma ögonblick som någon börjar fjärrstreama.

Du får se hur arbetsflödet upptäcker Plex-händelser, bekräftar att det är en fjärrsession och sedan växlar qBittorrents hastighetsbegränsningar automatiskt så att strömmarna flyter utan att du behöver växla manuellt hela tiden.

Så fungerar den här automationen

Hela n8n-arbetsflödet, från trigger till slutligt resultat:

n8n Workflow Template: Plex + qBittorrent: smidig fjärrstreaming

Problemet: fjärrstreamar krossas av nedladdningar

När du fjärrstreamar från Plex gör din server inte bara ”spela upp en video”. Den transkodar (ibland), laddar upp kontinuerligt och försöker hålla en korrekt och jämn bitrate över en vanlig konsumentuppkoppling. Sedan börjar qBittorrent hämta och seeda i full fart. Uppladdningen blir mättad, paket tappas och Plex reagerar genom att sänka kvaliteten eller buffra. Det värsta är tajmingen: det händer bara när någon trycker på Play, vilket är exakt när du inte vill hoppa in i en dashboard och börja växla begränsningar.

Det blir snabbt ett återkommande irritationsmoment. Här är hur det faller isär i verkligheten.

  • Någon startar en fjärrstream och du märker det inte förrän det kommer ett sms om att ”det buffrar igen”.
  • Du stryper qBittorrent manuellt och glömmer sedan att slå av det, så nedladdningar kryper i tempo resten av dagen.
  • Paus och återupptagning förvirrar läget, så du slutar med att växla begränsningar mer än en gång per session.
  • En felaktig inställningsändring i qBittorrent WebUI och du är tillbaka i felsökning i stället för att koppla av.

Lösningen: stryp qBittorrent automatiskt när Plex fjärrstreamar

Det här n8n-arbetsflödet lyssnar på Plex webhook-händelser (Play, Pause, Stop och Resume). När en händelse kommer in laddar det först dina sparade inställningar (som qBittorrent-host, port och inloggningsuppgifter) och kontrollerar sedan om Plex-sessionen faktiskt är fjärr. Är det lokal uppspelning ignoreras den, eftersom du inte behöver hastighetsbegränsningar när du sitter i soffan. Är den fjärr förgrenas arbetsflödet efter händelsetyp: Play och Resume aktiverar strypning, medan Pause och Stop tar bort strypningen så att nedladdningar kan fortsätta i full hastighet. Under tiden loggar det in i qBittorrents WebUI, kontrollerar aktuell strypstatus och växlar bara när det behövs.

Arbetsflödet börjar med att en Plex-webhook träffar n8n. Därefter validerar n8n sessionen och routar händelsen. Till sist pratar det med qBittorrent via HTTP-anrop för att automatiskt aktivera eller inaktivera hastighetsbegränsningsläge.

Det här får du: automation vs. resultat

Exempel: så här ser det ut

Säg att du har cirka 10 fjärrstreamingsessioner i veckan mellan familj och vänner. Manuellt gör du ofta två åtgärder per session (aktivera begränsningar vid Play, avaktivera vid Stop), och varje åtgärd tar kanske 2 minuter när du väl loggat in, hittat inställningen och dubbelkollat den. Det är ungefär 40 minuter i veckan, plus alla ”oj, jag glömde slå av den igen”-tillfällen. Med det här arbetsflödet triggas det direkt och växlingen sker i bakgrunden, så din tidsåtgång är i princip noll efter att det är uppsatt.

Det här behöver du

  • n8n-instans (testa n8n Cloud gratis)
  • Självhost-alternativ om du föredrar det (Hostinger fungerar bra)
  • Plex Media Server (med Plex Pass) för att skicka webhook-händelser.
  • qBittorrent med WebUI aktiverat för fjärrväxling.
  • Inloggningsuppgifter till qBittorrent WebUI (hämtas i qBittorrent WebUI-inställningar).

Kunskapsnivå: Medel. Du klistrar in ett arbetsflöde i n8n, ändrar några globala variabler och lägger till en Plex-webhook-URL.

Vill du inte sätta upp det här själv? Prata med en automationsexpert (gratis 15-minuters konsultation).

Så fungerar det

Plex-webhook triggar arbetsflödet. Plex skickar en händelse till n8n när uppspelningen ändras (Play, Pause, Stop, Resume). Du lägger in n8n:s webhook-URL i Plex inställningar för Webhooks, vilket finns med Plex Pass.

Validering av fjärrsession sker tidigt. Arbetsflödet kontrollerar webhook-payloaden så att det kan ignorera lokal uppspelning och bara agera när en fjärrstream pågår. Det är skyddet som säger ”sänk mig inte utan anledning”.

qBittorrent frågas av och uppdateras. n8n loggar in i qBittorrent WebUI (sessionscookie), kontrollerar aktuell strypstatus och aktiverar eller inaktiverar sedan hastighetsbegränsningar baserat på händelsetyp. Det undviker att växla inställningen upprepade gånger om den redan är korrekt.

Bandbreddsbegränsningar följer tittarsessionen. Play och Resume slår på strypning. Pause och Stop slår av den igen, så att nedladdningar kan hinna ikapp när streaming inte längre är prio.

Du kan enkelt justera vad som räknas som ”fjärr” eller ändra vilka händelsetyper som ska växla begränsningar utifrån dina behov. Se hela implementationsguiden nedan för anpassningsalternativ.

Steg-för-steg-guide för implementering

Steg 1: konfigurera webhook-triggern

Det här arbetsflödet startar med en webhook som tar emot mediahändelser och skickar dem vidare till routningslogiken.

  1. Lägg till noden Incoming Webhook Trigger och ställ in HTTP Method till POST.
  2. Ställ in Path till 72a05ff6-05f5-4e7a-9eee-54a350bb6a47.
  3. Kopiera den genererade webhook-URL:en som er källa för mediahändelser ska anropa.

Steg 2: anslut qBittorrent-inställningar

Definiera era anslutningsuppgifter för qBittorrent så att HTTP-anropen kan autentisera och kontrollera throttle-status.

  1. Öppna Assign Global Settings och ställ in qbittorent.username till [YOUR_ID].
  2. Ställ in qbittorent.password till [CONFIGURE_YOUR_TOKEN].
  3. Ställ in qbittorent.internalIP till 0.0.0.0 och qbittorent.port till 2020.

⚠️ Vanlig fallgrop: Arbetsflödet refererar till dessa värden via uttryck. Om något fält lämnas tomt blir HTTP-URL:erna i efterföljande noder ogiltiga.

Steg 3: routa inkommande händelser

Arbetsflödet kontrollerar om händelsen är fjärrstyrd och routar sedan efter händelsetyp (resume/play/pause/stop).

  1. I Validate Remote Session konfigurerar ni strängvillkoret så att det kontrollerar att {{$json["body"]["payload"]}} innehåller "local":false.
  2. Koppla Validate Remote Session till Ignore Action (false) och Route by Event Type (true), i enlighet med den befintliga routningsstrukturen.
  3. I Route by Event Type ställer ni Value 1 till {{$node["Incoming Webhook Trigger"].json["body"]["payload"]}} och lägger till regler för media.resume, media.play, media.pause och media.stop.
  4. Säkerställ att Route by Event Type skickar vidare till Resume Event, Play Event, Pause Event och Stop Event som visat i flödet.

Steg 4: konfigurera throttle-frågor och åtgärder

När media återupptas eller spelas kontrollerar arbetsflödet throttle-status och kan aktivera hastighetsbegränsningar; när det pausas eller stoppas kan det inaktivera dem.

  1. Koppla Resume Event och Play Event till Apply Bandwidth Limit, och vidare till Fetch QB Session Cookie.
  2. I Fetch QB Session Cookie behåller ni URL som http://{{$node["Assign Global Settings"].json["qbittorent"]["internalIP"]}}:{{$node["Assign Global Settings"].json["qbittorent"]["port"]}}/api/v2/auth/login och query-parametrarna för username och password med {{$node["Assign Global Settings"].json["qbittorent"]["username"]}} respektive {{$node["Assign Global Settings"].json["qbittorent"]["password"]}}.
  3. I Query Throttle Mode behåller ni URL inställd på http://{{$node["Assign Global Settings"].json["qbittorent"]["internalIP"]}}:{{$node["Assign Global Settings"].json["qbittorent"]["port"]}}/api/v2/transfer/speedLimitsMode och använder cookie-uttrycket {{$node["Fetch QB Session Cookie"].json["headers"]["set-cookie"][0].match(/[^;]*/).toString()}} i både Query Parameters och Headers.
  4. I Throttle State Check bekräftar ni att talvillkoret jämför {{$json["body"]}} med 1, och routar sedan till No Action Needed eller Enable Speed Limit.
  5. Koppla Pause Event och Stop Event till Resume Download Flow, och vidare till Fetch QB Session Cookie B och Query Throttle Mode B.
  6. I Throttle State Check B verifierar ni att talvillkoret jämför {{$json["body"]}} med 1, och routar sedan till Disable Speed Limit eller No Action Needed B.

⚠️ Vanlig fallgrop: Säkerställ att cookie-uttrycken refererar till rätt sessionsnod (Fetch QB Session Cookie vs Fetch QB Session Cookie B) så att throttle-kontroller och växlingar inte misslyckas.

Steg 5: konfigurera utdata-/åtgärdsnoder

Dessa HTTP-anrop växlar hastighetsbegränsningar baserat på throttle-kontrollerna.

  1. I Enable Speed Limit ställer ni URL till http://{{$node["Assign Global Settings"].json["qbittorent"]["internalIP"]}}:{{$node["Assign Global Settings"].json["qbittorent"]["port"]}}/api/v2/transfer/toggleSpeedLimitsMode och inkluderar cookie-uttrycket {{$node["Fetch QB Session Cookie"].json["headers"]["set-cookie"][0].match(/[^;]*/).toString()}} i både headers och query parameters.
  2. I Disable Speed Limit använder ni samma URL och inkluderar cookie-uttrycket {{$node["Fetch QB Session Cookie B"].json["headers"]["set-cookie"][0].match(/[^;]*/).toString()}} i både headers och query parameters.
  3. Lämna no-op-noderna (Apply Bandwidth Limit, Resume Download Flow, No Action Needed, No Action Needed B, Ignore Action) kvar för att bevara logikflödet och skapa expansionspunkter.

Steg 6: testa och aktivera ert arbetsflöde

Validera webhook-indatan och säkerställ att växlingen av throttle fungerar som förväntat innan ni går live.

  1. Klicka på Execute Workflow och skicka en testpayload till Incoming Webhook Trigger med en exempelhändelse (till exempel en payload som innehåller media.play).
  2. Bekräfta att körningen följer Assign Global SettingsValidate Remote SessionRoute by Event Type → rätt händelsegren.
  3. Verifiera att HTTP-anropen returnerar lyckade svar och att hastighetsbegränsningar växlas när det förväntas (kontrollera att flödet passerar Enable Speed Limit eller Disable Speed Limit).
  4. När testerna är godkända växlar ni arbetsflödet till Active för att aktivera användning i produktion.
🔒

Lås upp fullständig steg-för-steg-guide

Få den kompletta implementeringsguiden + nedladdningsbar mall

Vanliga fallgropar

  • Plex webhook-leverans beror på att din server är nåbar. Om du använder en lokal n8n-instans, bekräfta att din Plex-server kan nå webhook-URL:en för Production (routerregler eller tunnel) innan du skyller på arbetsflödet.
  • Inloggningsuppgifter till qBittorrent WebUI kan upphöra eller blockeras av IP-regler. Om växlingen slutar fungera, kontrollera först qBittorrents WebUI-inloggningsinställningar och eventuella IP-whitelist/banlista.
  • Om du redigerar arbetsflödets ”globala variabler” (host, port, användarnamn, lösenord) räcker ett litet skrivfel för att alla HTTP-anrop ska skapa fel. Ärligt talat: kopiera och klistra in värden och testa anropet som hämtar cookie innan du aktiverar.

Vanliga frågor

Hur lång tid tar det att sätta upp den här Plex qBittorrent-automationen?

Cirka 30 minuter om Plex och qBittorrent redan är igång.

Behöver jag programmeringskunskaper för att automatisera strypning mellan Plex och qBittorrent?

Nej. Du klistrar in arbetsflödet, lägger till inloggningsuppgifter och uppdaterar några inställningsvärden.

Är n8n gratis att använda för det här Plex qBittorrent-automationsarbetsflödet?

Ja. n8n har ett gratis självhostat alternativ och en gratis provperiod på n8n Cloud. Cloud-planer börjar på $20/månad för högre volym. Du behöver också räkna in Plex Pass för webhooks (qBittorrent i sig är gratis).

Var kan jag hosta n8n för att köra den här Plex qBittorrent-automationen?

Två alternativ: n8n Cloud (hanterat, enklast att sätta upp) eller självhostning på en VPS. För självhostning är Hostinger VPS prisvärd och kör n8n utan problem. Om du självhostar hemma kan du också behöva ett sätt att exponera webhooken säkert så att Plex kan nå den. Cloud slipper det krånglet.

Kan jag anpassa det här Plex qBittorrent-automationsarbetsflödet för andra hastighetsgränser?

Ja, men du ändrar det på qBittorrent-sidan, inte i själva arbetsflödet. Det här arbetsflödet växlar ”hastighetsbegränsningsläge” via anropen Enable Speed Limit och Disable Speed Limit. Vanliga anpassningar är att sätta separata upload/download-tak i qBittorrent, bara strypa uppladdning eller hantera Resume annorlunda om du inte vill att begränsningarna slås på igen efter korta pauser.

Varför misslyckas min Plex-anslutning i det här arbetsflödet?

Oftast når Plex inte din n8n webhook-URL. Kontrollera att Plex Pass är aktiverat, att inställningen Webhooks syns och att du använde webhook-URL:en för Production (inte bara Test). Om n8n kör lokalt behöver din server fortfarande en nåbar adress, vilket kan innebära port forwarding eller en säker tunnel. Kolla också n8n:s exekveringsloggar för att se om några webhook-anrop alls kommer in.

Hur många händelser kan den här Plex qBittorrent-automationen hantera?

Många. Varje Play/Pause/Stop/Resume är en enskild körning, så i de flesta hushåll påverkar det knappt några gränser.

Är den här Plex qBittorrent-automationen bättre än att använda Zapier eller Make?

För det här användningsfallet, ja, eftersom du normalt behöver webhook-hantering, förgreningslogik och ett par HTTP-anrop som fungerar som ett litet inloggningsflöde. Zapier och Make kan hantera webhooks, men en flergrenad logik som ”om fjärr så routa efter händelsetyp, kontrollera aktuellt läge och växla” blir snabbt pillig, och du kan få betala mer när antalet körningar ökar. n8n ger dig också ett självhost-alternativ, vilket spelar roll för allt som är kopplat till en hemmaserver. Om du bara vill ha en enkel notis när Plex börjar spela räcker Zapier. Om du vill ha tillförlitlig strypning: välj n8n, eller prata med en automationsexpert och få det gjort i ett svep.

Sätt upp det en gång, så ser arbetsflödet tyst till att dina fjärrstreamar håller sig tittbara medan nedladdningarna fortsätter rulla. Mindre pill. Mer uppspelning.

Kontakta oss

Hör av dig, så diskuterar vi hur just din verksamhet kan dra nytta av alla fantastiska möjligheter som AI skapar.

×

Använd mall

Få direkt tillgång till denna n8n-arbetsflödes JSON-fil

Få prisoffert redan idag!
Få prisoffert redan idag!

Berätta vad ni behöver hjälp med så hör vi av oss inom en arbetsdag!

Få prisoffert redan idag!
Få prisoffert redan idag!

Berätta vad ni behöver hjälp med så hör vi av oss inom en arbetsdag!

Launch login modal Launch register modal