Skip to content

Instantly share code, notes, and snippets.

@khanh101
Created July 26, 2023 10:09
Show Gist options
  • Save khanh101/7bd9060e065011efc91d6df4145a5f07 to your computer and use it in GitHub Desktop.
Save khanh101/7bd9060e065011efc91d6df4145a5f07 to your computer and use it in GitHub Desktop.
<!doctype html>
<html lang="en-US">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="profile" href="https://gmpg.org/xfn/11">
<link rel="preconnect" href="https://www.googletagmanager.com/" crossorigin />
<link rel='dns-prefetch' href='https://www.googletagmanager.com/' />
<link rel="preconnect" href="https://cdn.pimylifeup.com/" crossorigin />
<link rel="dns-prefetch" href="https://cdn.pimylifeup.com/" />
<link rel="preconnect" href="https://mail.pimylifeup.com/" crossorigin />
<link rel="dns-prefetch" href="https://mail.pimylifeup.com/" />
<link rel="preconnect" href="https://app.slickstream.com/" crossorigin />
<link rel="dns-prefetch" href="https://app.slickstream.com/" />
<link rel="preconnect" href="https://c.slickstream.com/" crossorigin />
<link rel="dns-prefetch" href="https://c.slickstream.com/" />
<link rel="preconnect" href="https://stats.wp.com/" crossorigin />
<link rel="dns-prefetch" href="https://stats.wp.com/" />
<script>!function(){"use strict";var t=window.location.search.substring(1).split("&");const e=t=>t.replace(/\s/g,""),n=t=>new Promise(e=>{if(!("msCrypto"in window)&&"https:"===location.protocol&&"crypto"in window&&"TextEncoder"in window){const n=(new TextEncoder).encode(t);crypto.subtle.digest("SHA-256",n).then(t=>{const n=Array.from(new Uint8Array(t)).map(t=>("00"+t.toString(16)).slice(-2)).join("");e(n)})}else e("")});for(var o=0;o<t.length;o++){var i="adt_ei",r=t[o];if(0===r.indexOf(i)){var s=r.split(i+"=")[1];if((t=>{const e=t.match(/((?=([a-zA-Z0-9._!#$%+^&*()[\]<>-]+))\2@[a-zA-Z0-9._-]+\.[a-zA-Z0-9._-]+)/gi);return e?e[0]:""})(e(s.toLowerCase()))){n(s).then(e=>{e.length&&(localStorage.setItem(i,e),t.splice(o,1),history.replaceState(null,"","?"+t.join("&")))});break}}}}();
</script><meta name='robots' content='index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1' />
<style data-no-optimize="1" data-cfasync="false">
.adthrive-ad {
margin-top: 10px;
margin-bottom: 10px;
text-align: center;
overflow-x: visible;
clear: both;
line-height: 0;
}
.adthrive-content {
width: 100%;
}
.adthrive-device-phone .player-container.player-minimize .player-position {
padding: 0px !important;
}
.adthrive-player-position.adthrive-collapse-mobile{
transition: all .2s;
right:2%;
top: 0;
}
.adthrive-device-phone h3.adthrive-player-title{
font-size:16px !important;
}
.adthrive-device-phone .adthrive-player-close, .adthrive-device-tablet .adthrive-player-close {
font-weight: bold;
font-size: 14px;
height: 26px;
top: 172px;
border: 1px solid;
border-radius: 15px;
background-color:#fff;
}
.adthrive-collapse-mobile-background {
max-height: 163px!important;
}
/* Top Center Dark Background */
.adthrive-collapse-mobile-background {
background-color: #191919!important;
}
.adthrive-top-collapse-close > svg > * {
stroke: black !important;
font-family: sans-serif;
}
/* END top center Dark background */</style>
<script data-no-optimize="1" data-cfasync="false">
window.adthriveCLS = {
enabledLocations: ['Content', 'Recipe'],
injectedSlots: [],
injectedFromPlugin: true,
branch: 'df1206d',bucket: 'prod', };
window.adthriveCLS.siteAds = {"siteId":"5c49e4afdf7d2523f3865216","siteName":"Pi My Life Up","betaTester":true,"targeting":[{"value":"5c49e4afdf7d2523f3865216","key":"siteId"},{"value":"6233884d9fe2e87088381dd7","key":"organizationId"},{"value":"Pi My Life Up","key":"siteName"},{"value":"AdThrive Edge","key":"service"},{"value":"on","key":"bidding"},{"value":["Tech"],"key":"verticals"}],"breakpoints":{"tablet":768,"desktop":1024},"adUnits":[{"sequence":null,"targeting":[{"value":["Header"],"key":"location"}],"devices":["desktop","tablet"],"name":"Header","sticky":false,"location":"Header","dynamic":{"pageSelector":"","spacing":0,"max":1,"lazy":false,"lazyMax":null,"elementSelector":"#main-content","skip":0,"classNames":[],"position":"afterbegin","every":1,"enabled":true},"adSizes":[[728,90],[320,50],[468,60],[970,90],[1,1],[320,100],[970,250],[300,50],[728,250]],"priority":399,"autosize":true},{"sequence":1,"targeting":[{"value":["Sidebar"],"key":"location"}],"devices":["desktop"],"name":"Sidebar_1","sticky":false,"location":"Sidebar","dynamic":{"pageSelector":"","spacing":0,"max":1,"lazy":false,"lazyMax":null,"elementSelector":"#sidebar","skip":0,"classNames":[],"position":"afterbegin","every":1,"enabled":true},"adSizes":[[160,600],[336,280],[320,50],[300,600],[250,250],[1,1],[320,100],[300,1050],[300,50],[300,420],[300,250]],"priority":299,"autosize":true},{"sequence":9,"targeting":[{"value":["Sidebar"],"key":"location"},{"value":true,"key":"sticky"}],"devices":["desktop"],"name":"Sidebar_9","sticky":true,"location":"Sidebar","dynamic":{"pageSelector":"","spacing":0,"max":1,"lazy":false,"lazyMax":null,"elementSelector":"#sidebar","skip":0,"classNames":[],"position":"beforeend","every":1,"enabled":true},"stickyOverlapSelector":"#footer-bottom, .site-footer","adSizes":[[160,600],[336,280],[320,50],[300,600],[250,250],[1,1],[320,100],[300,1050],[300,50],[300,420],[300,250]],"priority":291,"autosize":true},{"sequence":null,"targeting":[{"value":["Content"],"key":"location"}],"devices":["desktop","tablet","phone"],"name":"Content","sticky":false,"location":"Content","dynamic":{"pageSelector":"body.single","spacing":1,"max":9,"lazy":true,"lazyMax":90,"elementSelector":".entry-content > *","skip":5,"classNames":[],"position":"afterend","every":1,"enabled":true},"adSizes":[[728,90],[336,280],[320,50],[468,60],[970,90],[250,250],[1,1],[320,100],[970,250],[1,2],[300,50],[300,300],[552,334],[728,250],[300,250]],"priority":199,"autosize":true},{"sequence":null,"targeting":[{"value":["Content"],"key":"location"}],"devices":["desktop","phone","tablet"],"name":"Content","sticky":false,"location":"Content","dynamic":{"pageSelector":"body.home:not(.adthrive-device-desktop), body.archive, body.category, body.search","spacing":0,"max":2,"lazy":false,"lazyMax":null,"elementSelector":"article.post","skip":1,"classNames":[],"position":"afterend","every":4,"enabled":true},"adSizes":[[728,90],[336,280],[320,50],[468,60],[970,90],[250,250],[1,1],[320,100],[970,250],[1,2],[300,50],[300,300],[552,334],[728,250],[300,250]],"priority":199,"autosize":true},{"sequence":null,"targeting":[{"value":["Footer"],"key":"location"},{"value":true,"key":"sticky"}],"devices":["tablet","phone","desktop"],"name":"Footer","sticky":true,"location":"Footer","dynamic":{"pageSelector":"","spacing":0,"max":1,"lazy":false,"lazyMax":null,"elementSelector":"body","skip":0,"classNames":[],"position":"beforeend","every":1,"enabled":true},"adSizes":[[320,50],[320,100],[728,90],[970,90],[468,60],[1,1],[300,50]],"priority":-1,"autosize":true},{"sequence":null,"targeting":[{"value":["Below Post"],"key":"location"}],"devices":["phone","tablet","desktop"],"name":"Below_Post","sticky":false,"location":"Below Post","dynamic":{"pageSelector":"body.single","spacing":0.7,"max":0,"lazy":true,"lazyMax":99,"elementSelector":".entry-content, #comments .comment-body","skip":0,"classNames":[],"position":"beforeend","every":4,"enabled":true},"adSizes":[[728,90],[336,280],[320,50],[468,60],[250,250],[1,1],[320,100],[300,250],[970,250],[728,250]],"priority":99,"autosize":true}],"adDensityLayout":{"mobile":{"adDensity":0.28,"onePerViewport":false},"pageOverrides":[{"mobile":{"adDensity":0.3,"onePerViewport":false},"pageSelector":"body.home:not(.adthrive-device-desktop), body.archive, body.category, body.search","desktop":{"adDensity":0.3,"onePerViewport":false}}],"desktop":{"adDensity":0.28,"onePerViewport":false}},"adDensityEnabled":true,"siteExperiments":[],"adTypes":{"nativeDesktopContent":true,"outstreamDesktop":true,"nativeBelowPostDesktop":true,"miniscroller":true,"animatedFooter":true,"largeFormatsMobile":true,"nativeMobileContent":true,"inRecipeRecommendationMobile":true,"nativeMobileRecipe":true,"expandableFooter":true,"nativeDesktopSidebar":true,"interscroller":true,"nativeDesktopRecipe":true,"outstreamMobile":true,"nativeHeaderDesktop":true,"nativeHeaderMobile":true,"nativeBelowPostMobile":true,"largeFormatsDesktop":true,"inRecipeRecommendationDesktop":true},"adOptions":{"theTradeDesk":true,"rtbhouse":true,"verizon":true,"undertone":false,"concert":false,"footerCloseButton":true,"teads":true,"pmp":true,"thirtyThreeAcross":true,"sharethrough":true,"removeVideoTitleWrapper":true,"pubMatic":true,"roundel":true,"infiniteScroll":false,"yahoossp":true,"improvedigital":true,"spa":false,"stickyContainerConfig":{"recipe":{"minHeight":null,"enabled":false},"blockedSelectors":[],"stickyHeaderSelectors":[],"content":{"minHeight":400,"enabled":true}},"sonobi":true,"yieldmo":true,"footerSelector":"","amazonUAM":true,"gamMCMEnabled":true,"gamMCMChildNetworkCode":"22523461534","stickyContainerAds":false,"rubiconMediaMath":true,"rubicon":true,"conversant":true,"resetdigital":true,"openx":true,"mobileHeaderHeight":1,"unruly":true,"mediaGrid":true,"bRealTime":false,"gumgum":true,"comscoreFooter":true,"desktopInterstitial":false,"footerCloseButtonDesktop":true,"isAutoOptimized":false,"comscoreTAL":true,"brightroll":true,"targetaff":false,"advancePlaylistOptions":{"playlistPlayer":{"enabled":true},"relatedPlayer":{"enabled":true,"applyToFirst":true}},"kargo":true,"liveRampATS":true,"footerCloseButtonMobile":true,"interstitialBlockedPageSelectors":"","allowSmallerAdSizes":true,"comscore":"General","mobileInterstitial":false,"tripleLift":true,"sensitiveCategories":["alc","ast","cbd","conl","cosm","dat","dlu","drg","gamc","gamv","pol","tob","wtl"],"liveRamp":true,"adthriveEmailIdentity":true,"criteo":true,"nativo":true,"infiniteScrollOptions":{"selector":"","heightThreshold":0},"dynamicContentSlotLazyLoading":true,"clsOptimizedAds":false,"colossus":true,"verticals":["Tech"],"inImage":false,"advancePlaylist":true,"delayLoading":false,"inImageZone":null,"appNexus":true,"liveRampId":"","infiniteScrollRefresh":false,"indexExchange":true},"videoPlayers":{"contextual":{"autoplayCollapsibleEnabled":true,"overrideEmbedLocation":false,"defaultPlayerType":"static"},"videoEmbed":"wordpress","footerSelector":"","contentSpecificPlaylists":[],"players":[{"devices":["desktop","mobile"],"description":"","id":4060973,"title":"Stationary related player - desktop and mobile","type":"stationaryRelated","enabled":true,"playerId":"oLyKMNEe"},{"playlistId":"","pageSelector":"body.single","devices":["desktop"],"description":"","elementSelector":".entry-content > *","skip":4,"id":4060974,"position":"afterend","title":"","type":"stickyRelated","enabled":true,"playerId":"oLyKMNEe"},{"playlistId":"","pageSelector":"body.single","devices":["mobile"],"mobileLocation":"top-center","description":"","skip":4,"title":"","type":"stickyRelated","enabled":true,"elementSelector":".entry-content > *","id":4060975,"position":"afterend","saveVideoCloseState":false,"shuffle":false,"mobileHeaderSelector":null,"playerId":"oLyKMNEe"},{"playlistId":"Yfa7tsA9","pageSelector":"body.single","devices":["desktop"],"description":"","skip":4,"title":"LATEST VIDEOS","type":"stickyPlaylist","enabled":true,"footerSelector":"","elementSelector":".entry-content > *","id":4060976,"position":"afterend","saveVideoCloseState":false,"shuffle":true,"playerId":"cYV9UQru"},{"playlistId":"Yfa7tsA9","pageSelector":"body.single","devices":["mobile"],"mobileLocation":"top-center","description":"","skip":2,"title":"LATEST VIDEOS","type":"stickyPlaylist","enabled":true,"footerSelector":"","elementSelector":".entry-content > *","id":4060977,"position":"afterend","saveVideoCloseState":false,"shuffle":true,"mobileHeaderSelector":null,"playerId":"cYV9UQru"}],"partners":{"theTradeDesk":true,"unruly":true,"mediaGrid":true,"undertone":false,"gumgum":true,"pmp":true,"kargo":true,"thirtyThreeAcross":true,"stickyOutstream":{"desktop":{"enabled":true},"blockedPageSelectors":"","mobileLocation":"","allowOnHomepage":false,"mobile":{"enabled":true},"saveVideoCloseState":false,"mobileHeaderSelector":"","allowForPageWithStickyPlayer":{"enabled":true}},"sharethrough":true,"tripleLift":true,"pubMatic":true,"roundel":true,"yahoossp":true,"criteo":true,"improvedigital":true,"colossus":true,"telaria":true,"yieldmo":true,"amazonUAM":true,"rubicon":true,"appNexus":true,"resetdigital":true,"openx":true,"spotx":true,"indexExchange":true}}};</script>
<script data-no-optimize="1" data-cfasync="false">
(function(w, d) {
w.adthrive = w.adthrive || {};
w.adthrive.cmd = w.adthrive.cmd || [];
w.adthrive.plugin = 'adthrive-ads-3.4.1';
w.adthrive.host = 'ads.adthrive.com';
w.adthrive.integration = 'plugin';
var commitParam = (w.adthriveCLS && w.adthriveCLS.bucket !== 'prod' && w.adthriveCLS.branch) ? '&commit=' + w.adthriveCLS.branch : '';
var s = d.createElement('script');
s.async = true;
s.referrerpolicy='no-referrer-when-downgrade';
s.src = 'https://' + w.adthrive.host + '/sites/5c49e4afdf7d2523f3865216/ads.min.js?referrer=' + w.encodeURIComponent(w.location.href) + commitParam + '&cb=' + (Math.floor(Math.random() * 100) + 1) + '';
var n = d.getElementsByTagName('script')[0];
n.parentNode.insertBefore(s, n);
})(window, document);
</script>
<title>Installing Jellyfin to the Raspberry Pi - Pi My Life Up</title>
<meta name="description" content="This Raspberry Pi project will show you how to install the Jellyfin media server. It is an open-source and free alternative to Plex and Emby." />
<link rel="canonical" href="https://pimylifeup.com/raspberry-pi-jellyfin/" />
<meta property="og:locale" content="en_US" />
<meta property="og:type" content="article" />
<meta property="og:title" content="Installing Jellyfin to the Raspberry Pi" />
<meta property="og:description" content="A free and open-source media server" />
<meta property="og:url" content="https://pimylifeup.com/raspberry-pi-jellyfin/" />
<meta property="og:site_name" content="Pi My Life Up" />
<meta property="article:publisher" content="https://www.facebook.com/pimylifeup" />
<meta property="article:published_time" content="2021-02-15T11:43:28+00:00" />
<meta property="article:modified_time" content="2022-07-18T10:12:21+00:00" />
<meta property="og:image" content="https://pimylifeup.com/wp-content/uploads/2021/02/Jellyfin-on-the-Raspberry-Pi-Thumbnail-NoWM.jpg" />
<meta property="og:image:width" content="728" />
<meta property="og:image:height" content="400" />
<meta property="og:image:type" content="image/jpeg" />
<meta name="author" content="Emmet" />
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:title" content="Installing Jellyfin to the Raspberry Pi" />
<meta name="twitter:description" content="A free and open-source media server" />
<meta name="twitter:creator" content="@pimylifeup" />
<meta name="twitter:site" content="@pimylifeup" />
<meta name="twitter:label1" content="Written by" />
<meta name="twitter:data1" content="Emmet" />
<meta name="twitter:label2" content="Est. reading time" />
<meta name="twitter:data2" content="15 minutes" />
<script type="application/ld+json" class="yoast-schema-graph">{"@context":"https://schema.org","@graph":[{"@type":"Article","@id":"https://pimylifeup.com/raspberry-pi-jellyfin/#article","isPartOf":{"@id":"https://pimylifeup.com/raspberry-pi-jellyfin/"},"author":{"name":"Emmet","@id":"https://pimylifeup.com/#/schema/person/2209b69d107d64425e1fce1014596f3d"},"headline":"Installing Jellyfin to the Raspberry Pi","datePublished":"2021-02-15T11:43:28+00:00","dateModified":"2022-07-18T10:12:21+00:00","mainEntityOfPage":{"@id":"https://pimylifeup.com/raspberry-pi-jellyfin/"},"wordCount":2392,"commentCount":10,"publisher":{"@id":"https://pimylifeup.com/#organization"},"image":{"@id":"https://pimylifeup.com/raspberry-pi-jellyfin/#primaryimage"},"thumbnailUrl":"https://pimylifeup.com/wp-content/uploads/2021/02/Jellyfin-on-the-Raspberry-Pi-Thumbnail-NoWM.jpg","articleSection":["Beginner","Media"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https://pimylifeup.com/raspberry-pi-jellyfin/#respond"]}]},{"@type":"WebPage","@id":"https://pimylifeup.com/raspberry-pi-jellyfin/","url":"https://pimylifeup.com/raspberry-pi-jellyfin/","name":"Installing Jellyfin to the Raspberry Pi - Pi My Life Up","isPartOf":{"@id":"https://pimylifeup.com/#website"},"primaryImageOfPage":{"@id":"https://pimylifeup.com/raspberry-pi-jellyfin/#primaryimage"},"image":{"@id":"https://pimylifeup.com/raspberry-pi-jellyfin/#primaryimage"},"thumbnailUrl":"https://pimylifeup.com/wp-content/uploads/2021/02/Jellyfin-on-the-Raspberry-Pi-Thumbnail-NoWM.jpg","datePublished":"2021-02-15T11:43:28+00:00","dateModified":"2022-07-18T10:12:21+00:00","description":"This Raspberry Pi project will show you how to install the Jellyfin media server. It is an open-source and free alternative to Plex and Emby.","breadcrumb":{"@id":"https://pimylifeup.com/raspberry-pi-jellyfin/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https://pimylifeup.com/raspberry-pi-jellyfin/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https://pimylifeup.com/raspberry-pi-jellyfin/#primaryimage","url":"https://pimylifeup.com/wp-content/uploads/2021/02/Jellyfin-on-the-Raspberry-Pi-Thumbnail-NoWM.jpg","contentUrl":"https://pimylifeup.com/wp-content/uploads/2021/02/Jellyfin-on-the-Raspberry-Pi-Thumbnail-NoWM.jpg","width":728,"height":400,"caption":"Jellyfin on the Raspberry Pi"},{"@type":"BreadcrumbList","@id":"https://pimylifeup.com/raspberry-pi-jellyfin/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://pimylifeup.com/"},{"@type":"ListItem","position":2,"name":"Installing Jellyfin to the Raspberry Pi"}]},{"@type":"WebSite","@id":"https://pimylifeup.com/#website","url":"https://pimylifeup.com/","name":"Pi My Life Up","description":"","publisher":{"@id":"https://pimylifeup.com/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://pimylifeup.com/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https://pimylifeup.com/#organization","name":"Pi My Life Up","url":"https://pimylifeup.com/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https://pimylifeup.com/#/schema/logo/image/","url":"https://pimylifeup.com/wp-content/uploads/2017/11/Asset-3-large.png","contentUrl":"https://pimylifeup.com/wp-content/uploads/2017/11/Asset-3-large.png","width":1800,"height":1800,"caption":"Pi My Life Up"},"image":{"@id":"https://pimylifeup.com/#/schema/logo/image/"},"sameAs":["https://www.facebook.com/pimylifeup","https://twitter.com/pimylifeup","https://www.instagram.com/pimylifeup/","https://www.pinterest.com/pimylifeup","https://www.youtube.com/channel/UC7NMrNa-RgcVeD__l_uPJTg"]},{"@type":"Person","@id":"https://pimylifeup.com/#/schema/person/2209b69d107d64425e1fce1014596f3d","name":"Emmet","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https://pimylifeup.com/#/schema/person/image/","url":"https://secure.gravatar.com/avatar/871cde89f7fc504583582089ff8b3648?s=96&d=identicon&r=g","contentUrl":"https://secure.gravatar.com/avatar/871cde89f7fc504583582089ff8b3648?s=96&d=identicon&r=g","caption":"Emmet"}}]}</script>
<link rel='dns-prefetch' href='//stats.wp.com' />
<link rel="alternate" type="application/rss+xml" title="Pi My Life Up &raquo; Feed" href="https://pimylifeup.com/feed/" />
<link rel='stylesheet' id='lbb-theme-style-css' href='https://pimylifeup.com/wp-content/themes/lbb-theme-pimylifeup/style.min.css?ver=1.3.29' media='all' />
<script nomodule src="https://pimylifeup.com/wp-content/themes/lbb-theme-pimylifeup/js/polyfill.min.js?ver=1.3.29"></script><script id='wp-polyfill-dependency-error-js-after'>
console.error( "Payment gateway with handle 'wc-stripe-blocks-integration' has been deactivated in Cart and Checkout blocks because its dependency 'wp-polyfill' is not registered. Read the docs about registering assets for payment methods: https://github.com/woocommerce/woocommerce-blocks/blob/060f63c04f0f34f645200b5d4da9212125c49177/docs/third-party-developers/extensibility/checkout-payment-methods/payment-method-integration.md#registering-assets" );
</script>
<!-- [slickstream] Page Generated at: 7/21/2023, 10:34:38 PM UTC -->
<!-- [slickstream] Fetching page boot data from server -->
<!-- [slickstream] Storing page boot data in transient cache: slick_page_boot_6015f52d089bdb666f8c6a7321884e00 -->
<!-- [slickstream] Page Boot Data: -->
<script class='slickstream-script'>
(function() {
"slickstream";
const win = window;
win.$slickBoot = win.$slickBoot || {};
win.$slickBoot.d = {"searchHooks":["#toggle-search-button",".searchform"],"fabs":{"showSearch":true,"showFavorite":false,"favoriteIcon":"heart","minLinkedItemHeight":92,"buttonBottom":16,"buttonZIndex":100,"siteColor":"#db3438"},"placeholders":[{"selector":"#email_signup","position":"after selector"},{"selector":"h2.lbb-section-break","position":"before selector"}],"bootTriggerTimeout":250,"filmstrip":{"injection":"auto-inject","includeSearch":false,"selector":".site-content","position":"first child of selector","mode":"og-card","padding":"0 0 16px 0","imageContainment":"cover","minHeight":82,"cssIfInjected":".slick-film-strip { padding: 0 0 16px 0; }"},"inlineSearch":[{"id":"postDCM_below-post","injection":"auto-inject","selector":"#email_signup","position":"after selector","titleHtml":"<span class=\"ss-widget-title\">Explore More<\/span>"},{"id":"postDCM_in-content","injection":"auto-inject","selector":"h2.lbb-section-break","position":"before selector"}],"bestBy":1689979778636,"epoch":1679592377097,"siteCode":"SSVS1M8E","services":{"engagementCacheableApiDomain":"https:\/\/c08f.app.slickstream.com\/","engagementNonCacheableApiDomain":"https:\/\/c08b.app.slickstream.com\/","engagementResourcesDomain":"https:\/\/c08f.app.slickstream.com\/","storyCacheableApiDomain":"https:\/\/stories.slickstream.com\/","storyNonCacheableApiDomain":"https:\/\/stories.slickstream.com\/","storyResourcesDomain":"https:\/\/stories.slickstream.com\/","websocketUri":"wss:\/\/c08b-wss.app.slickstream.com\/socket?site=SSVS1M8E"},"bootUrl":"https:\/\/c.slickstream.com\/app\/2.13.41\/boot-loader.js","appUrl":"https:\/\/c.slickstream.com\/app\/2.13.41\/app.js","adminUrl":"","allowList":["pimylifeup.com"],"abTests":[{"_id":"64ac2a9527d562086228455e","id":"ac037d9e-9084-4fbe-b5cd-56859e56cc52","type":"feature-switches","feature":"heart-fluttering","fraction":95,"startDate":1689048000000,"endDate":1690430400000,"includeSites":null,"excludeSites":["1UKE2G1S","MY8VYZB5","6ZXSY5UT","TX0RQ5ZZ","1FMA936N","CZL2W79Z","VUWHN67V","2M100P02","9ED5GMCM","HC3E36C0","ASFHPXBJ","6RXV2XQ4","ZCCPQJ62","89B7Z58W","TUKDXTE5","LHA4XEV3","P49MPDD8","A5PEEJV7","UELT7CLV"],"addedAt":1689004693010,"updatedAt":1689004693010,"devices":["desktop","phone"]}],"v2":{"phone":{"searchHooks":["#toggle-search-button",".searchform"],"fabs":{"showSearch":true,"showFavorite":false,"favoriteIcon":"heart","minLinkedItemHeight":52,"buttonBottom":16,"buttonZIndex":100,"siteColor":"#db3438"},"placeholders":[{"selector":"#email_signup","position":"after selector"},{"selector":"h2.lbb-section-break","position":"before selector"}],"bootTriggerTimeout":250,"filmstrip":{"injection":"auto-inject","includeSearch":false,"selector":".site-content","position":"first child of selector","mode":"og-card","padding":"0 0 16px 0","imageContainment":"cover","minHeight":82,"cssIfInjected":".slick-film-strip { padding: 0 0 16px 0; }"},"inlineSearch":[{"id":"postDCM_below-post","injection":"auto-inject","selector":"#email_signup","position":"after selector","titleHtml":"<span class=\"ss-widget-title\">Explore More<\/span>"},{"id":"postDCM_in-content","injection":"auto-inject","selector":"h2.lbb-section-break","position":"before selector"}],"bestBy":1689979778636,"epoch":1679592377097,"siteCode":"SSVS1M8E","services":{"engagementCacheableApiDomain":"https:\/\/c08f.app.slickstream.com\/","engagementNonCacheableApiDomain":"https:\/\/c08b.app.slickstream.com\/","engagementResourcesDomain":"https:\/\/c08f.app.slickstream.com\/","storyCacheableApiDomain":"https:\/\/stories.slickstream.com\/","storyNonCacheableApiDomain":"https:\/\/stories.slickstream.com\/","storyResourcesDomain":"https:\/\/stories.slickstream.com\/","websocketUri":"wss:\/\/c08b-wss.app.slickstream.com\/socket?site=SSVS1M8E"},"bootUrl":"https:\/\/c.slickstream.com\/app\/2.13.41\/boot-loader.js","appUrl":"https:\/\/c.slickstream.com\/app\/2.13.41\/app.js","adminUrl":"","allowList":["pimylifeup.com"],"abTests":[{"_id":"64ac2a9527d562086228455e","id":"ac037d9e-9084-4fbe-b5cd-56859e56cc52","type":"feature-switches","feature":"heart-fluttering","fraction":95,"startDate":1689048000000,"endDate":1690430400000,"includeSites":null,"excludeSites":["1UKE2G1S","MY8VYZB5","6ZXSY5UT","TX0RQ5ZZ","1FMA936N","CZL2W79Z","VUWHN67V","2M100P02","9ED5GMCM","HC3E36C0","ASFHPXBJ","6RXV2XQ4","ZCCPQJ62","89B7Z58W","TUKDXTE5","LHA4XEV3","P49MPDD8","A5PEEJV7","UELT7CLV"],"addedAt":1689004693010,"updatedAt":1689004693010,"devices":["desktop","phone"]}]},"tablet":{"searchHooks":["#toggle-search-button",".searchform"],"fabs":{"showSearch":true,"showFavorite":false,"favoriteIcon":"heart","minLinkedItemHeight":52,"buttonBottom":16,"buttonZIndex":100,"siteColor":"#db3438"},"placeholders":[{"selector":"#email_signup","position":"after selector"},{"selector":"h2.lbb-section-break","position":"before selector"}],"bootTriggerTimeout":250,"filmstrip":{"injection":"auto-inject","includeSearch":false,"selector":".site-content","position":"first child of selector","mode":"og-card","padding":"0 0 16px 0","imageContainment":"cover","minHeight":82,"cssIfInjected":".slick-film-strip { padding: 0 0 16px 0; }"},"inlineSearch":[{"id":"postDCM_below-post","injection":"auto-inject","selector":"#email_signup","position":"after selector","titleHtml":"<span class=\"ss-widget-title\">Explore More<\/span>"},{"id":"postDCM_in-content","injection":"auto-inject","selector":"h2.lbb-section-break","position":"before selector"}],"bestBy":1689979778636,"epoch":1679592377097,"siteCode":"SSVS1M8E","services":{"engagementCacheableApiDomain":"https:\/\/c08f.app.slickstream.com\/","engagementNonCacheableApiDomain":"https:\/\/c08b.app.slickstream.com\/","engagementResourcesDomain":"https:\/\/c08f.app.slickstream.com\/","storyCacheableApiDomain":"https:\/\/stories.slickstream.com\/","storyNonCacheableApiDomain":"https:\/\/stories.slickstream.com\/","storyResourcesDomain":"https:\/\/stories.slickstream.com\/","websocketUri":"wss:\/\/c08b-wss.app.slickstream.com\/socket?site=SSVS1M8E"},"bootUrl":"https:\/\/c.slickstream.com\/app\/2.13.41\/boot-loader.js","appUrl":"https:\/\/c.slickstream.com\/app\/2.13.41\/app.js","adminUrl":"","allowList":["pimylifeup.com"],"abTests":[{"_id":"64ac2a9527d562086228455e","id":"ac037d9e-9084-4fbe-b5cd-56859e56cc52","type":"feature-switches","feature":"heart-fluttering","fraction":95,"startDate":1689048000000,"endDate":1690430400000,"includeSites":null,"excludeSites":["1UKE2G1S","MY8VYZB5","6ZXSY5UT","TX0RQ5ZZ","1FMA936N","CZL2W79Z","VUWHN67V","2M100P02","9ED5GMCM","HC3E36C0","ASFHPXBJ","6RXV2XQ4","ZCCPQJ62","89B7Z58W","TUKDXTE5","LHA4XEV3","P49MPDD8","A5PEEJV7","UELT7CLV"],"addedAt":1689004693010,"updatedAt":1689004693010,"devices":["desktop","phone"]}]},"desktop":{"searchHooks":["#toggle-search-button",".searchform"],"fabs":{"showSearch":true,"showFavorite":false,"favoriteIcon":"heart","minLinkedItemHeight":92,"buttonBottom":16,"buttonZIndex":100,"siteColor":"#db3438"},"placeholders":[{"selector":"#email_signup","position":"after selector"},{"selector":"h2.lbb-section-break","position":"before selector"}],"bootTriggerTimeout":250,"filmstrip":{"injection":"auto-inject","includeSearch":false,"selector":".site-content","position":"first child of selector","mode":"og-card","padding":"0 0 16px 0","imageContainment":"cover","minHeight":82,"cssIfInjected":".slick-film-strip { padding: 0 0 16px 0; }"},"inlineSearch":[{"id":"postDCM_below-post","injection":"auto-inject","selector":"#email_signup","position":"after selector","titleHtml":"<span class=\"ss-widget-title\">Explore More<\/span>"},{"id":"postDCM_in-content","injection":"auto-inject","selector":"h2.lbb-section-break","position":"before selector"}],"bestBy":1689979778636,"epoch":1679592377097,"siteCode":"SSVS1M8E","services":{"engagementCacheableApiDomain":"https:\/\/c08f.app.slickstream.com\/","engagementNonCacheableApiDomain":"https:\/\/c08b.app.slickstream.com\/","engagementResourcesDomain":"https:\/\/c08f.app.slickstream.com\/","storyCacheableApiDomain":"https:\/\/stories.slickstream.com\/","storyNonCacheableApiDomain":"https:\/\/stories.slickstream.com\/","storyResourcesDomain":"https:\/\/stories.slickstream.com\/","websocketUri":"wss:\/\/c08b-wss.app.slickstream.com\/socket?site=SSVS1M8E"},"bootUrl":"https:\/\/c.slickstream.com\/app\/2.13.41\/boot-loader.js","appUrl":"https:\/\/c.slickstream.com\/app\/2.13.41\/app.js","adminUrl":"","allowList":["pimylifeup.com"],"abTests":[{"_id":"64ac2a9527d562086228455e","id":"ac037d9e-9084-4fbe-b5cd-56859e56cc52","type":"feature-switches","feature":"heart-fluttering","fraction":95,"startDate":1689048000000,"endDate":1690430400000,"includeSites":null,"excludeSites":["1UKE2G1S","MY8VYZB5","6ZXSY5UT","TX0RQ5ZZ","1FMA936N","CZL2W79Z","VUWHN67V","2M100P02","9ED5GMCM","HC3E36C0","ASFHPXBJ","6RXV2XQ4","ZCCPQJ62","89B7Z58W","TUKDXTE5","LHA4XEV3","P49MPDD8","A5PEEJV7","UELT7CLV"],"addedAt":1689004693010,"updatedAt":1689004693010,"devices":["desktop","phone"]}]},"unknown":{"searchHooks":["#toggle-search-button",".searchform"],"fabs":{"showSearch":true,"showFavorite":false,"favoriteIcon":"heart","minLinkedItemHeight":92,"buttonBottom":16,"buttonZIndex":100,"siteColor":"#db3438"},"placeholders":[{"selector":"#email_signup","position":"after selector"},{"selector":"h2.lbb-section-break","position":"before selector"}],"bootTriggerTimeout":250,"filmstrip":{"injection":"auto-inject","includeSearch":false,"selector":".site-content","position":"first child of selector","mode":"og-card","padding":"0 0 16px 0","imageContainment":"cover","minHeight":82,"cssIfInjected":".slick-film-strip { padding: 0 0 16px 0; }"},"inlineSearch":[{"id":"postDCM_below-post","injection":"auto-inject","selector":"#email_signup","position":"after selector","titleHtml":"<span class=\"ss-widget-title\">Explore More<\/span>"},{"id":"postDCM_in-content","injection":"auto-inject","selector":"h2.lbb-section-break","position":"before selector"}],"bestBy":1689979778636,"epoch":1679592377097,"siteCode":"SSVS1M8E","services":{"engagementCacheableApiDomain":"https:\/\/c08f.app.slickstream.com\/","engagementNonCacheableApiDomain":"https:\/\/c08b.app.slickstream.com\/","engagementResourcesDomain":"https:\/\/c08f.app.slickstream.com\/","storyCacheableApiDomain":"https:\/\/stories.slickstream.com\/","storyNonCacheableApiDomain":"https:\/\/stories.slickstream.com\/","storyResourcesDomain":"https:\/\/stories.slickstream.com\/","websocketUri":"wss:\/\/c08b-wss.app.slickstream.com\/socket?site=SSVS1M8E"},"bootUrl":"https:\/\/c.slickstream.com\/app\/2.13.41\/boot-loader.js","appUrl":"https:\/\/c.slickstream.com\/app\/2.13.41\/app.js","adminUrl":"","allowList":["pimylifeup.com"],"abTests":[{"_id":"64ac2a9527d562086228455e","id":"ac037d9e-9084-4fbe-b5cd-56859e56cc52","type":"feature-switches","feature":"heart-fluttering","fraction":95,"startDate":1689048000000,"endDate":1690430400000,"includeSites":null,"excludeSites":["1UKE2G1S","MY8VYZB5","6ZXSY5UT","TX0RQ5ZZ","1FMA936N","CZL2W79Z","VUWHN67V","2M100P02","9ED5GMCM","HC3E36C0","ASFHPXBJ","6RXV2XQ4","ZCCPQJ62","89B7Z58W","TUKDXTE5","LHA4XEV3","P49MPDD8","A5PEEJV7","UELT7CLV"],"addedAt":1689004693010,"updatedAt":1689004693010,"devices":["desktop","phone"]}]}}};
win.$slickBoot.s = 'plugin';
win.$slickBoot._bd = performance.now();
})();
</script>
<!-- [slickstream] END Page Boot Data -->
<!-- [slickstream] CLS Insertion: -->
<script>
"use strict";(async(e,t)=>{const n="slickstream";const r=e?JSON.parse(e):null;const i=t?JSON.parse(t):null;if(r||i){const e=async()=>{if(document.body){if(r){o(r.selector,r.position||"after selector","slick-film-strip",r.minHeight||72,r.margin||r.marginLegacy||"10px auto")}if(i){i.forEach((e=>{if(e.selector){o(e.selector,e.position||"after selector","slick-inline-search-panel",e.minHeight||350,e.margin||e.marginLegacy||"50px 15px",e.id)}}))}return}window.requestAnimationFrame(e)};window.requestAnimationFrame(e)}const c=async(e,t)=>{const n=Date.now();while(true){const r=document.querySelector(e);if(r){return r}const i=Date.now();if(i-n>=t){throw new Error("Timeout")}await s(200)}};const s=async e=>new Promise((t=>{setTimeout(t,e)}));const o=async(e,t,r,i,s,o)=>{try{const n=await c(e,5e3);const a=o?document.querySelector(`.${r}[data-config="${o}"]`):document.querySelector(`.${r}`);if(n&&!a){const e=document.createElement("div");e.style.minHeight=i+"px";e.style.margin=s;e.classList.add(r);if(o){e.dataset.config=o}switch(t){case"after selector":n.insertAdjacentElement("afterend",e);break;case"before selector":n.insertAdjacentElement("beforebegin",e);break;case"first child of selector":n.insertAdjacentElement("afterbegin",e);break;case"last child of selector":n.insertAdjacentElement("beforeend",e);break}return e}}catch(t){console.log("plugin","error",n,`Failed to inject ${r} for selector ${e}`)}return false}})
('{\"injection\":\"auto-inject\",\"includeSearch\":false,\"selector\":\".site-content\",\"position\":\"first child of selector\",\"mode\":\"og-card\",\"padding\":\"0 0 16px 0\",\"imageContainment\":\"cover\",\"minHeight\":82,\"cssIfInjected\":\".slick-film-strip { padding: 0 0 16px 0; }\"}','[{\"id\":\"postDCM_below-post\",\"injection\":\"auto-inject\",\"selector\":\"#email_signup\",\"position\":\"after selector\",\"titleHtml\":\"<span class=\\\"ss-widget-title\\\">Explore More<\\/span>\"},{\"id\":\"postDCM_in-content\",\"injection\":\"auto-inject\",\"selector\":\"h2.lbb-section-break\",\"position\":\"before selector\"}]');
</script>
<!-- [slickstream] END CLS Insertion -->
<meta property="slick:wpversion" content="1.4.2" />
<!-- [slickstream] Bootloader: -->
<script class='slickstream-script' >
'use strict';
(async(e,t)=>{if(location.search.indexOf("no-slick")>=0){return}let o;const c=()=>performance.now();let a=window.$slickBoot=window.$slickBoot||{};a.rt=e;a._es=c();a.ev="2.0.1";a.l=async(e,t)=>{try{let a=0;if(!o&&"caches"in self){o=await caches.open("slickstream-code")}if(o){let n=await o.match(e);if(!n){a=c();await o.add(e);n=await o.match(e);if(n&&!n.ok){n=undefined;o.delete(e)}}if(n){const e=n.headers.get("x-slickstream-consent");return{t:a,d:t?await n.blob():await n.json(),c:e||"na"}}}}catch(e){console.log(e)}return{}};const n=e=>new Request(e,{cache:"no-store"});if(!a.d||a.d.bestBy<Date.now()){const o=n(`${e}/d/page-boot-data?site=${t}&url=${encodeURIComponent(location.href.split("#")[0])}`);let{t:s,d:i,c:d}=await a.l(o);if(i){if(i.bestBy<Date.now()){i=undefined}else if(s){a._bd=s;a.c=d}}if(!i){a._bd=c();const e=await fetch(o);const t=e.headers.get("x-slickstream-consent");a.c=t||"na";i=await e.json()}if(i){a.d=i;a.s="embed"}}if(a.d){let e=a.d.bootUrl;const{t:t,d:o}=await a.l(n(e),true);if(o){a.bo=e=URL.createObjectURL(o);if(t){a._bf=t}}else{a._bf=c()}const s=document.createElement("script");s.className="slickstream-script";s.src=e;document.head.appendChild(s)}else{console.log("[slickstream] Boot failed")}})
("https://app.slickstream.com","SSVS1M8E");
</script>
<!-- [slickstream] END Bootloader -->
<!-- [slickstream] Page Metadata: -->
<meta property="slick:wppostid" content="33463706" />
<meta property="slick:featured_image" content="https://pimylifeup.com/wp-content/uploads/2021/02/Jellyfin-on-the-Raspberry-Pi-Thumbnail-NoWM.jpg" />
<meta property="slick:group" content="post" />
<meta property="slick:category" content="beginner:Beginner;projects:Projects" />
<meta property="slick:category" content="media:Media;projects:Projects" />
<script type="application/x-slickstream+json">{"@context":"https://slickstream.com","@graph":[{"@type":"Plugin","version":"1.4.2"},{"@type":"Site","name":"Pi My Life Up","url":"https://pimylifeup.com","description":"","atomUrl":"https://pimylifeup.com/feed/atom/","rtl":false},{"@type":"WebPage","@id":33463706,"isFront":false,"isHome":false,"isCategory":false,"isTag":false,"isSingular":true,"date":"2021-02-15T22:43:28+11:00","modified":"2022-07-18T20:12:21+10:00","title":"Installing Jellyfin to the Raspberry Pi","pageType":"post","postType":"post","featured_image":"https://pimylifeup.com/wp-content/uploads/2021/02/Jellyfin-on-the-Raspberry-Pi-Thumbnail-NoWM.jpg","author":"Emmet","categories":[{"@id":6,"slug":"beginner","name":"Beginner","parents":[{"@type":"CategoryParent","@id":4,"slug":"projects","name":"Projects"}]},{"@id":42,"slug":"media","name":"Media","parents":[{"@type":"CategoryParent","@id":4,"slug":"projects","name":"Projects"}]}],"taxonomies":[]}]}</script>
<!-- [slickstream] END Page Metadata -->
<script class='slickstream-script'>
(function() {
const slickstreamRocketPluginScripts = document.querySelectorAll('script.slickstream-script[type=rocketlazyloadscript]');
const slickstreamRocketExternalScripts = document.querySelectorAll('script[type=rocketlazyloadscript][src*="app.slickstream.com"]');
if (slickstreamRocketPluginScripts.length > 0 || slickstreamRocketExternalScripts.length > 0) {
console.warn('[slickstream] WARNING: WP-Rocket is deferring one or more Slickstream scripts. This may cause undesirable behavior, such as increased CLS scores.');
}
})();
</script> <style>img#wpstats{display:none}</style>
<link rel="dns-prefetch" href="https://ads.adthrive.com/"><link rel="preconnect" href="https://ads.adthrive.com/"><link rel="preconnect" href="https://ads.adthrive.com/" crossorigin><link rel="icon" href="https://pimylifeup.com/wp-content/uploads/2021/02/cropped-pi-favicon-1-32x32.png" sizes="32x32" />
<link rel="icon" href="https://pimylifeup.com/wp-content/uploads/2021/02/cropped-pi-favicon-1-192x192.png" sizes="192x192" />
<link rel="apple-touch-icon" href="https://pimylifeup.com/wp-content/uploads/2021/02/cropped-pi-favicon-1-180x180.png" />
<meta name="msapplication-TileImage" content="https://pimylifeup.com/wp-content/uploads/2021/02/cropped-pi-favicon-1-270x270.png" />
<script data-no-optimize='1' data-cfasync='false' id='cls-disable-ads-df1206d'>'use strict';var cls_disable_ads=function(n){function h(a,b){var c="function"===typeof Symbol&&a[Symbol.iterator];if(!c)return a;a=c.call(a);var d,e=[];try{for(;(void 0===b||0<b--)&&!(d=a.next()).done;)e.push(d.value)}catch(l){var f={error:l}}finally{try{d&&!d.done&&(c=a["return"])&&c.call(a)}finally{if(f)throw f.error;}}return e}function k(a,b,c){if(c||2===arguments.length)for(var d=0,e=b.length,f;d<e;d++)!f&&d in b||(f||(f=Array.prototype.slice.call(b,0,d)),f[d]=b[d]);return a.concat(f||Array.prototype.slice.call(b))}
window.adthriveCLS.buildDate="2023-07-21";var z=new (function(){function a(){}a.prototype.info=function(b,c){for(var d=[],e=2;e<arguments.length;e++)d[e-2]=arguments[e];this.call.apply(this,k([console.info,b,c],h(d),!1))};a.prototype.warn=function(b,c){for(var d=[],e=2;e<arguments.length;e++)d[e-2]=arguments[e];this.call.apply(this,k([console.warn,b,c],h(d),!1))};a.prototype.error=function(b,c){for(var d=[],e=2;e<arguments.length;e++)d[e-2]=arguments[e];this.call.apply(this,k([console.error,b,c],
h(d),!1));this.sendErrorLogToCommandQueue.apply(this,k([b,c],h(d),!1))};a.prototype.event=function(b,c){for(var d,e=2;e<arguments.length;e++);"debug"===(null===(d=window.adthriveCLS)||void 0===d?void 0:d.bucket)&&this.info(b,c)};a.prototype.sendErrorLogToCommandQueue=function(b,c){for(var d=[],e=2;e<arguments.length;e++)d[e-2]=arguments[e];window.adthrive=window.adthrive||{};window.adthrive.cmd=window.adthrive.cmd||[];window.adthrive.cmd.push(function(){void 0!==window.adthrive.logError&&"function"===
typeof window.adthrive.logError&&window.adthrive.logError(b,c,d)}.bind(b,c,d))};a.prototype.call=function(b,c,d){for(var e=[],f=3;f<arguments.length;f++)e[f-3]=arguments[f];f=["%c".concat(c,"::").concat(d," ")];var l=["color: #999; font-weight: bold;"];0<e.length&&"string"===typeof e[0]&&f.push(e.shift());l.push.apply(l,k([],h(e),!1));try{Function.prototype.apply.call(b,console,k([f.join("")],h(l),!1))}catch(y){console.error(y)}};return a}()),g;(function(a){a.amznbid="amznbid";a.amzniid="amzniid";
a.amznp="amznp";a.amznsz="amznsz"})(g||(g={}));var m;(function(a){a.ThirtyThreeAcross="33across";a.AppNexus="appnexus";a.Amazon="amazon";a.Colossus="colossus";a.ColossusServer="col_ss";a.Conversant="conversant";a.Concert="concert";a.Criteo="criteo";a.GumGum="gumgum";a.IndexExchange="ix";a.Kargo="kargo";a.KargoServer="krgo_ss";a.MediaGrid="grid";a.MediaGridVideo="gridvid";a.Nativo="nativo";a.OpenX="openx";a.OpenXServer="opnx_ss";a.Pubmatic="pubmatic";a.PubmaticServer="pubm_ss";a.ResetDigital="resetdigital";
a.Roundel="roundel";a.Rtbhouse="rtbhouse";a.Rubicon="rubicon";a.RubiconServer="rubi_ss";a.Sharethrough="sharethrough";a.Spotx="spotx";a.Teads="teads";a.Triplelift="triplelift";a.TripleliftServer="tripl_ss";a.TTD="ttd";a.Undertone="undertone";a.UndertoneServer="under_ss";a.Unruly="unruly";a.YahooSSP="yahoossp";a.Verizon="verizon";a.Yieldmo="yieldmo"})(m||(m={}));var q;(function(a){a.Prebid="prebid";a.GAM="gam";a.Amazon="amazon";a.WebVitals="webvitals";a.Marmalade="marmalade";a.Floors="floors";a.CMP=
"cmp"})(q||(q={}));var r;(function(a){a.bidCycleNonlazy="bidCycleNonlazy";a.instream="instream";a.lazy="lazy";a.refresh="refresh";a.session="session";a.crossDomain="crossdomain";a.highSequence="highsequence";a.lazyBidPool="lazyBidPool";a.rubicon="rubicon"})(r||(r={}));var t;(function(a){a.bidCycleNonlazy="bc";a.instream="i";a.lazy="l";a.refresh="r";a.session="s";a.crossdomain="c";a.highsequence="hs";a.rubicon="rubi";a.lazyBidPool="lbp"})(t||(t={}));var u;(function(a){a.Desktop="desktop";a.Mobile=
"mobile"})(u||(u={}));var v;(function(a){a.Video_Collapse_Autoplay_SoundOff="Video_Collapse_Autoplay_SoundOff";a.Video_Individual_Autoplay_SOff="Video_Individual_Autoplay_SOff";a.Video_Coll_SOff_Smartphone="Video_Coll_SOff_Smartphone";a.Video_In_Post_ClicktoPlay_SoundOn="Video_In-Post_ClicktoPlay_SoundOn"})(v||(v={}));var w;(w||(w={})).None="none";var x;(function(a){a.AdDensity="addensity";a.AdLayout="adlayout";a.FooterCloseButton="footerclose";a.Interstitial="interstitial";a.RemoveVideoTitleWrapper=
"removevideotitlewrapper";a.StickyOutstream="stickyoutstream";a.StickyOutstreamOnStickyPlayer="sospp";a.VideoAdvancePlaylistRelatedPlayer="videoadvanceplaylistrp";a.MobileStickyPlayerPosition="mspp"})(x||(x={}));g=function(){function a(){this._timeOrigin=0}a.prototype.resetTimeOrigin=function(){this._timeOrigin=window.performance.now()};a.prototype.now=function(){try{return Math.round(window.performance.now()-this._timeOrigin)}catch(b){return 0}};return a}();window.adthrive.windowPerformance=window.adthrive.windowPerformance||
new g;g=window.adthrive.windowPerformance;g.now.bind(g);var p=function(a){var b=window.location.href;return a.some(function(c){return(new RegExp(c,"i")).test(b)})};g=function(){function a(b){this.adthrive=b;this.video=this.recipe=this.content=this.all=!1;this.locations=new Set;this.reasons=new Set;if(this.urlHasEmail(window.location.href)||this.urlHasEmail(window.document.referrer))this.all=!0,this.reasons.add("all_email");try{this.checkCommandQueue(),null!==document.querySelector(".tag-novideo")&&
(this.video=!0,this.locations.add("Video"),this.reasons.add("video_tag"))}catch(c){z.error("ClsDisableAds","checkCommandQueue",c)}}a.prototype.checkCommandQueue=function(){var b=this;this.adthrive&&this.adthrive.cmd&&this.adthrive.cmd.forEach(function(c){c=c.toString();var d=b.extractAPICall(c,"disableAds");d&&b.disableAllAds(b.extractPatterns(d));(d=b.extractAPICall(c,"disableContentAds"))&&b.disableContentAds(b.extractPatterns(d));(c=b.extractAPICall(c,"disablePlaylistPlayers"))&&b.disablePlaylistPlayers(b.extractPatterns(c))})};
a.prototype.extractPatterns=function(b){b=b.match(/["'](.*?)['"]/g);if(null!==b)return b.map(function(c){return c.replace(/["']/g,"")})};a.prototype.extractAPICall=function(b,c){b=b.match(new RegExp(c+"\\((.*?)\\)","g"));return null!==b?b[0]:!1};a.prototype.disableAllAds=function(b){if(!b||p(b))this.all=!0,this.reasons.add("all_page")};a.prototype.disableContentAds=function(b){if(!b||p(b))this.recipe=this.content=!0,this.locations.add("Content"),this.locations.add("Recipe"),this.reasons.add("content_plugin")};
a.prototype.disablePlaylistPlayers=function(b){if(!b||p(b))this.video=!0,this.locations.add("Video"),this.reasons.add("video_page")};a.prototype.urlHasEmail=function(b){return b?null!==/([A-Z0-9._%+-]+(@|%(25)*40)[A-Z0-9.-]+\.[A-Z]{2,})/i.exec(b):!1};return a}();if(m=window.adthriveCLS)m.disableAds=new g(window.adthrive);n.ClsDisableAds=g;Object.defineProperty(n,"__esModule",{value:!0});return n}({})
</script><script data-no-optimize='1' data-cfasync='false' id='cls-header-insertion-df1206d'>'use strict';var cls_header_insertion=function(x){function u(a,b){function c(){this.constructor=a}if("function"!==typeof b&&null!==b)throw new TypeError("Class extends value "+String(b)+" is not a constructor or null");y(a,b);a.prototype=null===b?Object.create(b):(c.prototype=b.prototype,new c)}function B(a,b,c,d){var e=arguments.length,f=3>e?b:null===d?d=Object.getOwnPropertyDescriptor(b,c):d,h;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)f=Reflect.decorate(a,b,c,d);else for(var g=
a.length-1;0<=g;g--)if(h=a[g])f=(3>e?h(f):3<e?h(b,c,f):h(b,c))||f;return 3<e&&f&&Object.defineProperty(b,c,f),f}function C(a,b){if("object"===typeof Reflect&&"function"===typeof Reflect.metadata)return Reflect.metadata(a,b)}function R(a){var b="function"===typeof Symbol&&Symbol.iterator,c=b&&a[b],d=0;if(c)return c.call(a);if(a&&"number"===typeof a.length)return{next:function(){a&&d>=a.length&&(a=void 0);return{value:a&&a[d++],done:!a}}};throw new TypeError(b?"Object is not iterable.":"Symbol.iterator is not defined.");
}function l(a,b){var c="function"===typeof Symbol&&a[Symbol.iterator];if(!c)return a;a=c.call(a);var d,e=[];try{for(;(void 0===b||0<b--)&&!(d=a.next()).done;)e.push(d.value)}catch(h){var f={error:h}}finally{try{d&&!d.done&&(c=a["return"])&&c.call(a)}finally{if(f)throw f.error;}}return e}function r(a,b,c){if(c||2===arguments.length)for(var d=0,e=b.length,f;d<e;d++)!f&&d in b||(f||(f=Array.prototype.slice.call(b,0,d)),f[d]=b[d]);return a.concat(f||Array.prototype.slice.call(b))}window.adthriveCLS.buildDate=
"2023-07-21";var y=function(a,b){y=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(c,d){c.__proto__=d}||function(c,d){for(var e in d)Object.prototype.hasOwnProperty.call(d,e)&&(c[e]=d[e])};return y(a,b)},v=function(){v=Object.assign||function(a){for(var b,c=1,d=arguments.length;c<d;c++){b=arguments[c];for(var e in b)Object.prototype.hasOwnProperty.call(b,e)&&(a[e]=b[e])}return a};return v.apply(this,arguments)},z=new (function(){function a(){}a.prototype.info=function(b,c){for(var d=
[],e=2;e<arguments.length;e++)d[e-2]=arguments[e];this.call.apply(this,r([console.info,b,c],l(d),!1))};a.prototype.warn=function(b,c){for(var d=[],e=2;e<arguments.length;e++)d[e-2]=arguments[e];this.call.apply(this,r([console.warn,b,c],l(d),!1))};a.prototype.error=function(b,c){for(var d=[],e=2;e<arguments.length;e++)d[e-2]=arguments[e];this.call.apply(this,r([console.error,b,c],l(d),!1));this.sendErrorLogToCommandQueue.apply(this,r([b,c],l(d),!1))};a.prototype.event=function(b,c){for(var d,e=2;e<
arguments.length;e++);"debug"===(null===(d=window.adthriveCLS)||void 0===d?void 0:d.bucket)&&this.info(b,c)};a.prototype.sendErrorLogToCommandQueue=function(b,c){for(var d=[],e=2;e<arguments.length;e++)d[e-2]=arguments[e];window.adthrive=window.adthrive||{};window.adthrive.cmd=window.adthrive.cmd||[];window.adthrive.cmd.push(function(){void 0!==window.adthrive.logError&&"function"===typeof window.adthrive.logError&&window.adthrive.logError(b,c,d)}.bind(b,c,d))};a.prototype.call=function(b,c,d){for(var e=
[],f=3;f<arguments.length;f++)e[f-3]=arguments[f];f=["%c".concat(c,"::").concat(d," ")];var h=["color: #999; font-weight: bold;"];0<e.length&&"string"===typeof e[0]&&f.push(e.shift());h.push.apply(h,r([],l(e),!1));try{Function.prototype.apply.call(b,console,r([f.join("")],l(h),!1))}catch(g){console.error(g)}};return a}()),m=function(a,b){return null==a||a!==a?b:a},S=function(a){var b=a.clientWidth;getComputedStyle&&(a=getComputedStyle(a,null),b-=parseFloat(a.paddingLeft||"0")+parseFloat(a.paddingRight||
"0"));return b},D=function(){var a=navigator.userAgent,b=/Tablet|iPad|Playbook|Nook|webOS|Kindle|Android (?!.*Mobile).*Safari/i.test(a);return/Mobi|iP(hone|od)|Opera Mini/i.test(a)&&!b},n;(function(a){a.amznbid="amznbid";a.amzniid="amzniid";a.amznp="amznp";a.amznsz="amznsz"})(n||(n={}));var E;(function(a){a.ThirtyThreeAcross="33across";a.AppNexus="appnexus";a.Amazon="amazon";a.Colossus="colossus";a.ColossusServer="col_ss";a.Conversant="conversant";a.Concert="concert";a.Criteo="criteo";a.GumGum="gumgum";
a.IndexExchange="ix";a.Kargo="kargo";a.KargoServer="krgo_ss";a.MediaGrid="grid";a.MediaGridVideo="gridvid";a.Nativo="nativo";a.OpenX="openx";a.OpenXServer="opnx_ss";a.Pubmatic="pubmatic";a.PubmaticServer="pubm_ss";a.ResetDigital="resetdigital";a.Roundel="roundel";a.Rtbhouse="rtbhouse";a.Rubicon="rubicon";a.RubiconServer="rubi_ss";a.Sharethrough="sharethrough";a.Spotx="spotx";a.Teads="teads";a.Triplelift="triplelift";a.TripleliftServer="tripl_ss";a.TTD="ttd";a.Undertone="undertone";a.UndertoneServer=
"under_ss";a.Unruly="unruly";a.YahooSSP="yahoossp";a.Verizon="verizon";a.Yieldmo="yieldmo"})(E||(E={}));var F;(function(a){a.Prebid="prebid";a.GAM="gam";a.Amazon="amazon";a.WebVitals="webvitals";a.Marmalade="marmalade";a.Floors="floors";a.CMP="cmp"})(F||(F={}));var G;(function(a){a.bidCycleNonlazy="bidCycleNonlazy";a.instream="instream";a.lazy="lazy";a.refresh="refresh";a.session="session";a.crossDomain="crossdomain";a.highSequence="highsequence";a.lazyBidPool="lazyBidPool";a.rubicon="rubicon"})(G||
(G={}));var H;(function(a){a.bidCycleNonlazy="bc";a.instream="i";a.lazy="l";a.refresh="r";a.session="s";a.crossdomain="c";a.highsequence="hs";a.rubicon="rubi";a.lazyBidPool="lbp"})(H||(H={}));var I;(function(a){a.Desktop="desktop";a.Mobile="mobile"})(I||(I={}));var J;(function(a){a.Video_Collapse_Autoplay_SoundOff="Video_Collapse_Autoplay_SoundOff";a.Video_Individual_Autoplay_SOff="Video_Individual_Autoplay_SOff";a.Video_Coll_SOff_Smartphone="Video_Coll_SOff_Smartphone";a.Video_In_Post_ClicktoPlay_SoundOn=
"Video_In-Post_ClicktoPlay_SoundOn"})(J||(J={}));var K;(K||(K={})).None="none";var L;(function(a){a.AdDensity="addensity";a.AdLayout="adlayout";a.FooterCloseButton="footerclose";a.Interstitial="interstitial";a.RemoveVideoTitleWrapper="removevideotitlewrapper";a.StickyOutstream="stickyoutstream";a.StickyOutstreamOnStickyPlayer="sospp";a.VideoAdvancePlaylistRelatedPlayer="videoadvanceplaylistrp";a.MobileStickyPlayerPosition="mspp"})(L||(L={}));n=function(){function a(){this._timeOrigin=0}a.prototype.resetTimeOrigin=
function(){this._timeOrigin=window.performance.now()};a.prototype.now=function(){try{return Math.round(window.performance.now()-this._timeOrigin)}catch(b){return 0}};return a}();window.adthrive.windowPerformance=window.adthrive.windowPerformance||new n;n=window.adthrive.windowPerformance;var A=n.now.bind(n),T=["siteId","siteName","adOptions","breakpoints","adUnits"],M=function(a,b){void 0===b&&(b=T);if(!a)return!1;for(var c=0;c<b.length;c++)if(!a[b[c]])return!1;return!0},w=function(a){function b(c){var d=
a.call(this)||this;d._probability=c;return d}u(b,a);b.prototype.get=function(){if(0>this._probability||1<this._probability)throw Error("Invalid probability: ".concat(this._probability));return Math.random()<this._probability};return b}(function(){return function(){}}()),U=function(){function a(){this._clsGlobalData=window.adthriveCLS}Object.defineProperty(a.prototype,"enabled",{get:function(){return!!this._clsGlobalData&&!!this._clsGlobalData.siteAds&&M(this._clsGlobalData.siteAds)},enumerable:!1,
configurable:!0});Object.defineProperty(a.prototype,"error",{get:function(){return!(!this._clsGlobalData||!this._clsGlobalData.error)},enumerable:!1,configurable:!0});Object.defineProperty(a.prototype,"siteAds",{get:function(){return this._clsGlobalData.siteAds},set:function(b){this._clsGlobalData.siteAds=b},enumerable:!1,configurable:!0});Object.defineProperty(a.prototype,"disableAds",{get:function(){return this._clsGlobalData.disableAds},set:function(b){this._clsGlobalData.disableAds=b},enumerable:!1,
configurable:!0});Object.defineProperty(a.prototype,"enabledLocations",{get:function(){return this._clsGlobalData.enabledLocations},set:function(b){this._clsGlobalData.enabledLocations=b},enumerable:!1,configurable:!0});Object.defineProperty(a.prototype,"injectedFromPlugin",{get:function(){return this._clsGlobalData.injectedFromPlugin},set:function(b){this._clsGlobalData.injectedFromPlugin=b},enumerable:!1,configurable:!0});Object.defineProperty(a.prototype,"injectedFromSiteAds",{get:function(){return this._clsGlobalData.injectedFromSiteAds},
set:function(b){this._clsGlobalData.injectedFromSiteAds=b},enumerable:!1,configurable:!0});a.prototype.overwriteInjectedSlots=function(b){this._clsGlobalData.injectedSlots=b};a.prototype.setInjectedSlots=function(b){this._clsGlobalData.injectedSlots=this._clsGlobalData.injectedSlots||[];this._clsGlobalData.injectedSlots.push(b)};Object.defineProperty(a.prototype,"injectedSlots",{get:function(){return this._clsGlobalData.injectedSlots},enumerable:!1,configurable:!0});a.prototype.setInjectedVideoSlots=
function(b){this._clsGlobalData.injectedVideoSlots=this._clsGlobalData.injectedVideoSlots||[];this._clsGlobalData.injectedVideoSlots.push(b)};Object.defineProperty(a.prototype,"injectedVideoSlots",{get:function(){return this._clsGlobalData.injectedVideoSlots},enumerable:!1,configurable:!0});a.prototype.setInjectedScripts=function(b){this._clsGlobalData.injectedScripts=this._clsGlobalData.injectedScripts||[];this._clsGlobalData.injectedScripts.push(b)};Object.defineProperty(a.prototype,"getInjectedScripts",
{get:function(){return this._clsGlobalData.injectedScripts},enumerable:!1,configurable:!0});a.prototype.setExperiment=function(b,c,d){void 0===d&&(d=!1);this._clsGlobalData.experiments=this._clsGlobalData.experiments||{};this._clsGlobalData.siteExperiments=this._clsGlobalData.siteExperiments||{};(d?this._clsGlobalData.siteExperiments:this._clsGlobalData.experiments)[b]=c};a.prototype.getExperiment=function(b,c){void 0===c&&(c=!1);return(c=c?this._clsGlobalData.siteExperiments:this._clsGlobalData.experiments)&&
c[b]};a.prototype.setWeightedChoiceExperiment=function(b,c,d){void 0===d&&(d=!1);this._clsGlobalData.experimentsWeightedChoice=this._clsGlobalData.experimentsWeightedChoice||{};this._clsGlobalData.siteExperimentsWeightedChoice=this._clsGlobalData.siteExperimentsWeightedChoice||{};(d?this._clsGlobalData.siteExperimentsWeightedChoice:this._clsGlobalData.experimentsWeightedChoice)[b]=c};a.prototype.getWeightedChoiceExperiment=function(b,c){var d,e;void 0===c&&(c=!1);return(c=c?null===(d=this._clsGlobalData)||
void 0===d?void 0:d.siteExperimentsWeightedChoice:null===(e=this._clsGlobalData)||void 0===e?void 0:e.experimentsWeightedChoice)&&c[b]};Object.defineProperty(a.prototype,"branch",{get:function(){return this._clsGlobalData.branch},enumerable:!1,configurable:!0});Object.defineProperty(a.prototype,"bucket",{get:function(){return this._clsGlobalData.bucket},enumerable:!1,configurable:!0});Object.defineProperty(a.prototype,"videoDisabledFromPlugin",{get:function(){return this._clsGlobalData.videoDisabledFromPlugin},
set:function(b){this._clsGlobalData.videoDisabledFromPlugin=b},enumerable:!1,configurable:!0});Object.defineProperty(a.prototype,"targetDensityLog",{get:function(){return this._clsGlobalData.targetDensityLog},set:function(b){this._clsGlobalData.targetDensityLog=b},enumerable:!1,configurable:!0});Object.defineProperty(a.prototype,"removeVideoTitleWrapper",{get:function(){return this._clsGlobalData.siteAds.adOptions.removeVideoTitleWrapper},enumerable:!1,configurable:!0});return a}();n=function(){function a(){this._clsOptions=
new U;this.shouldUseCoreExperimentsConfig=!1}a.prototype.setExperimentKey=function(b){void 0===b&&(b=!1);this._clsOptions.setExperiment(this.key,this.result,b)};return a}();var V=function(a){function b(){var c=a.call(this)||this;c._result=!1;c._choices=[{choice:!0},{choice:!1}];c.key="smhd100";c._result=c.run();c.setExperimentKey();return c}u(b,a);Object.defineProperty(b.prototype,"result",{get:function(){return this._result},enumerable:!1,configurable:!0});b.prototype.run=function(){return(new w(.1)).get()};
return b}(n),N=function(a,b,c,d,e,f){a=Math.round(f-e);b=[];e=[];b.push("(",c.map(function(){return"%o"}).join(", "),")");e.push.apply(e,r([],l(c),!1));void 0!==d&&(b.push(" => %o"),e.push(d));b.push(" %c(".concat(a,"ms)"));e.push("color: #999;")},O=function(a,b,c){var d=void 0!==c.get?c.get:c.value;return function(){for(var e=[],f=0;f<arguments.length;f++)e[f]=arguments[f];try{var h=A(),g=d.apply(this,e);if(g instanceof Promise)return g.then(function(k){var q=A();N(a,b,e,k,h,q);return Promise.resolve(k)}).catch(function(k){k.logged||
(z.error(a,b,k),k.logged=!0);throw k;});var p=A();N(a,b,e,g,h,p);return g}catch(k){throw k.logged||(z.error(a,b,k),k.logged=!0),k;}}},P=function(a,b){void 0===b&&(b=!1);return function(c){var d,e=Object.getOwnPropertyNames(c.prototype).filter(function(t){return b||0!==t.indexOf("_")}).map(function(t){return[t,Object.getOwnPropertyDescriptor(c.prototype,t)]});try{for(var f=R(e),h=f.next();!h.done;h=f.next()){var g=l(h.value,2),p=g[0],k=g[1];void 0!==k&&"function"===typeof k.value?c.prototype[p]=O(a,
p,k):void 0!==k&&void 0!==k.get&&"function"===typeof k.get&&Object.defineProperty(c.prototype,p,v(v({},k),{get:O(a,p,k)}))}}catch(t){var q={error:t}}finally{try{h&&!h.done&&(d=f.return)&&d.call(f)}finally{if(q)throw q.error;}}}},W=function(a){function b(){var c=a.call(this)||this;c._result=!1;c.key="conmax99";c._choices=[{choice:!0},{choice:!1}];c.weight=.02;c._result=c.run();c.setExperimentKey();return c}u(b,a);Object.defineProperty(b.prototype,"result",{get:function(){return this._result},enumerable:!1,
configurable:!0});b.prototype.run=function(){return(new w(this.weight)).get()};return b=B([P("MaxContentExperiment"),C("design:paramtypes",[])],b)}(n),X=function(a){function b(c){var d=a.call(this)||this;d._result=!1;d.key="parallax";d._choices=[{choice:!0},{choice:!1}];d.weight=.5;D()&&c.largeFormatsMobile&&(d._result=d.run(),d.setExperimentKey());return d}u(b,a);Object.defineProperty(b.prototype,"result",{get:function(){return this._result},enumerable:!1,configurable:!0});b.prototype.run=function(){return(new w(this.weight)).get()};
return b=B([P("ParallaxAdsExperiment"),C("design:paramtypes",[Object])],b)}(n),Y=function(a){function b(){var c=a.call(this)||this;c._result=!1;c._choices=[{choice:!0},{choice:!1}];c.key="mrsf";D()&&(c._result=c.run(),c.setExperimentKey());return c}u(b,a);Object.defineProperty(b.prototype,"result",{get:function(){return this._result},enumerable:!1,configurable:!0});b.prototype.run=function(){return(new w(.2)).get()};return b}(n),Z=[[728,90],[300,250],[300,600],[320,50],[970,250],[160,600],[300,1050],
[336,280],[970,90],[300,50],[320,100],[468,60],[250,250],[120,240],[1,1],[300,300],[552,334],[300,420],[728,250],[320,300],[300,390]],aa=[[300,600],[160,600]],ba=new Map([["Footer",1],["Header",2],["Sidebar",3],["Content",4],["Recipe",5],["Sidebar_sticky",6],["Below Post",7]]),ca=function(a){return Z.filter(function(b){b=l(b,2);var c=b[0],d=b[1];return a.some(function(e){e=l(e,2);var f=e[1];return c===e[0]&&d===f})})},da=function(a,b,c,d,e){b=l(b,2);var f=b[0],h=b[1],g=a.location;b=a.sequence;return"Footer"===
g?!("phone"===c&&320===f&&100===h):"Header"===g?!(100<h&&d.result):"Recipe"===g?!(e.result&&"phone"===c&&(300===f&&390===h||320===f&&300===h)):"Sidebar"===g?(c=a.adSizes.some(function(p){return 300>=l(p,2)[1]}),(d=300<h)&&!c?!0:9===b?!0:b&&5>=b?d?a.sticky:!0:!d):!0},ea=function(a,b){var c=b.adUnits,d=b.adTypes?(new X(b.adTypes)).result:!1,e=new V,f=new W,h=new Y;return c.filter(function(g){return void 0!==g.dynamic&&g.dynamic.enabled}).map(function(g){var p=g.location.replace(/\s+/g,"_"),k="Sidebar"===
p?0:2;return{auctionPriority:ba.get(p)||8,location:p,sequence:m(g.sequence,1),sizes:ca(g.adSizes).filter(function(q){return da(g,q,a,e,h)}).concat(d&&"Content"===g.location?aa:[]),devices:g.devices,pageSelector:m(g.dynamic.pageSelector,"").trim(),elementSelector:m(g.dynamic.elementSelector,"").trim(),position:m(g.dynamic.position,"beforebegin"),max:f.result&&"Content"===g.location?99:Math.floor(m(g.dynamic.max,0)),spacing:m(g.dynamic.spacing,0),skip:Math.floor(m(g.dynamic.skip,0)),every:Math.max(Math.floor(m(g.dynamic.every,
1)),1),classNames:g.dynamic.classNames||[],sticky:"Footer"===g.location?!0:g.sticky,stickyOverlapSelector:m(g.stickyOverlapSelector,"").trim(),autosize:g.autosize,special:m(g.targeting,[]).filter(function(q){return"special"===q.key}).reduce(function(q,t){return q.concat.apply(q,r([],l(t.value),!1))},[]),lazy:m(g.dynamic.lazy,!1),lazyMax:m(g.dynamic.lazyMax,k),lazyMaxDefaulted:0===g.dynamic.lazyMax?!1:!g.dynamic.lazyMax}})},fa=function(a,b){var c=S(b),d=a.sticky&&"Sidebar"===a.location;return a.sizes.filter(function(e){var f=
d?e[1]<=window.innerHeight-100:!0;return(a.autosize?e[0]<=c||320>=e[0]:!0)&&f})},Q=function(){function a(b){this.adthriveCLS=b;this.deviceToMinHeight={desktop:"90px",tablet:"90px",phone:"50px"};b=this.adthriveCLS.siteAds.breakpoints;var c=b.tablet;var d=window.innerWidth;b=d>=b.desktop?"desktop":d>=c?"tablet":"phone";this._device=b}a.prototype.start=function(){var b=this;try{for(var c=ea(this._device,this.adthriveCLS.siteAds).filter(function(e){return b.locationEnabled(e)}).filter(function(e){return e.devices.includes(b._device)}),
d=0;d<c.length;d++)window.requestAnimationFrame(this.inject.bind(this,c[d],document))}catch(e){z.error("ClsHeaderInjector","start",e)}};a.prototype.inject=function(b,c){void 0===c&&(c=document);if("complete"!==document.readyState)if(0===b.pageSelector.length||document.querySelector(b.pageSelector)){var d=this.getElements(b.elementSelector,c);if(d){var e=this.getDynamicElementId(b),f="adthrive-".concat(b.location.replace("_","-").toLowerCase()),h="".concat(f,"-").concat(b.sequence);f=r([f,h],l(b.classNames),
!1);if(d=this.addAd(d,e,b.position,f))e=fa(b,d),0<e.length&&(b={clsDynamicAd:b,dynamicAd:b,element:d,sizes:e,name:"Header_1",infinite:c!==document},this.adthriveCLS.injectedSlots.some(function(g){return"Header_1"===g.name})||this.adthriveCLS.injectedSlots.push(b),d.style.minHeight=this.deviceToMinHeight[this._device])}else window.requestAnimationFrame(this.inject.bind(this,b,document))}else window.requestAnimationFrame(this.inject.bind(this,b,document))};a.prototype.getDynamicElementId=function(b){return"".concat("AdThrive",
"_").concat(b.location,"_").concat(b.sequence,"_").concat(this._device)};a.prototype.getElements=function(b,c){void 0===c&&(c=document);return c.querySelector(b)};a.prototype.addAd=function(b,c,d,e){void 0===e&&(e=[]);document.getElementById(c)||(e='<div id="'.concat(c,'" class="adthrive-ad ').concat(e.join(" "),'"></div>'),b.insertAdjacentHTML(d,e));return document.getElementById(c)};a.prototype.locationEnabled=function(b){return!(this.adthriveCLS.disableAds&&this.adthriveCLS.disableAds.all)&&"Header"===
b.location&&1===b.sequence&&1===b.max&&0===b.spacing};return a}();(function(){var a=window.adthriveCLS;a&&a.siteAds&&M(a.siteAds)&&window.requestAnimationFrame&&(new Q(a)).start()})();x.ClsHeaderInjector=Q;Object.defineProperty(x,"__esModule",{value:!0});return x}({})
</script>
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-11613365-32"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'UA-11613365-32');
</script>
</head>
<body class="post-template-default single single-post postid-33463706 single-format-standard wp-custom-logo theme-lbb-theme-pimylifeup woocommerce-no-js no-sidebar">
<div id="page" class="site">
<header id="masthead" class="site-header">
<nav id="site-navigation" class="navbar navbar-expand-lg navbar-light">
<div class="container nav-container">
<div class="nav-wrapper">
<a class="navbar-brand" title="Go to Homepage" href="https://pimylifeup.com/" rel="home">
<img width="160" height="50" src="https://pimylifeup.com/wp-content/uploads/2021/06/pimylifeuplogosmall.png" class="attachment-full size-full" alt="Pi My Life Up" decoding="async" loading="eager" /> </a>
<div id="nav-search-bar" class="w-100 h-100 search-nav-bar">
<div class="w-100 d-flex align-items-center">
<form role="search" method="get" class="searchform" action="https://pimylifeup.com/">
<div class="input-group">
<input type="text" class="form-control" aria-label="Search" placeholder="Search &hellip;" value="" name="s" />
<div class="input-group-append">
<input type="submit" class="btn btn-outline-secondary" value="Search" />
</div>
</div>
</form> </div>
</div>
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarCollapse" aria-controls="navbarCollapse" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div id="navbarCollapse" class="collapse navbar-collapse">
<ul id="primary-menu" itemscope itemtype="https://schema.org/SiteNavigationElement" class="navbar-nav mr-auto"><li id="menu-item-14848" class="highlighted menu-item menu-item-type-custom menu-item-object-custom menu-item-14848 nav-item"><a itemprop="url" href="https://pimylifeup.com/subscribe/?utm_source=menu&#038;utm_medium=link" class="nav-link"><span itemprop="name">Ad-Free</span></a></li>
<li id="menu-item-33457029" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-33457029 nav-item"><a itemprop="url" href="https://pimylifeup.com/raspberry-pi-index/" class="nav-link"><span itemprop="name">Raspberry Pi</span></a></li>
<li id="menu-item-33470026" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-33470026 nav-item"><a itemprop="url" href="https://pimylifeup.com/linux-index/" class="nav-link"><span itemprop="name">Linux</span></a></li>
<li id="menu-item-33476258" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-33476258 nav-item"><a itemprop="url" href="https://pimylifeup.com/category/windows/" class="nav-link"><span itemprop="name">Windows</span></a></li>
<li id="menu-item-33476257" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-33476257 nav-item"><a itemprop="url" href="https://pimylifeup.com/category/macos/" class="nav-link"><span itemprop="name">macOS</span></a></li>
<li id="menu-item-33479343" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-33479343 nav-item"><a itemprop="url" href="https://pimylifeup.com/category/steamdeck/" class="nav-link"><span itemprop="name">Steam Deck</span></a></li>
<li id="menu-item-33465488" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children dropdown menu-item-33465488 nav-item"><a href="#" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" class="dropdown-toggle nav-link" id="menu-item-dropdown-33465488"><span itemprop="name">More</span></a>
<ul class="dropdown-menu" aria-labelledby="menu-item-dropdown-33465488">
<li id="menu-item-33470034" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-33470034 nav-item"><a itemprop="url" href="https://pimylifeup.com/coding-index/" class="dropdown-item"><span itemprop="name">Coding</span></a></li>
<li id="menu-item-33457032" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-33457032 nav-item"><a itemprop="url" href="https://pimylifeup.com/category/learn-electronics/" class="dropdown-item"><span itemprop="name">Electronics</span></a></li>
<li id="menu-item-33457030" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-33457030 nav-item"><a itemprop="url" href="https://pimylifeup.com/category/arduino-projects/" class="dropdown-item"><span itemprop="name">Arduino</span></a></li>
<li id="menu-item-33466152" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-33466152 nav-item"><a itemprop="url" href="https://pimylifeup.com/compilations/" class="dropdown-item"><span itemprop="name">Compilations</span></a></li>
<li id="menu-item-33472130" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-33472130 nav-item"><a itemprop="url" href="https://pimylifeup.com/category/tutorials/" class="dropdown-item"><span itemprop="name">Other Tutorials</span></a></li>
<li id="menu-item-33476256" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-33476256 nav-item"><a itemprop="url" href="https://pimylifeup.com/category/archive/" class="dropdown-item"><span itemprop="name">Archive</span></a></li>
<li id="menu-item-16907" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-16907 nav-item"><a rel="nofollow" itemprop="url" href="https://pimylifeup.com/my-account/" class="dropdown-item"><span itemprop="name">Login</span></a></li>
</ul>
</li>
</ul>
<button class="themeToggle" title="Dark Theme Toggle" aria-label="Dark Theme Toggle">
<i class="fa-themeToggle"></i><span class="d-lg-none themeToggle-text"></span>
</button>
</div>
</div>
<button id="toggle-search-button" title="Search" class="searchToggle" aria-label="Toggle Search">
<i class="fa-searchToggle"></i>
</button>
</div>
</nav><!-- #site-navigation -->
</header><!-- #masthead -->
<div id="main-content" class="site-content container">
<div class="row">
<div id="primary" class="content-area col-lg-8">
<main id="main" class="site-main">
<article id="post-33463706" class="post-33463706 post type-post status-publish format-standard has-post-thumbnail hentry category-beginner category-media">
<header class="entry-header post-header-outer row">
<h1 class="entry-title text-center col-12">Installing Jellyfin to the Raspberry Pi</h1> <div class="entry-meta header-meta-tags text-center col-12">
<div class="byline mx-2"><img alt='Emmet Avatar' src="https://cdn.pimylifeup.com/wp-content/uploads/2022/04/pimylifeup_editor_avatar.png" class='avatar avatar-48 photo rounded' height='48' width='48' loading='lazy'/> by <span class="author vcard"><span class="fn">Emmet</span></span></div><div class="updated-on mx-2 fa-calendar-alt">Updated <time class="entry-date date updated" datetime="2022-07-18T20:12:21+10:00"> Jul 18, 2022</time></div><div class="cat-links mx-2"><a class='fa-raspberry-pi' href="https://pimylifeup.com/category/projects/beginner/" rel="category tag">Beginner</a> <a class='fa-raspberry-pi' href="https://pimylifeup.com/category/projects/media/" rel="category tag">Media</a></div><div class='social-share-links mx-2 '><a rel='nofollow noopener noreferrer' class='social-share-button fa-facebook' title='Share to Facebook' target='_blank' href='https://www.facebook.com/sharer.php?u=https%3A%2F%2Fpimylifeup.com%2Fraspberry-pi-jellyfin%2F'></a><a rel='nofollow noopener noreferrer' class='social-share-button fa-twitter' title='Share to Twitter' target='_blank' href='https://twitter.com/intent/tweet?text=Installing%20Jellyfin%20to%20the%20Raspberry%20Pi&url=https%3A%2F%2Fpimylifeup.com%2Fraspberry-pi-jellyfin%2F'></a><a rel='nofollow noopener noreferrer' class='social-share-button fa-pinterest' title='Share to Pinterest' target='_blank' href='https://pinterest.com/pin/create/bookmarklet/?url=https%3A%2F%2Fpimylifeup.com%2Fraspberry-pi-jellyfin%2F&media=https://pimylifeup.com/wp-content/uploads/2021/02/Jellyfin-on-the-Raspberry-Pi-Long.jpg'></a><a rel='nofollow noopener noreferrer' class='social-share-button fa-mail' title='Email this page' href='mailto:?subject=Installing%20Jellyfin%20to%20the%20Raspberry%20Pi&body=Check%20out%20this:%20https%3A%2F%2Fpimylifeup.com%2Fraspberry-pi-jellyfin%2F'></a></div> </div><!-- .entry-meta -->
</header><!-- .entry-header -->
<div class="entry-content">
<p class="text-center">This tutorial will show you how to install the Jellyfin media server to the Raspberry Pi.</p>
<figure class="wp-block-image aligncenter"><img decoding="async" width="728" height="400" src="https://pimylifeup.com/wp-content/uploads/2021/02/Jellyfin-on-the-Raspberry-Pi-Thumbnail.jpg" alt="Jellyfin on the Raspberry Pi" class="wp-image-33463747" srcset="https://pimylifeup.com/wp-content/uploads/2021/02/Jellyfin-on-the-Raspberry-Pi-Thumbnail.jpg 728w, https://pimylifeup.com/wp-content/uploads/2021/02/Jellyfin-on-the-Raspberry-Pi-Thumbnail-300x165.jpg 300w, https://pimylifeup.com/wp-content/uploads/2021/02/Jellyfin-on-the-Raspberry-Pi-Thumbnail-227x125.jpg 227w, https://pimylifeup.com/wp-content/uploads/2021/02/Jellyfin-on-the-Raspberry-Pi-Thumbnail-600x330.jpg 600w" sizes="(max-width: 728px) 100vw, 728px" /></figure>
<p>Jellyfin is a media server much like Plex and Emby. The software is designed to stream the media off of your Raspberry Pi to various clients.</p>
<p>Where <a href="https://jellyfin.org/" target="_blank" rel="noopener">Jellyfin</a> differs itself is in its licensing, the software is open source and completely free-to-use.</p>
<p>All of the media server&#8217;s features and apps are not locked behind any paywall like its alternatives making Jellyfin a solid choice for the Raspberry Pi.</p>
<p>It has many of the same features that <a href="https://pimylifeup.com/raspberry-pi-plex-server/">software like Plex</a> and Emby have. Such as an inbuilt DVR and live TV functionality.</p>
<p>Jellyfin started as a fork of the <a href="https://emby.media/" target="_blank" rel="noopener">Emby project</a> after the Emby team moved to be proprietary software.</p>
<p>The biggest downside to using the Jellyfin media server on your Raspberry Pi is that it doesn&#8217;t have as much client software available.</p>
<p>However, it still features a <a href="https://jellyfin.org/clients/" target="_blank" rel="noopener">client for most major operating systems</a>, including Fire TV, Roku, Kodi, Android TV, Android, and iOS.</p>
<p>The Jellyfin team is working on expanding the support to the major game consoles as and LG&#8217;s and Samsung&#8217;s TV operating systems.</p>
<p>To get the best performance out of the Jellyfin media server we recommend using the Raspberry Pi 4. While the Pi 3 can run Jellyfin, it will start to come undone once transcoding is heavily used.</p>
<h2 class="lbb-section-break mt-5 wp-block-heading" id="table-of-contents">Table of Contents</h2>
<ul class="pi_list_style border py-3"><li><a href="#preparing">Preparing your Raspberry Pi for Jellyfin</a></li><li><a href="#installing">Installing Jellyfin to the Raspberry Pi</a></li><li><a href="#accessing">Accessing Jellyfin’s Web Interface</a></li><li><a href="#firstsetup">First Setup Experience of Jellyfin</a></li><li><a href="#loggingin">Logging in to Jellyfin</a></li><li><a href="#hardwareacceleration">Enabling Hardware Acceleration for Jellyfin</a>
<ul>
<li><a href="#configuringpi">Configuring your Raspberry Pi for Hardware Acceleration</a></li>
<li><a href="#configuringjellyfin">Telling Jellyfin to use Hardware Acceleration</a></li>
</ul>
</li><li><a href="#permission">Dealing with Permission Issues</a></li><li><a href="#conclusion">Conclusion</a></li></ul>
<h2 class="lbb-section-break wp-block-heading" id="equipment">Equipment</h2>
<p>Below is a list of the equipment we used for installing the Jellyfin media server to the Raspberry Pi.</p>
<h3>Recommended</h3><ul id='recommended_equipment' class='list-unstyled'><li class='fa-microchip'><a href="https://0g.pimylifeup.com/l8KF94/amazon/raspberrypi" target="_blank" rel="noopener nofollow">Raspberry Pi</a></li><li class='fa-hdd'><a href="https://0g.pimylifeup.com/DUVENo/amazon/microsdcard" target="_blank" rel="noopener nofollow">Micro SD Card</a> (8GB+)</li><li class='fa-wifi'><a href="https://0g.pimylifeup.com/9YIU76/amazon/ethernetcord" target="_blank" rel="noopener nofollow">Ethernet Cable</a> or <a href="https://0g.pimylifeup.com/89vmLk/amazon/wifidongle" target="_blank" rel="noopener nofollow">Wi-Fi</a></li></ul><h3>Optional</h3><ul id='optional_equipment' class='list-unstyled'><li class='fa-square'><a href="https://pimylifeup.com/raspberry-pi-cases/" target="_blank" rel="noopener nofollow">Raspberry Pi Case</a></li><li class='fa-keyboard'><a href="https://0g.pimylifeup.com/FiheVF/amazon/usbkeyboard" target="_blank" rel="noopener nofollow">USB Keyboard</a></li><li class='fa-mouse-pointer'><a href="https://0g.pimylifeup.com/2VE9AD/amazon/usbmouse" target="_blank" rel="noopener nofollow">USB Mouse</a></li></ul>
<p>We tested this tutorial on the <a href="https://pimylifeup.com/raspberry-pi-400/">Raspberry Pi 400</a> using the latest release of Raspberry Pi OS Buster.</p>
<h2 class="text-center mt-5 lbb-section-break wp-block-heading" id="preparing">Preparing your Raspberry Pi for Jellyfin</h2>
<p>Before installing the Jellyfin media server to our Raspberry Pi, we need to do some essential preparatory work.</p>
<p>As Jellyfin is available through its repository, we will need to add it for our package manager to install Jellyfin.</p>
<p><strong class="step_numbering">1.</strong> Before we proceed, let us start by ensuring we are running an updated operating system.</p>
<p>As long as you are running a Debian operating system such as Ubuntu or Raspberry Pi OS, the following steps will work fine for you.</p>
<p>Update your Raspberry Pi&#8217;s operating system by using the following two commands.</p>
<pre class="wp-block-code"><code class="header terminal">sudo apt update
sudo apt full-upgrade</code></pre>
<p><strong class="step_numbering">2.</strong> With our Raspberry Pi up to date, we need to install some packages to access the Jellyfin package repository.</p>
<p>Out of the box, the apt package manager does not have support for repositories running behind HTTPS.</p>
<p>To work around this, we can install the <code>apt-transport-https</code> package by running the following command.</p>
<pre class="wp-block-code"><code class="header terminal">sudo apt install apt-transport-https lsb-release</code></pre>
<p>This package adds support for the HTTPS transport protocol to the apt package manager.</p>
<p><strong class="step_numbering">3.</strong> Next, we need to import the GPG signing key to our Pi.</p>
<p>We can use the following command to pipe the key directly to our package manager&#8217;s key chain.</p>
<pre class="wp-block-code"><code class="header terminal">curl https://repo.jellyfin.org/debian/jellyfin_team.gpg.key | gpg --dearmor | sudo tee /usr/share/keyrings/jellyfin-archive-keyring.gpg &gt;/dev/null</code></pre>
<p>GPG Keys are an essential part of how package repositories remain secure. The keys help ensure that only software signed by the repository will be installed.</p>
<p><strong class="step_numbering">4.</strong> Now that we have the GPG key added, we can finally add the Jellyfin repository to our Raspberry Pi.</p>
<p>We can use a handy one-liner that will automatically generate the correct line for the sources file.</p>
<pre class="wp-block-code"><code class="header terminal">echo "deb &#91;signed-by=/usr/share/keyrings/jellyfin-archive-keyring.gpg arch=$( dpkg --print-architecture )] https://repo.jellyfin.org/debian $( lsb_release -c -s ) main" | sudo tee /etc/apt/sources.list.d/jellyfin.list</code></pre>
<p>This line automatically grabs the current systems architecture and its current release and fills in the blanks.</p>
<p><strong class="step_numbering">4.</strong> Lastly, we need to update our Pi&#8217;s package list.</p>
<p>You can update the package list by using the following command on your device.</p>
<pre class="wp-block-code"><code class="header terminal">sudo apt update</code></pre>
<p>When you make a change to the sources file, you need to update the package list. Without updating, the package manager won&#8217;t be aware of the changes.</p>
<p><strong class="step_numbering">5.</strong> Before continuing you should consider setting your <a href="https://pimylifeup.com/raspberry-pi-static-ip-address/">Raspberry Pi to use a static IP address</a>.</p>
<p>This will make it easier to connect to the Jellyfin media server when your device restarts.</p>
<h2 class="text-center mt-5 lbb-section-break wp-block-heading" id="installing">Installing Jellyfin to the Raspberry Pi</h2>
<p>With the package repository added, we can now install the Jellyfin media server on our Raspberry Pi.</p>
<p>Thanks to all the work we did in the previous section, this step is very straightforward.</p>
<p><strong class="step_numbering">1.</strong> On your Raspberry Pi, all you need to do is run the following command to install Jellyfin.</p>
<pre class="wp-block-code"><code class="header terminal">sudo apt install jellyfin</code></pre>
<p>This command will download and install Jellyfin from the package repository we added.</p>
<p><strong class="step_numbering">2.</strong> During the installation process Jellyfin will set up a few things on our Raspberry Pi.</p>
<p>The first thing it does is create a new user called &#8220;<code>jellyfin</code>&#8220;. This user is used to run the software on your Raspberry Pi and is also the user who will need to access your files.</p>
<p>Secondly, it also creates a service for Jellyfin. This service will start the media server automatically at boot and allow you to start, stop, and restart the service easily.</p>
<h2 class="text-center mt-5 lbb-section-break wp-block-heading" id="accessing">Accessing Jellyfin&#8217;s Web Interface</h2>
<p>Now that you have installed the Jellyfin media server to your Raspberry Pi, you will want to access its web interface.</p>
<p>The web interface is straightforward to use and supports <a href="https://pimylifeup.com/category/guides/browsers/">most major web browsers</a>.</p>
<p><strong class="step_numbering">1.</strong> To access the Jellyifn web interface, you will need to know your <a href="https://pimylifeup.com/raspberry-pi-ip-address/">Raspberry Pi&#8217;s IP address</a>.</p>
<p>The quickest way of getting your Pi&#8217;s local IP address is to <a href="https://pimylifeup.com/hostname-command/">use the hostname command</a> as we have below.</p>
<pre class="wp-block-code"><code class="header terminal">hostname -I</code></pre>
<p><strong class="step_numbering">2.</strong> With the IP address handy, you need to go to the following address in your web browser.</p>
<p>Make sure you include the Jellyfin port (<code>8096</code>) at the end of the URL.</p>
<pre class="wp-block-code"><code class="header goto">http://<strong>&#91;IPADDRESS]</strong>:8096</code></pre>
<p>You need to replace &#8220;<code>[IPADDRESS]</code>&#8221; with the IP you got in this section&#8217;s first step.</p>
<h2 class="text-center mt-5 lbb-section-break wp-block-heading" id="firstsetup">First Setup Experience of Jellyfin</h2>
<p>Before you can start using Jellyfin, you will need to run through its first setup experience.</p>
<p>Don&#8217;t worry, as the setup experience is a reasonably straightforward process.</p>
<p><strong class="step_numbering">1.</strong> When you first use Jellyfin, you will need to configure the media server.</p>
<p>The first step is to select the display language that you want to use (<strong>1.</strong>).</p>
<p>Once you have the language you want set, <kbd>click</kbd> the &#8220;<code>Next -&gt;</code>&#8221; button (<strong>2.</strong>) to continue.</p>
<figure class="wp-block-image aligncenter"><img decoding="async" loading="lazy" width="728" height="400" src="https://pimylifeup.com/wp-content/uploads/2021/02/Jellyfin-on-the-Raspberry-Pi-01-Select-Language.jpg" alt="Selecting the Jellyfin Language for your Raspberry Pi" class="wp-image-33463722" srcset="https://pimylifeup.com/wp-content/uploads/2021/02/Jellyfin-on-the-Raspberry-Pi-01-Select-Language.jpg 728w, https://pimylifeup.com/wp-content/uploads/2021/02/Jellyfin-on-the-Raspberry-Pi-01-Select-Language-300x165.jpg 300w, https://pimylifeup.com/wp-content/uploads/2021/02/Jellyfin-on-the-Raspberry-Pi-01-Select-Language-227x125.jpg 227w, https://pimylifeup.com/wp-content/uploads/2021/02/Jellyfin-on-the-Raspberry-Pi-01-Select-Language-600x330.jpg 600w" sizes="(max-width: 728px) 100vw, 728px" /></figure>
<p><strong class="step_numbering">2.</strong> Now, we need to create an admin user for accessing Jellyfin.</p>
<p>Use the interface to set a username and password for your account (<strong>1.</strong>).</p>
<p>When you have filled out the required information, <kbd>click</kbd> the &#8220;<code>Next -&gt;</code>&#8221; button (<strong>2.</strong>) to set the user details.</p>
<figure class="wp-block-image aligncenter"><img decoding="async" loading="lazy" width="728" height="400" src="https://pimylifeup.com/wp-content/uploads/2021/02/Jellyfin-on-the-Raspberry-Pi-02-Creating-an-Initial-User.jpg" alt="Creating a User for Jellyfins Web Interface" class="wp-image-33463723" srcset="https://pimylifeup.com/wp-content/uploads/2021/02/Jellyfin-on-the-Raspberry-Pi-02-Creating-an-Initial-User.jpg 728w, https://pimylifeup.com/wp-content/uploads/2021/02/Jellyfin-on-the-Raspberry-Pi-02-Creating-an-Initial-User-300x165.jpg 300w, https://pimylifeup.com/wp-content/uploads/2021/02/Jellyfin-on-the-Raspberry-Pi-02-Creating-an-Initial-User-227x125.jpg 227w, https://pimylifeup.com/wp-content/uploads/2021/02/Jellyfin-on-the-Raspberry-Pi-02-Creating-an-Initial-User-600x330.jpg 600w" sizes="(max-width: 728px) 100vw, 728px" /></figure>
<p><strong class="step_numbering">3.</strong> On this step, you can now add media libraries to your Jellyfin media server.</p>
<p>To add your first media folder, <kbd>click</kbd> the &#8220;<code>Add Media Library</code>&#8221; button.</p>
<figure class="wp-block-image aligncenter"><img decoding="async" loading="lazy" width="728" height="400" src="https://pimylifeup.com/wp-content/uploads/2021/02/Jellyfin-on-the-Raspberry-Pi-03-Adding-Initial-Media-Folders.jpg" alt="Adding Initial Media Folder for Jellyfin" class="wp-image-33463724" srcset="https://pimylifeup.com/wp-content/uploads/2021/02/Jellyfin-on-the-Raspberry-Pi-03-Adding-Initial-Media-Folders.jpg 728w, https://pimylifeup.com/wp-content/uploads/2021/02/Jellyfin-on-the-Raspberry-Pi-03-Adding-Initial-Media-Folders-300x165.jpg 300w, https://pimylifeup.com/wp-content/uploads/2021/02/Jellyfin-on-the-Raspberry-Pi-03-Adding-Initial-Media-Folders-227x125.jpg 227w, https://pimylifeup.com/wp-content/uploads/2021/02/Jellyfin-on-the-Raspberry-Pi-03-Adding-Initial-Media-Folders-600x330.jpg 600w" sizes="(max-width: 728px) 100vw, 728px" /></figure>
<p><strong class="step_numbering">4.</strong> The first thing you need to do is select a content type (<strong>1.</strong>).</p>
<p>The content type is what dictates how Jellyfin will retrieve information about these files.</p>
<p>Next, you need to add the folders where your media files are located. You can start this process by <kbd>clicking</kbd> the plus symbol (<code>+</code>) next to &#8220;<code>Folders</code>&#8221; (<strong>2.</strong>).</p>
<p>Once you have folders added, <kbd>click</kbd> the &#8220;<code>Ok</code>&#8221; button located at the bottom of this screen (<strong>3.</strong>).</p>
<figure class="wp-block-image aligncenter"><img decoding="async" loading="lazy" width="728" height="680" src="https://pimylifeup.com/wp-content/uploads/2021/02/Jellyfin-on-the-Raspberry-Pi-04-Choosing-Content-Type-and-Folders.jpg" alt="Adding a Media folder to Jellyfin" class="wp-image-33463725" srcset="https://pimylifeup.com/wp-content/uploads/2021/02/Jellyfin-on-the-Raspberry-Pi-04-Choosing-Content-Type-and-Folders.jpg 728w, https://pimylifeup.com/wp-content/uploads/2021/02/Jellyfin-on-the-Raspberry-Pi-04-Choosing-Content-Type-and-Folders-300x280.jpg 300w, https://pimylifeup.com/wp-content/uploads/2021/02/Jellyfin-on-the-Raspberry-Pi-04-Choosing-Content-Type-and-Folders-600x560.jpg 600w" sizes="(max-width: 728px) 100vw, 728px" /></figure>
<p><strong class="step_numbering">5.</strong> You can now add additional media folders if you want.</p>
<p>For this guide, we will be sticking with our &#8220;<code>Movies</code>&#8221; folder.</p>
<p><kbd>Click</kbd> the &#8220;<code>Next -&gt;</code>&#8221; button to proceed.</p>
<figure class="wp-block-image aligncenter"><img decoding="async" loading="lazy" width="728" height="400" src="https://pimylifeup.com/wp-content/uploads/2021/02/Jellyfin-on-the-Raspberry-Pi-05-Continuing-after-choosing-Media-Folder.jpg" alt="Media Successfully Added to Raspberry Pi Jellyfin" class="wp-image-33463726" srcset="https://pimylifeup.com/wp-content/uploads/2021/02/Jellyfin-on-the-Raspberry-Pi-05-Continuing-after-choosing-Media-Folder.jpg 728w, https://pimylifeup.com/wp-content/uploads/2021/02/Jellyfin-on-the-Raspberry-Pi-05-Continuing-after-choosing-Media-Folder-300x165.jpg 300w, https://pimylifeup.com/wp-content/uploads/2021/02/Jellyfin-on-the-Raspberry-Pi-05-Continuing-after-choosing-Media-Folder-227x125.jpg 227w, https://pimylifeup.com/wp-content/uploads/2021/02/Jellyfin-on-the-Raspberry-Pi-05-Continuing-after-choosing-Media-Folder-600x330.jpg 600w" sizes="(max-width: 728px) 100vw, 728px" /></figure>
<p><strong class="step_numbering">6.</strong> We can now set the default language Jellyfin will use to fetch metadata (<strong>1.</strong>).</p>
<p>When Jellyfin connects to services such as TVDB, it can fetch episode names and other information in your local language if it is available.</p>
<p>Once you have set the language, <kbd>click</kbd> the &#8220;<code>Next -&gt;</code>&#8221; button to continue (<strong>2.</strong>).</p>
<figure class="wp-block-image aligncenter"><img decoding="async" loading="lazy" width="728" height="400" src="https://pimylifeup.com/wp-content/uploads/2021/02/Jellyfin-on-the-Raspberry-Pi-06-Set-Default-Metadata-Language.jpg" alt="Setting the default metadata Language" class="wp-image-33463727" srcset="https://pimylifeup.com/wp-content/uploads/2021/02/Jellyfin-on-the-Raspberry-Pi-06-Set-Default-Metadata-Language.jpg 728w, https://pimylifeup.com/wp-content/uploads/2021/02/Jellyfin-on-the-Raspberry-Pi-06-Set-Default-Metadata-Language-300x165.jpg 300w, https://pimylifeup.com/wp-content/uploads/2021/02/Jellyfin-on-the-Raspberry-Pi-06-Set-Default-Metadata-Language-227x125.jpg 227w, https://pimylifeup.com/wp-content/uploads/2021/02/Jellyfin-on-the-Raspberry-Pi-06-Set-Default-Metadata-Language-600x330.jpg 600w" sizes="(max-width: 728px) 100vw, 728px" /></figure>
<p><strong class="step_numbering">7.</strong> During the initial setup experience, you can configure remote access for your Jellyfin media server (<strong>1.</strong>).</p>
<p>Use these options to block outside access to your Jellyfin server or to get itself to auto-forward access through your router.</p>
<p>Once set, <kbd>click</kbd> the &#8220;<code>Next -&gt;</code>&#8221; button to confirm your settings (<strong>2.</strong>).</p>
<figure class="wp-block-image aligncenter"><img decoding="async" loading="lazy" width="728" height="400" src="https://pimylifeup.com/wp-content/uploads/2021/02/Jellyfin-on-the-Raspberry-Pi-07-Configure-Remote-Access.jpg" alt="Configure Remote Access to your Raspberry Pi Jellyfin server" class="wp-image-33463728" srcset="https://pimylifeup.com/wp-content/uploads/2021/02/Jellyfin-on-the-Raspberry-Pi-07-Configure-Remote-Access.jpg 728w, https://pimylifeup.com/wp-content/uploads/2021/02/Jellyfin-on-the-Raspberry-Pi-07-Configure-Remote-Access-300x165.jpg 300w, https://pimylifeup.com/wp-content/uploads/2021/02/Jellyfin-on-the-Raspberry-Pi-07-Configure-Remote-Access-227x125.jpg 227w, https://pimylifeup.com/wp-content/uploads/2021/02/Jellyfin-on-the-Raspberry-Pi-07-Configure-Remote-Access-600x330.jpg 600w" sizes="(max-width: 728px) 100vw, 728px" /></figure>
<p><strong class="step_numbering">8.</strong> You have now finished the initial setup experience for the Jellyfin media server on your Raspberry Pi.</p>
<p>You can <kbd>click</kbd> the &#8220;<code>Finish</code>&#8221; button to finalize the setup.</p>
<figure class="wp-block-image aligncenter"><img decoding="async" loading="lazy" width="728" height="400" src="https://pimylifeup.com/wp-content/uploads/2021/02/Jellyfin-on-the-Raspberry-Pi-08-Finished-Initial-Jellyfin-Setup.jpg" alt="Finished setup for Jellyfin on the Raspberry Pi" class="wp-image-33463714" srcset="https://pimylifeup.com/wp-content/uploads/2021/02/Jellyfin-on-the-Raspberry-Pi-08-Finished-Initial-Jellyfin-Setup.jpg 728w, https://pimylifeup.com/wp-content/uploads/2021/02/Jellyfin-on-the-Raspberry-Pi-08-Finished-Initial-Jellyfin-Setup-300x165.jpg 300w, https://pimylifeup.com/wp-content/uploads/2021/02/Jellyfin-on-the-Raspberry-Pi-08-Finished-Initial-Jellyfin-Setup-227x125.jpg 227w, https://pimylifeup.com/wp-content/uploads/2021/02/Jellyfin-on-the-Raspberry-Pi-08-Finished-Initial-Jellyfin-Setup-600x330.jpg 600w" sizes="(max-width: 728px) 100vw, 728px" /></figure>
<h2 class="text-center mt-5 lbb-section-break wp-block-heading" id="loggingin">Logging in to Jellyfin</h2>
<p>Before accessing your Raspberry Pi&#8217;s Jellyfin web interface, you will need to log in.</p>
<p><strong class="step_numbering">1.</strong> Logging in to Jellyfin is a fairly straightforward process.</p>
<p>All you need is a username and password (<strong>1.</strong>). Both of these you should have created during the Jellyfin initial setup experience.</p>
<p>With your login details entered, <kbd>click</kbd> the &#8220;<code>Sign In</code>&#8221; button (<strong>2.</strong>) to log in to the web interface.</p>
<figure class="wp-block-image aligncenter"><img decoding="async" loading="lazy" width="728" height="400" src="https://pimylifeup.com/wp-content/uploads/2021/02/Jellyfin-on-the-Raspberry-Pi-09-Logging-into-the-web-interface.jpg" alt="Logging in to the Raspberry Pi Jellyfin Web Interface" class="wp-image-33463715" srcset="https://pimylifeup.com/wp-content/uploads/2021/02/Jellyfin-on-the-Raspberry-Pi-09-Logging-into-the-web-interface.jpg 728w, https://pimylifeup.com/wp-content/uploads/2021/02/Jellyfin-on-the-Raspberry-Pi-09-Logging-into-the-web-interface-300x165.jpg 300w, https://pimylifeup.com/wp-content/uploads/2021/02/Jellyfin-on-the-Raspberry-Pi-09-Logging-into-the-web-interface-227x125.jpg 227w, https://pimylifeup.com/wp-content/uploads/2021/02/Jellyfin-on-the-Raspberry-Pi-09-Logging-into-the-web-interface-600x330.jpg 600w" sizes="(max-width: 728px) 100vw, 728px" /></figure>
<p><strong class="step_numbering">2.</strong> You should now be able to watch your media through the Jellyfin media server.</p>
<p>Be sure to explore the interface to see how you can configure Jellyfin to best suit your needs.</p>
<figure class="wp-block-image aligncenter"><img decoding="async" loading="lazy" width="728" height="400" src="https://pimylifeup.com/wp-content/uploads/2021/02/Jellyfin-on-the-Raspberry-Pi-10-Initial-Web-Experience.jpg" alt="Jellyfin Running Successfully on the Raspberry Pi" class="wp-image-33463716" srcset="https://pimylifeup.com/wp-content/uploads/2021/02/Jellyfin-on-the-Raspberry-Pi-10-Initial-Web-Experience.jpg 728w, https://pimylifeup.com/wp-content/uploads/2021/02/Jellyfin-on-the-Raspberry-Pi-10-Initial-Web-Experience-300x165.jpg 300w, https://pimylifeup.com/wp-content/uploads/2021/02/Jellyfin-on-the-Raspberry-Pi-10-Initial-Web-Experience-227x125.jpg 227w, https://pimylifeup.com/wp-content/uploads/2021/02/Jellyfin-on-the-Raspberry-Pi-10-Initial-Web-Experience-600x330.jpg 600w" sizes="(max-width: 728px) 100vw, 728px" /></figure>
<h2 class="text-center mt-5 lbb-section-break wp-block-heading" id="hardwareacceleration">Enabling Hardware Acceleration for Jellyfin</h2>
<p>To help improve your experience with Jellyfin on the Raspberry Pi, you should enable hardware acceleration.</p>
<p>These steps will require you to do things on both the Raspberry Pi and the Jellyfin web interface.</p>
<p>Please note that for the optimum experience, you should also ensure your <a href="https://pimylifeup.com/raspberry-pi-temperature/">Raspberry Pi is adequately cooled</a>.</p>
<h3 class="lbb-section-break h4 mt-5 wp-block-heading" id="configuringpi">Configuring your Raspberry Pi for Hardware Acceleration</h3>
<p>We must configure a few things on our Raspberry Pi using the terminal before it will be able to utilize hardware acceleration.</p>
<p><strong class="step_numbering">1.</strong> We need to start by adding the jellyfin user to the &#8220;<code>video</code>&#8221; group.</p>
<p>The video group is a special system group with access to features such as the Raspberry Pi&#8217;s GPU.</p>
<p>The following usermod command will allow us to add the jellyfin user to the video group.</p>
<pre class="wp-block-code"><code class="header terminal">sudo usermod -aG video jellyfin</code></pre>
<p>The <code>-a</code> argument says that we want to add an attribute to a user. The capital <code>G</code> tells usermod that we want to add the <code>video</code> group to <code>jellyfin</code>.</p>
<p><strong class="step_numbering">2.</strong> As hardware acceleration can be fairly memory intensive, we should increase the amount of memory available to the GPU.</p>
<p>Use the <a href="https://pimylifeup.com/nano-text-editor/">nano text editor</a> to begin modifying the boot configuration file.</p>
<pre class="wp-block-code"><code class="header terminal">sudo nano /boot/config.txt</code></pre>
<p>Be careful when modifying this file, as you could potentially stop your Pi from booting. However, it is easy to fix from another device.</p>
<p><strong class="step_numbering">3.</strong> Within this file, you need to add the following line.</p>
<p>This line tells the operating system how much memory it should dedicate to the GPU.</p>
<p>More video memory allows the Raspberry Pi&#8217;s GPU to store more data, allowing it to handle tasks that consume a considerable amount of video memory.</p>
<p><strong class="border-bottom d-block">Raspberry Pi 4</strong></p>
<pre class="wp-block-code"><code class="header add-bottom">gpu_mem=320</code></pre>
<p><strong class="border-bottom d-block">Raspberry Pi 3</strong></p>
<pre class="wp-block-code"><code class="header add-bottom">gpu_mem=256</code></pre>
<p>We give the Raspberry Pi 4 more video memory to handle the transcoding of 4k HEVC files. The Pi 3&#8217;s processor won&#8217;t handle these files very well, so 256mb of video ram should suffice.</p>
<p>You can try increasing the amount of memory dedicated to the GPU to see if it improves your performance further.</p>
<p><strong class="step_numbering">4.</strong> Once you have added the relevant line to the file, you can save and quit by pressing <kbd>CTRL</kbd> + <kbd>X</kbd>, followed by <kbd>Y</kbd>, then the <kbd>ENTER</kbd> key.</p>
<p><strong class="step_numbering">5.</strong> For the memory allocation changes to take effect, you will need to restart your Raspberry Pi.</p>
<p>Restarting your Pi is as straightforward as running the command below.</p>
<pre class="wp-block-code"><code class="header terminal">sudo reboot</code></pre>
<p><strong class="step_numbering">6.</strong> Once your Raspberry Pi finishes rebooting, we can check the memory split.</p>
<p>Run the following two commands to see how much RAM has been allocated to the CPU and GPU.</p>
<pre class="wp-block-code"><code class="header terminal">vcgencmd get_mem arm
vcgencmd get_mem gpu</code></pre>
<p>Below is an example of what your memory split should now look like.</p>
<pre class="wp-block-code"><code class="header" heading-text="Example Memory Split">arm=704M
gpu=320M</code></pre>
<h3 class="lbb-section-break h4 mt-5 wp-block-heading" id="configuringjellyfin">Telling Jellyfin to use Hardware Acceleration</h3>
<p>With our Raspberry Pi now better configured for Jellyfin&#8217;s hardware acceleration, we now need to reconfigure the media server.</p>
<p>For this process, you will need to have access to Jellyfin&#8217;s web interface.</p>
<p><strong class="step_numbering">1.</strong> While on the web interface&#8217;s front page, you need to change to the user settings page.</p>
<p>You can get to the user settings by clicking the person icon in the window&#8217;s top-left corner.</p>
<figure class="wp-block-image aligncenter"><img decoding="async" loading="lazy" width="728" height="400" src="https://pimylifeup.com/wp-content/uploads/2021/02/Jellyfin-on-the-Raspberry-Pi-11-Open-User-Settings-Page.jpg" alt="Open User Settings Page" class="wp-image-33463717" srcset="https://pimylifeup.com/wp-content/uploads/2021/02/Jellyfin-on-the-Raspberry-Pi-11-Open-User-Settings-Page.jpg 728w, https://pimylifeup.com/wp-content/uploads/2021/02/Jellyfin-on-the-Raspberry-Pi-11-Open-User-Settings-Page-300x165.jpg 300w, https://pimylifeup.com/wp-content/uploads/2021/02/Jellyfin-on-the-Raspberry-Pi-11-Open-User-Settings-Page-227x125.jpg 227w, https://pimylifeup.com/wp-content/uploads/2021/02/Jellyfin-on-the-Raspberry-Pi-11-Open-User-Settings-Page-600x330.jpg 600w" sizes="(max-width: 728px) 100vw, 728px" /></figure>
<p><strong class="step_numbering">2.</strong> Within the user settings, we need to change to the media servers dashboard.</p>
<p>To change to the dashboard, <kbd>click</kbd> the &#8220;<code>Dashboard</code>&#8221; option.</p>
<figure class="wp-block-image aligncenter"><img decoding="async" loading="lazy" width="728" height="400" src="https://pimylifeup.com/wp-content/uploads/2021/02/Jellyfin-on-the-Raspberry-Pi-12-Opening-the-Dashboard-Settings.jpg" alt="Opening Raspberry Pi Jellyfin's Dashboard" class="wp-image-33463718" srcset="https://pimylifeup.com/wp-content/uploads/2021/02/Jellyfin-on-the-Raspberry-Pi-12-Opening-the-Dashboard-Settings.jpg 728w, https://pimylifeup.com/wp-content/uploads/2021/02/Jellyfin-on-the-Raspberry-Pi-12-Opening-the-Dashboard-Settings-300x165.jpg 300w, https://pimylifeup.com/wp-content/uploads/2021/02/Jellyfin-on-the-Raspberry-Pi-12-Opening-the-Dashboard-Settings-227x125.jpg 227w, https://pimylifeup.com/wp-content/uploads/2021/02/Jellyfin-on-the-Raspberry-Pi-12-Opening-the-Dashboard-Settings-600x330.jpg 600w" sizes="(max-width: 728px) 100vw, 728px" /></figure>
<p><strong class="step_numbering">3.</strong> Now that we are in our Raspberry Pi&#8217;s Jellyfin dashboard, we need to change to the &#8220;<code>Playback</code>&#8221; tab.</p>
<p>You can find this option in the left-hand sidebar.</p>
<figure class="wp-block-image aligncenter"><img decoding="async" loading="lazy" width="728" height="400" src="https://pimylifeup.com/wp-content/uploads/2021/02/Jellyfin-on-the-Raspberry-Pi-13-Change-to-playback-tab.jpg" alt="Jellyfin Change to Playback Tab" class="wp-image-33463719" srcset="https://pimylifeup.com/wp-content/uploads/2021/02/Jellyfin-on-the-Raspberry-Pi-13-Change-to-playback-tab.jpg 728w, https://pimylifeup.com/wp-content/uploads/2021/02/Jellyfin-on-the-Raspberry-Pi-13-Change-to-playback-tab-300x165.jpg 300w, https://pimylifeup.com/wp-content/uploads/2021/02/Jellyfin-on-the-Raspberry-Pi-13-Change-to-playback-tab-227x125.jpg 227w, https://pimylifeup.com/wp-content/uploads/2021/02/Jellyfin-on-the-Raspberry-Pi-13-Change-to-playback-tab-600x330.jpg 600w" sizes="(max-width: 728px) 100vw, 728px" /></figure>
<p>The &#8220;<code>Playback</code>&#8221; tab is where we can control how files are played from our Raspberry Pi to the Jellyfin clients.</p>
<p><strong class="step_numbering">4.</strong> Under the &#8220;Hardware acceleration&#8221; heading, you should see a select box (<strong>1.</strong>).</p>
<p><kbd>Click</kbd> this box, then select the &#8220;<code>Video4Linux2(V4L2)</code>&#8221; option (<strong>2.</strong>).</p>
<p>V4L2 is the only one of these options that have built-in support for the Raspberry Pi&#8217;s hardware.</p>
<figure class="wp-block-image aligncenter size-full"><img decoding="async" loading="lazy" width="728" height="400" src="https://pimylifeup.com/wp-content/uploads/2021/02/Jellyfin-on-the-Raspberry-Pi-14-Setting-Hardware-Acceleration-to-V4Linux.jpg" alt="Enable V4L Hardware Acceleration on Raspberry Pi" class="wp-image-33475036" srcset="https://pimylifeup.com/wp-content/uploads/2021/02/Jellyfin-on-the-Raspberry-Pi-14-Setting-Hardware-Acceleration-to-V4Linux.jpg 728w, https://pimylifeup.com/wp-content/uploads/2021/02/Jellyfin-on-the-Raspberry-Pi-14-Setting-Hardware-Acceleration-to-V4Linux-300x165.jpg 300w, https://pimylifeup.com/wp-content/uploads/2021/02/Jellyfin-on-the-Raspberry-Pi-14-Setting-Hardware-Acceleration-to-V4Linux-227x125.jpg 227w, https://pimylifeup.com/wp-content/uploads/2021/02/Jellyfin-on-the-Raspberry-Pi-14-Setting-Hardware-Acceleration-to-V4Linux-600x330.jpg 600w" sizes="(max-width: 728px) 100vw, 728px" /></figure>
<p><strong class="step_numbering">5.</strong> Now, the final thing you need to do is scroll down to the bottom of the window.</p>
<p>At the bottom, you can save the settings by <kbd>clicking</kbd> the &#8220;<code>Save</code>&#8221; button.</p>
<figure class="wp-block-image aligncenter"><img decoding="async" loading="lazy" width="728" height="400" src="https://pimylifeup.com/wp-content/uploads/2021/02/Jellyfin-on-the-Raspberry-Pi-15-Saving-Playback-Settings.jpg" alt="Save Jellyfin Playback Settings" class="wp-image-33463721" srcset="https://pimylifeup.com/wp-content/uploads/2021/02/Jellyfin-on-the-Raspberry-Pi-15-Saving-Playback-Settings.jpg 728w, https://pimylifeup.com/wp-content/uploads/2021/02/Jellyfin-on-the-Raspberry-Pi-15-Saving-Playback-Settings-300x165.jpg 300w, https://pimylifeup.com/wp-content/uploads/2021/02/Jellyfin-on-the-Raspberry-Pi-15-Saving-Playback-Settings-227x125.jpg 227w, https://pimylifeup.com/wp-content/uploads/2021/02/Jellyfin-on-the-Raspberry-Pi-15-Saving-Playback-Settings-600x330.jpg 600w" sizes="(max-width: 728px) 100vw, 728px" /></figure>
<p><strong class="step_numbering">6.</strong> You should now have successfully enabled Jellyfin hardware acceleration on your Raspberry Pi.</p>
<h2 class="lbb-section-break mt-5 text-center wp-block-heading" id="permission">Dealing with Permission Issues</h2>
<p>One problem you may encounter when dealing with a media server such as Jellyfin is potential permission issues.</p>
<p>The <a href="https://pimylifeup.com/file-permissions-in-linux/">Linux permission system</a> can sometimes be a bit picky, especially when dealing with mounted drives.</p>
<p>In this section, we will show you how to set the permissions for an ext4 based drive.</p>
<p>Alternative drive format types such as <code>NTFS</code> or <code>FAT</code> will require you to adjust how you are mounting the drive. These drive format types were never designed with the Linux permission system in mind.</p>
<p><strong class="step_numbering">1.</strong> First, work out the directory where you are storing your media files.</p>
<p>You will need to know the exact path so the script knows what directory it needs to modify permissions for.</p>
<p>For our example we will use a directory such as &#8220;<code>/home/pi/media/movies</code>&#8220;.</p>
<p><strong class="step_numbering">2.</strong> For the commands that we will use, we need to be utilizing the superuser.</p>
<p>We can change to the superuser by running the following command on your device.</p>
<pre class="wp-block-code"><code class="header terminal">sudo su</code></pre>
<p><strong class="step_numbering">3.</strong> With a directory path handy, we can now utilize two special commands.</p>
<p>Run the following two commands on your device. Make sure that you replace &#8220;<code>[YOURDRIVEPATH]</code>&#8221; with the path you want to try correcting the permissions on.</p>
<pre class="wp-block-code"><code class="header admin">find <strong>&#91;YOURDRIVEPATH]</strong> -type d -exec chmod 755 {} \;
find <strong>&#91;YOURDRIVEPATH]</strong> -type f -exec chmod 644 {} \;</code></pre>
<p>These commands will loop through your files and directories and re-adjust the permissions so that our <code>jellyfin</code> user should be able to read the media files within it.</p>
<p><strong class="step_numbering">4.</strong> Once you have run the previous two commands, we should exit out of the superuser.</p>
<p>To exit, all you need to do is run the following command on your Raspberry Pi.</p>
<pre class="wp-block-code"><code class="header admin">exit</code></pre>
<h2 class="lbb-section-break mt-5 text-center wp-block-heading" id="conclusion">Conclusion</h2>
<p>You should now have the Jellyfin media server installed on your Raspberry Pi.</p>
<p>We have shown you how to install the software, do the initial setup experience, and even enable hardware acceleration.</p>
<p>Jellyfin is a strong alternative to Plex and Emby that offers an entirely open-source and free experience.</p>
<p>The media server sports many of the paid features of software such as Plex, including hardware acceleration and live TV support.</p>
<p>If you have had any issues with the steps provided in our guide, feel free to leave a comment below.</p>
<p>Be sure to check out some of our other <a href="https://pimylifeup.com/category/projects/media/">Raspberry Pi media projects</a> to find out what else you can do with your device.</p>
<form method="POST" action="javascript:void(0);" id="email_signup" class="email-optin mt-5 py-3 mb-2">
<div class="form-group">
<div class="email-form-title text-center">Weekly Updates Straight To Your Inbox</div>
<p class="mb-4 text-center">Receive our Raspberry Pi projects, coding tutorials, Linux guides and more!</p>
<p class="email-thank-you text-center h3" hidden="">Thank you for subscribing</p>
<div class="input-group input-group-email-field">
<input type="email" name="email" placeholder="Email*" class="form-control" required autocomplete="email">
</div>
<div class="input-group input-group-submit-button justify-content-center my-2">
<button id="email_signup_submit" class="btn-lg w-100 btn-secondary" type="submit">Subscribe</button></div>
</div>
</form><div class="lbb-related-posts d-flex flex-wrap mt-5"><h2 class="col-12 border-bottom mb-3">Recommended</h2><div class="col-6 col-sm-4 blog-reel-post text-center"><a href="https://pimylifeup.com/php-basename/"><img width="227" height="125" src="https://pimylifeup.com/wp-content/uploads/2022/05/PHP-basename-function-Thumbnail-NoWM-227x125.png" class="d-block mx-auto wp-post-image" alt="PHP basename Function" loading="lazy" /><span class="post-highlight">Using the basename() Function in PHP</span></a></div><div class="col-6 col-sm-4 blog-reel-post text-center"><a href="https://pimylifeup.com/raspberry-pi-libreelec/"><img width="227" height="125" src="https://pimylifeup.com/wp-content/uploads/2020/05/Raspberry-Pi-LibreELEC-Thumbnail-NoWM-227x125.jpg" class="d-block mx-auto wp-post-image" alt="Raspberry Pi LibreELEC Thumbnail NoWM" loading="lazy" /><span class="post-highlight">Installing LibreELEC on the Raspberry Pi</span></a></div><div class="col-6 col-sm-4 blog-reel-post text-center"><a href="https://pimylifeup.com/raspberry-pi-telegram-cli/"><img width="227" height="125" src="https://pimylifeup.com/wp-content/uploads/2017/09/Raspberry-Pi-Telegram-no-wm-227x125.jpg" class="d-block mx-auto wp-post-image" alt="Raspberry Pi Telegram" loading="lazy" /><span class="post-highlight">Using Telegram CLI on the Raspberry Pi</span></a></div><div class="col-6 col-sm-4 blog-reel-post text-center"><a href="https://pimylifeup.com/raspberry-pi-network-install/"><img width="227" height="125" src="https://pimylifeup.com/wp-content/uploads/2022/03/Raspberry-Pi-Network-Install-Thumbnail-NoWM-227x125.jpg" class="d-block mx-auto wp-post-image" alt="Raspberry Pi Network Install" loading="lazy" /><span class="post-highlight">Network Install on the Raspberry Pi</span></a></div><div class="col-6 col-sm-4 blog-reel-post text-center"><a href="https://pimylifeup.com/raspberry-pi-terminal-sharing/"><img width="227" height="125" src="https://pimylifeup.com/wp-content/uploads/2018/05/Raspberry-Pi-Terminal-Sharing-no-wm-227x125.jpg" class="d-block mx-auto wp-post-image" alt="Raspberry Pi Terminal Sharing" loading="lazy" /><span class="post-highlight">How to Setup Raspberry Pi Terminal Sharing</span></a></div><div class="col-6 col-sm-4 blog-reel-post text-center"><a href="https://pimylifeup.com/raspberry-pi-ebook-server/"><img width="227" height="125" src="https://pimylifeup.com/wp-content/uploads/2017/10/Raspberry-Pi-eBook-Library-no-wm-1-227x125.jpg" class="d-block mx-auto wp-post-image" alt="Raspberry Pi eBook Server" loading="lazy" /><span class="post-highlight">Setting up your own Raspberry Pi eBook Server</span></a></div></div> </div><!-- .entry-content -->
</article><!-- #post-33463706 -->
<div id="comments" class="comments-area mt-5 pb-1">
<h2 class="comments-title mb-3 fa-comments">10 Comments</h2><!-- .comments-title -->
<ol class="comment-list text-break">
<li id="comment-88586" class="comment even thread-even depth-1">
<article id="div-comment-88586" class="comment-body">
<footer class="comment-meta row align-items-center">
<div class="comment-avatar col-3 col-md-2 text-center">
<img alt='Avatar for Ken' src="data:image/svg+xml,%3csvg viewBox='0 0 5 5' xmlns='http://www.w3.org/2000/svg' fill='hsl(203%2c 70%25%2c 50%25)'%3e%3crect width='100%25' height='100%25' fill='hsl(23%2c 50%25%2c 50%25)'/%3e%3crect x='2' y='1' width='1' height='1'/%3e%3crect x='2' y='3' width='1' height='1'/%3e%3crect x='2' y='4' width='1' height='1'/%3e%3crect x='1' width='1' height='1'/%3e%3crect x='3' width='1' height='1'/%3e%3crect x='1' y='1' width='1' height='1'/%3e%3crect x='3' y='1' width='1' height='1'/%3e%3crect x='1' y='2' width='1' height='1'/%3e%3crect x='3' y='2' width='1' height='1'/%3e%3crect x='1' y='3' width='1' height='1'/%3e%3crect x='3' y='3' width='1' height='1'/%3e%3crect width='1' height='1'/%3e%3crect x='4' width='1' height='1'/%3e%3crect y='4' width='1' height='1'/%3e%3crect x='4' y='4' width='1' height='1'/%3e%3c/svg%3e" class='avatar avatar-80 photo' height='80' width='80' loading='lazy'/> </div>
<div class="col-9 col-md-10">
<div class="comment-author vcard row">
<div class="col-12">
<b class="fn">Ken</b> <span class="says">on</span> <time datetime="2022-12-30T13:33:24+11:00">
December 30, 2022 at 1:33 pm </time>
</div>
</div><!-- .comment-author -->
</div>
</footer><!-- .comment-meta -->
<div class="comment-content row">
<div class="col-12">
<p>This was extremely helpful.Thank you!</p>
<div class="reply"><a rel='nofollow' class='comment-reply-link btn btn-primary' href='#comment-88586' data-commentid="88586" data-postid="33463706" data-belowelement="div-comment-88586" data-respondelement="respond" data-replyto="Reply to Ken" aria-label='Reply to Ken'>Reply</a></div> </div>
</div><!-- .comment-content -->
</article><!-- .comment-body -->
</li><!-- #comment-## -->
<li id="comment-87381" class="comment odd alt thread-odd thread-alt depth-1 parent">
<article id="div-comment-87381" class="comment-body">
<footer class="comment-meta row align-items-center">
<div class="comment-avatar col-3 col-md-2 text-center">
<img alt='Avatar for jstsmblaz' src="data:image/svg+xml,%3csvg viewBox='0 0 5 5' xmlns='http://www.w3.org/2000/svg' fill='hsl(90%2c 70%25%2c 50%25)'%3e%3crect width='100%25' height='100%25' fill='hsl(270%2c 50%25%2c 50%25)'/%3e%3crect x='2' y='1' width='1' height='1'/%3e%3crect x='2' y='4' width='1' height='1'/%3e%3crect x='1' width='1' height='1'/%3e%3crect x='3' width='1' height='1'/%3e%3crect x='1' y='1' width='1' height='1'/%3e%3crect x='3' y='1' width='1' height='1'/%3e%3crect x='1' y='2' width='1' height='1'/%3e%3crect x='3' y='2' width='1' height='1'/%3e%3crect x='1' y='3' width='1' height='1'/%3e%3crect x='3' y='3' width='1' height='1'/%3e%3crect width='1' height='1'/%3e%3crect x='4' width='1' height='1'/%3e%3crect y='2' width='1' height='1'/%3e%3crect x='4' y='2' width='1' height='1'/%3e%3crect y='3' width='1' height='1'/%3e%3crect x='4' y='3' width='1' height='1'/%3e%3c/svg%3e" class='avatar avatar-80 photo' height='80' width='80' loading='lazy'/> </div>
<div class="col-9 col-md-10">
<div class="comment-author vcard row">
<div class="col-12">
<b class="fn">jstsmblaz</b> <span class="says">on</span> <time datetime="2022-09-18T18:06:43+10:00">
September 18, 2022 at 6:06 pm </time>
</div>
</div><!-- .comment-author -->
</div>
</footer><!-- .comment-meta -->
<div class="comment-content row">
<div class="col-12">
<p>hi there, i was just wondering: i have an rpi4 running samba and transmission. can i add also jellyfin and still use samba?</p>
<div class="reply"><a rel='nofollow' class='comment-reply-link btn btn-primary' href='#comment-87381' data-commentid="87381" data-postid="33463706" data-belowelement="div-comment-87381" data-respondelement="respond" data-replyto="Reply to jstsmblaz" aria-label='Reply to jstsmblaz'>Reply</a></div> </div>
</div><!-- .comment-content -->
</article><!-- .comment-body -->
<ol class="children">
<li id="comment-87394" class="comment byuser comment-author-death-droid bypostauthor even depth-2">
<article id="div-comment-87394" class="comment-body">
<footer class="comment-meta row align-items-center">
<div class="comment-avatar col-3 col-md-2 text-center">
<img alt='Avatar for Emmet' src="https://cdn.pimylifeup.com/wp-content/uploads/2022/04/pimylifeup_editor_avatar.png" class='avatar avatar-80 photo' height='80' width='80' loading='lazy'/> </div>
<div class="col-9 col-md-10">
<div class="comment-author vcard row">
<div class="col-12">
<b class="fn">Emmet</b> <span class="says">on</span> <time datetime="2022-09-19T14:13:27+10:00">
September 19, 2022 at 2:13 pm </time>
</div>
</div><!-- .comment-author -->
<div class="comment-buttons row">
<div class="col-12">
<span class="btn-sm btn btn-danger fa-shield-alt">Editor</span>
</div>
</div>
</div>
</footer><!-- .comment-meta -->
<div class="comment-content row">
<div class="col-12">
<p>Hi Jstmblaz,</p>
<p>Off the top of my head, you should be fine using Jellyfin alongside both of those. However, it is not something I&#8217;ve personally tested.</p>
<p>Cheers,<br />
Emmet</p>
</div>
</div><!-- .comment-content -->
</article><!-- .comment-body -->
</li><!-- #comment-## -->
</ol><!-- .children -->
</li><!-- #comment-## -->
<li id="comment-86524" class="comment odd alt thread-even depth-1 parent">
<article id="div-comment-86524" class="comment-body">
<footer class="comment-meta row align-items-center">
<div class="comment-avatar col-3 col-md-2 text-center">
<img alt='Avatar for Joe Miller' src="data:image/svg+xml,%3csvg viewBox='0 0 5 5' xmlns='http://www.w3.org/2000/svg' fill='hsl(169%2c 70%25%2c 50%25)'%3e%3crect width='100%25' height='100%25' fill='hsl(349%2c 50%25%2c 50%25)'/%3e%3crect x='2' y='3' width='1' height='1'/%3e%3crect x='2' y='4' width='1' height='1'/%3e%3crect x='1' y='1' width='1' height='1'/%3e%3crect x='3' y='1' width='1' height='1'/%3e%3crect x='1' y='2' width='1' height='1'/%3e%3crect x='3' y='2' width='1' height='1'/%3e%3crect y='2' width='1' height='1'/%3e%3crect x='4' y='2' width='1' height='1'/%3e%3crect y='3' width='1' height='1'/%3e%3crect x='4' y='3' width='1' height='1'/%3e%3c/svg%3e" class='avatar avatar-80 photo' height='80' width='80' loading='lazy'/> </div>
<div class="col-9 col-md-10">
<div class="comment-author vcard row">
<div class="col-12">
<b class="fn">Joe Miller</b> <span class="says">on</span> <time datetime="2022-07-18T01:40:19+10:00">
July 18, 2022 at 1:40 am </time>
</div>
</div><!-- .comment-author -->
</div>
</footer><!-- .comment-meta -->
<div class="comment-content row">
<div class="col-12">
<p>This is a great and detailed article. I&#8217;m hitting problems at the early stages if anyone has any ideas. </p>
<p>The following packages have unmet dependencies:<br />
jellyfin : Depends: jellyfin-ffmpeg5 (&gt;= 5.0.0) but it is not installable<br />
E: Unable to correct problems, you have held broken packages.</p>
<div class="reply"><a rel='nofollow' class='comment-reply-link btn btn-primary' href='#comment-86524' data-commentid="86524" data-postid="33463706" data-belowelement="div-comment-86524" data-respondelement="respond" data-replyto="Reply to Joe Miller" aria-label='Reply to Joe Miller'>Reply</a></div> </div>
</div><!-- .comment-content -->
</article><!-- .comment-body -->
<ol class="children">
<li id="comment-86544" class="comment byuser comment-author-death-droid bypostauthor even depth-2">
<article id="div-comment-86544" class="comment-body">
<footer class="comment-meta row align-items-center">
<div class="comment-avatar col-3 col-md-2 text-center">
<img alt='Avatar for Emmet' src="https://cdn.pimylifeup.com/wp-content/uploads/2022/04/pimylifeup_editor_avatar.png" class='avatar avatar-80 photo' height='80' width='80' loading='lazy'/> </div>
<div class="col-9 col-md-10">
<div class="comment-author vcard row">
<div class="col-12">
<b class="fn">Emmet</b> <span class="says">on</span> <time datetime="2022-07-18T20:14:32+10:00">
July 18, 2022 at 8:14 pm </time>
</div>
</div><!-- .comment-author -->
<div class="comment-buttons row">
<div class="col-12">
<span class="btn-sm btn btn-danger fa-shield-alt">Editor</span>
</div>
</div>
</div>
</footer><!-- .comment-meta -->
<div class="comment-content row">
<div class="col-12">
<p>Hi Joe,</p>
<p>This is a strange issue, can you check the contents of the &#8220;/etc/apt/sources.list.d/jellyfin.list&#8221; file.</p>
<p>You can output the line using the &#8220;cat&#8221; command as shown below.</p>
<pre><code>/etc/apt/sources.list.d/jellyfin.list</code></pre>
<p>If you are using Raspberry Pi OS Bullseye it should look like what we have shown below.</p>
<pre><code>deb [signed-by=/usr/share/keyrings/jellyfin-archive-keyring.gpg arch=armhf] https://repo.jellyfin.org/debian bullseye main</code></pre>
<p>Cheers,<br />
Emmet</p>
</div>
</div><!-- .comment-content -->
</article><!-- .comment-body -->
</li><!-- #comment-## -->
</ol><!-- .children -->
</li><!-- #comment-## -->
<li id="comment-86314" class="comment odd alt thread-odd thread-alt depth-1 parent">
<article id="div-comment-86314" class="comment-body">
<footer class="comment-meta row align-items-center">
<div class="comment-avatar col-3 col-md-2 text-center">
<img alt='Avatar for Julian M' src="data:image/svg+xml,%3csvg viewBox='0 0 5 5' xmlns='http://www.w3.org/2000/svg' fill='hsl(245%2c 70%25%2c 50%25)'%3e%3crect width='100%25' height='100%25' fill='hsl(65%2c 50%25%2c 50%25)'/%3e%3crect x='2' y='3' width='1' height='1'/%3e%3crect x='1' width='1' height='1'/%3e%3crect x='3' width='1' height='1'/%3e%3crect x='1' y='2' width='1' height='1'/%3e%3crect x='3' y='2' width='1' height='1'/%3e%3crect width='1' height='1'/%3e%3crect x='4' width='1' height='1'/%3e%3crect y='2' width='1' height='1'/%3e%3crect x='4' y='2' width='1' height='1'/%3e%3crect y='4' width='1' height='1'/%3e%3crect x='4' y='4' width='1' height='1'/%3e%3c/svg%3e" class='avatar avatar-80 photo' height='80' width='80' loading='lazy'/> </div>
<div class="col-9 col-md-10">
<div class="comment-author vcard row">
<div class="col-12">
<b class="fn">Julian M</b> <span class="says">on</span> <time datetime="2022-06-22T07:04:14+10:00">
June 22, 2022 at 7:04 am </time>
</div>
</div><!-- .comment-author -->
</div>
</footer><!-- .comment-meta -->
<div class="comment-content row">
<div class="col-12">
<p>Awesome guide, just one thing that needs a little updating concerns the hardware acceleration portion as OpenMAX OMX was recently dropped from Jellyfin &#8211; their latest doc mentions that they have migrated to V4L2 with a fallback on software de/encoding whenever it wouldn&#8217;t work.</p>
<div class="reply"><a rel='nofollow' class='comment-reply-link btn btn-primary' href='#comment-86314' data-commentid="86314" data-postid="33463706" data-belowelement="div-comment-86314" data-respondelement="respond" data-replyto="Reply to Julian M" aria-label='Reply to Julian M'>Reply</a></div> </div>
</div><!-- .comment-content -->
</article><!-- .comment-body -->
<ol class="children">
<li id="comment-86545" class="comment byuser comment-author-death-droid bypostauthor even depth-2">
<article id="div-comment-86545" class="comment-body">
<footer class="comment-meta row align-items-center">
<div class="comment-avatar col-3 col-md-2 text-center">
<img alt='Avatar for Emmet' src="https://cdn.pimylifeup.com/wp-content/uploads/2022/04/pimylifeup_editor_avatar.png" class='avatar avatar-80 photo' height='80' width='80' loading='lazy'/> </div>
<div class="col-9 col-md-10">
<div class="comment-author vcard row">
<div class="col-12">
<b class="fn">Emmet</b> <span class="says">on</span> <time datetime="2022-07-18T20:15:06+10:00">
July 18, 2022 at 8:15 pm </time>
</div>
</div><!-- .comment-author -->
<div class="comment-buttons row">
<div class="col-12">
<span class="btn-sm btn btn-danger fa-shield-alt">Editor</span>
</div>
</div>
</div>
</footer><!-- .comment-meta -->
<div class="comment-content row">
<div class="col-12">
<p>Hi Julian,</p>
<p>Thank you for mentioning this issue. I haven updated that part of the guide so it now points to Video4Linux instead.</p>
<p>Cheers,<br />
Emmet</p>
</div>
</div><!-- .comment-content -->
</article><!-- .comment-body -->
</li><!-- #comment-## -->
</ol><!-- .children -->
</li><!-- #comment-## -->
<li id="comment-76266" class="comment odd alt thread-even depth-1">
<article id="div-comment-76266" class="comment-body">
<footer class="comment-meta row align-items-center">
<div class="comment-avatar col-3 col-md-2 text-center">
<img alt='Avatar for xak47d' src="data:image/svg+xml,%3csvg viewBox='0 0 5 5' xmlns='http://www.w3.org/2000/svg' fill='hsl(316%2c 70%25%2c 50%25)'%3e%3crect width='100%25' height='100%25' fill='hsl(136%2c 50%25%2c 50%25)'/%3e%3crect x='2' width='1' height='1'/%3e%3crect x='2' y='1' width='1' height='1'/%3e%3crect x='2' y='4' width='1' height='1'/%3e%3crect x='1' y='2' width='1' height='1'/%3e%3crect x='3' y='2' width='1' height='1'/%3e%3crect x='1' y='3' width='1' height='1'/%3e%3crect x='3' y='3' width='1' height='1'/%3e%3crect x='1' y='4' width='1' height='1'/%3e%3crect x='3' y='4' width='1' height='1'/%3e%3crect width='1' height='1'/%3e%3crect x='4' width='1' height='1'/%3e%3crect y='1' width='1' height='1'/%3e%3crect x='4' y='1' width='1' height='1'/%3e%3c/svg%3e" class='avatar avatar-80 photo' height='80' width='80' loading='lazy'/> </div>
<div class="col-9 col-md-10">
<div class="comment-author vcard row">
<div class="col-12">
<b class="fn">xak47d</b> <span class="says">on</span> <time datetime="2021-11-30T15:19:45+11:00">
November 30, 2021 at 3:19 pm </time>
</div>
</div><!-- .comment-author -->
</div>
</footer><!-- .comment-meta -->
<div class="comment-content row">
<div class="col-12">
<p>This is the best guide available. Thank you!!!</p>
<div class="reply"><a rel='nofollow' class='comment-reply-link btn btn-primary' href='#comment-76266' data-commentid="76266" data-postid="33463706" data-belowelement="div-comment-76266" data-respondelement="respond" data-replyto="Reply to xak47d" aria-label='Reply to xak47d'>Reply</a></div> </div>
</div><!-- .comment-content -->
</article><!-- .comment-body -->
</li><!-- #comment-## -->
<li id="comment-64759" class="comment even thread-odd thread-alt depth-1 parent">
<article id="div-comment-64759" class="comment-body">
<footer class="comment-meta row align-items-center">
<div class="comment-avatar col-3 col-md-2 text-center">
<img alt='Avatar for dobber' src="data:image/svg+xml,%3csvg viewBox='0 0 5 5' xmlns='http://www.w3.org/2000/svg' fill='hsl(96%2c 70%25%2c 50%25)'%3e%3crect width='100%25' height='100%25' fill='hsl(276%2c 50%25%2c 50%25)'/%3e%3crect x='2' y='1' width='1' height='1'/%3e%3crect x='2' y='2' width='1' height='1'/%3e%3crect x='2' y='4' width='1' height='1'/%3e%3crect x='1' y='1' width='1' height='1'/%3e%3crect x='3' y='1' width='1' height='1'/%3e%3crect x='1' y='3' width='1' height='1'/%3e%3crect x='3' y='3' width='1' height='1'/%3e%3crect y='1' width='1' height='1'/%3e%3crect x='4' y='1' width='1' height='1'/%3e%3crect y='2' width='1' height='1'/%3e%3crect x='4' y='2' width='1' height='1'/%3e%3crect y='3' width='1' height='1'/%3e%3crect x='4' y='3' width='1' height='1'/%3e%3crect y='4' width='1' height='1'/%3e%3crect x='4' y='4' width='1' height='1'/%3e%3c/svg%3e" class='avatar avatar-80 photo' height='80' width='80' loading='lazy'/> </div>
<div class="col-9 col-md-10">
<div class="comment-author vcard row">
<div class="col-12">
<b class="fn">dobber</b> <span class="says">on</span> <time datetime="2021-08-23T05:20:09+10:00">
August 23, 2021 at 5:20 am </time>
</div>
</div><!-- .comment-author -->
</div>
</footer><!-- .comment-meta -->
<div class="comment-content row">
<div class="col-12">
<p>Per <a href="https://github.com/jellyfin/jellyfin/issues/2832" rel="nofollow ugc">https://github.com/jellyfin/jellyfin/issues/2832</a>, since the pi may be running ubuntu rather than debian, a better command for step 3 of &#8220;Preparing your Raspberry Pi for Jellyfin&#8221; is:<br />
<code>echo "deb [arch=$( dpkg --print-architecture )] https://repo.jellyfin.org/$( awk -F'=' '/^ID=/{ print $NF }' /etc/os-release ) $( awk -F'=' '/^VERSION_CODENAME=/{ print $NF }' /etc/os-release ) main" | sudo tee /etc/apt/sources.list.d/jellyfin.list</code></p>
<div class="reply"><a rel='nofollow' class='comment-reply-link btn btn-primary' href='#comment-64759' data-commentid="64759" data-postid="33463706" data-belowelement="div-comment-64759" data-respondelement="respond" data-replyto="Reply to dobber" aria-label='Reply to dobber'>Reply</a></div> </div>
</div><!-- .comment-content -->
</article><!-- .comment-body -->
<ol class="children">
<li id="comment-64823" class="comment byuser comment-author-death-droid bypostauthor odd alt depth-2">
<article id="div-comment-64823" class="comment-body">
<footer class="comment-meta row align-items-center">
<div class="comment-avatar col-3 col-md-2 text-center">
<img alt='Avatar for Emmet' src="https://cdn.pimylifeup.com/wp-content/uploads/2022/04/pimylifeup_editor_avatar.png" class='avatar avatar-80 photo' height='80' width='80' loading='lazy'/> </div>
<div class="col-9 col-md-10">
<div class="comment-author vcard row">
<div class="col-12">
<b class="fn">Emmet</b> <span class="says">on</span> <time datetime="2021-08-24T21:53:19+10:00">
August 24, 2021 at 9:53 pm </time>
</div>
</div><!-- .comment-author -->
<div class="comment-buttons row">
<div class="col-12">
<span class="btn-sm btn btn-danger fa-shield-alt">Editor</span>
</div>
</div>
</div>
</footer><!-- .comment-meta -->
<div class="comment-content row">
<div class="col-12">
<p>Hi Dobber,</p>
<p>Thank you for the suggestion, however, in the case of this tutorial it won&#8217;t really work.</p>
<p>The reason for this is that for Raspberry Pi OS we need to be using &#8220;Debian&#8221; as the ID. However the &#8220;ID&#8221; from the &#8220;<code>/etc/os-release</code>&#8221; file reports this as being <strong>Raspbian</strong>, so in that case this tutorial would broke.</p>
<p>They have the alternative <code>ID_LIKE</code>, but that value for both Ubuntu and Raspbian references &#8220;Debian&#8221;.</p>
<p>Cheers,<br />
Emmet</p>
</div>
</div><!-- .comment-content -->
</article><!-- .comment-body -->
</li><!-- #comment-## -->
</ol><!-- .children -->
</li><!-- #comment-## -->
</ol><!-- .comment-list -->
<div class="row comment-form-outer"> <div id="respond" class="comment-respond col-12">
<h3 id="reply-title" class="comment-reply-title">Leave a Reply <small><a rel="nofollow" id="cancel-comment-reply-link" class="btn btn-danger" href="/raspberry-pi-jellyfin/#respond" style="display:none;">Cancel reply</a></small></h3><form action="https://pimylifeup.com/wp-comments-post.php" method="post" id="commentform" class="comment-form" novalidate><p class="comment-notes"><span id="email-notes">Your email address will not be published.</span> <span class="required-field-message">Required fields are marked <span class="required">*</span></span></p><p class="comment-form-comment form-group"><textarea id="comment" class="form-control" name="comment" placeholder="Comment" rows="8" maxlength="65525" required></textarea></p><div class="row mb-4"><div class="comment-form-author col-sm-6 col-12"><label for="author">Name <span class="required">*</span></label> <input id="author" class="form-control" name="author" type="text" value="" size="30" maxlength="245" required='required' /></div>
<div class="comment-form-email col-sm-6 col-12"><label for="email">Email <span class="required">*</span></label> <input id="email" class="form-control" name="email" type="email" value="" size="30" maxlength="100" aria-describedby="email-notes" required='required' /></div></div>
<p class="comment-subscription-form"><input type="checkbox" name="subscribe_comments" id="subscribe_comments" value="subscribe" style="width: auto; -moz-appearance: checkbox; -webkit-appearance: checkbox;" /> <label class="subscribe-label" id="subscribe-label" for="subscribe_comments">Notify me of follow-up comments by email.</label></p><p class="form-submit"><input name="submit" type="submit" id="submit" class="btn btn-primary" value="Post Comment" /> <input type='hidden' name='comment_post_ID' value='33463706' id='comment_post_ID' />
<input type='hidden' name='comment_parent' id='comment_parent' value='0' />
</p><p style="display: none;"><input type="hidden" id="akismet_comment_nonce" name="akismet_comment_nonce" value="42c00ac3ca" /></p><p style="display: none !important;"><label>&#916;<textarea name="ak_hp_textarea" cols="45" rows="8" maxlength="100"></textarea></label><input type="hidden" id="ak_js_1" name="ak_js" value="170"/><script>document.getElementById( "ak_js_1" ).setAttribute( "value", ( new Date() ).getTime() );</script></p></form> </div><!-- #respond -->
</div>
</div><!-- #comments -->
</main><!-- #main -->
</div><!-- #primary -->
<aside id="sidebar" class="widget-area col-lg-4">
</aside><!-- #secondary -->
</div>
</div><!-- #content -->
<footer id="colophon" class="site-footer">
<div class="site-info container">
<p><a href="#">&uarr; Back to Top</a></p>
<div class="social-nav mr-2">
<span>&copy; 2023 Pi My Life Up | </span>
<a href="https://www.facebook.com/pimylifeup" title="Follow us on Facebook" class="social-follow fa-facebook"></a><a href="https://twitter.com/pimylifeup" title="Follow us on Twitter" class="social-follow fa-twitter"></a><a href="https://www.pinterest.com/pimylifeup" title="Follow us on Pinterest" class="social-follow fa-pinterest"></a><a href="https://www.instagram.com/pimylifeup/" title="Follow us on Instagram" class="social-follow fa-instagram"></a><a href="https://www.youtube.com/channel/UC7NMrNa-RgcVeD__l_uPJTg" title="Subscribe to us on Youtube" class="social-follow fa-youtube-play"></a> </div>
<p><a href="https://pimylifeup.com/disclaimer-privacy-policy/">Disclaimer &amp; Privacy Policy</a> | <a href="https://pimylifeup.com/about-us/">About us</a> | <a href="https://pimylifeup.com/contact/">Contact</a></p>
</div><!-- .site-info -->
</footer><!-- #colophon -->
</div><!-- #page -->
<script data-no-optimize='1' data-cfasync='false' id='cls-insertion-df1206d'>'use strict';(function(){function w(c,b){function a(){this.constructor=c}if("function"!==typeof b&&null!==b)throw new TypeError("Class extends value "+String(b)+" is not a constructor or null");T(c,b);c.prototype=null===b?Object.create(b):(a.prototype=b.prototype,new a)}function F(c,b,a,d){var e=arguments.length,f=3>e?b:null===d?d=Object.getOwnPropertyDescriptor(b,a):d,g;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)f=Reflect.decorate(c,b,a,d);else for(var h=c.length-1;0<=h;h--)if(g=
c[h])f=(3>e?g(f):3<e?g(b,a,f):g(b,a))||f;return 3<e&&f&&Object.defineProperty(b,a,f),f}function C(c,b){if("object"===typeof Reflect&&"function"===typeof Reflect.metadata)return Reflect.metadata(c,b)}function M(c){var b="function"===typeof Symbol&&Symbol.iterator,a=b&&c[b],d=0;if(a)return a.call(c);if(c&&"number"===typeof c.length)return{next:function(){c&&d>=c.length&&(c=void 0);return{value:c&&c[d++],done:!c}}};throw new TypeError(b?"Object is not iterable.":"Symbol.iterator is not defined.");}function r(c,
b){var a="function"===typeof Symbol&&c[Symbol.iterator];if(!a)return c;c=a.call(c);var d,e=[];try{for(;(void 0===b||0<b--)&&!(d=c.next()).done;)e.push(d.value)}catch(g){var f={error:g}}finally{try{d&&!d.done&&(a=c["return"])&&a.call(c)}finally{if(f)throw f.error;}}return e}function x(c,b,a){if(a||2===arguments.length)for(var d=0,e=b.length,f;d<e;d++)!f&&d in b||(f||(f=Array.prototype.slice.call(b,0,d)),f[d]=b[d]);return c.concat(f||Array.prototype.slice.call(b))}function X(c,b){void 0===b&&(b={});
b=b.insertAt;if(c&&"undefined"!==typeof document){var a=document.head||document.getElementsByTagName("head")[0],d=document.createElement("style");d.type="text/css";"top"===b?a.firstChild?a.insertBefore(d,a.firstChild):a.appendChild(d):a.appendChild(d);d.styleSheet?d.styleSheet.cssText=c:d.appendChild(document.createTextNode(c))}}window.adthriveCLS.buildDate="2023-07-21";var T=function(c,b){T=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(a,d){a.__proto__=d}||function(a,d){for(var e in d)Object.prototype.hasOwnProperty.call(d,
e)&&(a[e]=d[e])};return T(c,b)},y=function(){y=Object.assign||function(c){for(var b,a=1,d=arguments.length;a<d;a++){b=arguments[a];for(var e in b)Object.prototype.hasOwnProperty.call(b,e)&&(c[e]=b[e])}return c};return y.apply(this,arguments)},p=new (function(){function c(){}c.prototype.info=function(b,a){for(var d=[],e=2;e<arguments.length;e++)d[e-2]=arguments[e];this.call.apply(this,x([console.info,b,a],r(d),!1))};c.prototype.warn=function(b,a){for(var d=[],e=2;e<arguments.length;e++)d[e-2]=arguments[e];
this.call.apply(this,x([console.warn,b,a],r(d),!1))};c.prototype.error=function(b,a){for(var d=[],e=2;e<arguments.length;e++)d[e-2]=arguments[e];this.call.apply(this,x([console.error,b,a],r(d),!1));this.sendErrorLogToCommandQueue.apply(this,x([b,a],r(d),!1))};c.prototype.event=function(b,a){for(var d,e=2;e<arguments.length;e++);"debug"===(null===(d=window.adthriveCLS)||void 0===d?void 0:d.bucket)&&this.info(b,a)};c.prototype.sendErrorLogToCommandQueue=function(b,a){for(var d=[],e=2;e<arguments.length;e++)d[e-
2]=arguments[e];window.adthrive=window.adthrive||{};window.adthrive.cmd=window.adthrive.cmd||[];window.adthrive.cmd.push(function(){void 0!==window.adthrive.logError&&"function"===typeof window.adthrive.logError&&window.adthrive.logError(b,a,d)}.bind(b,a,d))};c.prototype.call=function(b,a,d){for(var e=[],f=3;f<arguments.length;f++)e[f-3]=arguments[f];f=["%c".concat(a,"::").concat(d," ")];var g=["color: #999; font-weight: bold;"];0<e.length&&"string"===typeof e[0]&&f.push(e.shift());g.push.apply(g,
x([],r(e),!1));try{Function.prototype.apply.call(b,console,x([f.join("")],r(g),!1))}catch(h){console.error(h)}};return c}()),v=function(c,b){return null==c||c!==c?b:c},oa=function(c){var b=c.clientWidth;getComputedStyle&&(c=getComputedStyle(c,null),b-=parseFloat(c.paddingLeft||"0")+parseFloat(c.paddingRight||"0"));return b},pa=function(c){var b=c.offsetHeight,a=c.offsetWidth,d=c.getBoundingClientRect(),e=document.body,f=document.documentElement;c=Math.round(d.top+(window.pageYOffset||f.scrollTop||
e.scrollTop)-(f.clientTop||e.clientTop||0));d=Math.round(d.left+(window.pageXOffset||f.scrollLeft||e.scrollLeft)-(f.clientLeft||e.clientLeft||0));return{top:c,left:d,bottom:c+b,right:d+a,width:a,height:b}},J=function(){var c=navigator.userAgent,b=/Tablet|iPad|Playbook|Nook|webOS|Kindle|Android (?!.*Mobile).*Safari/i.test(c);return/Mobi|iP(hone|od)|Opera Mini/i.test(c)&&!b},qa=function(c){void 0===c&&(c=document);return(c===document?document.body:c).getBoundingClientRect().top},ra=function(c){return c.includes(",")?
c.split(","):[c]},sa=function(c){void 0===c&&(c=document);c=c.querySelectorAll("article");return 0===c.length?null:(c=Array.from(c).reduce(function(b,a){return a.offsetHeight>b.offsetHeight?a:b}))&&c.offsetHeight>1.5*window.innerHeight?c:null},ta=function(c,b,a){void 0===a&&(a=document);var d=sa(a),e=d?[d]:[],f=[];c.forEach(function(h){var m=Array.from(a.querySelectorAll(h.elementSelector)).slice(0,h.skip);ra(h.elementSelector).forEach(function(k){var l=a.querySelectorAll(k);k=function(n){var t=l[n];
if(b.map.some(function(B){return B.el.isEqualNode(t)}))return"continue";(n=t&&t.parentElement)&&n!==document.body?e.push(n):e.push(t);-1===m.indexOf(t)&&f.push({dynamicAd:h,element:t})};for(var q=0;q<l.length;q++)k(q)})});var g=qa(a);c=f.sort(function(h,m){return h.element.getBoundingClientRect().top-g-(m.element.getBoundingClientRect().top-g)});return[e,c]},ua=function(c,b,a){void 0===a&&(a=document);b=r(ta(c,b,a),2);c=b[0];b=b[1];if(0===c.length)throw Error("No Main Content Elements Found");return[Array.from(c).reduce(function(d,
e){return e.offsetHeight>d.offsetHeight?e:d})||document.body,b]},z;(function(c){c.amznbid="amznbid";c.amzniid="amzniid";c.amznp="amznp";c.amznsz="amznsz"})(z||(z={}));var D;(function(c){c.ThirtyThreeAcross="33across";c.AppNexus="appnexus";c.Amazon="amazon";c.Colossus="colossus";c.ColossusServer="col_ss";c.Conversant="conversant";c.Concert="concert";c.Criteo="criteo";c.GumGum="gumgum";c.IndexExchange="ix";c.Kargo="kargo";c.KargoServer="krgo_ss";c.MediaGrid="grid";c.MediaGridVideo="gridvid";c.Nativo=
"nativo";c.OpenX="openx";c.OpenXServer="opnx_ss";c.Pubmatic="pubmatic";c.PubmaticServer="pubm_ss";c.ResetDigital="resetdigital";c.Roundel="roundel";c.Rtbhouse="rtbhouse";c.Rubicon="rubicon";c.RubiconServer="rubi_ss";c.Sharethrough="sharethrough";c.Spotx="spotx";c.Teads="teads";c.Triplelift="triplelift";c.TripleliftServer="tripl_ss";c.TTD="ttd";c.Undertone="undertone";c.UndertoneServer="under_ss";c.Unruly="unruly";c.YahooSSP="yahoossp";c.Verizon="verizon";c.Yieldmo="yieldmo"})(D||(D={}));var Y;(function(c){c.Prebid=
"prebid";c.GAM="gam";c.Amazon="amazon";c.WebVitals="webvitals";c.Marmalade="marmalade";c.Floors="floors";c.CMP="cmp"})(Y||(Y={}));var Z;(function(c){c.bidCycleNonlazy="bidCycleNonlazy";c.instream="instream";c.lazy="lazy";c.refresh="refresh";c.session="session";c.crossDomain="crossdomain";c.highSequence="highsequence";c.lazyBidPool="lazyBidPool";c.rubicon="rubicon"})(Z||(Z={}));var aa;(function(c){c.bidCycleNonlazy="bc";c.instream="i";c.lazy="l";c.refresh="r";c.session="s";c.crossdomain="c";c.highsequence=
"hs";c.rubicon="rubi";c.lazyBidPool="lbp"})(aa||(aa={}));var K;(function(c){c.Desktop="desktop";c.Mobile="mobile"})(K||(K={}));var G;(function(c){c.Video_Collapse_Autoplay_SoundOff="Video_Collapse_Autoplay_SoundOff";c.Video_Individual_Autoplay_SOff="Video_Individual_Autoplay_SOff";c.Video_Coll_SOff_Smartphone="Video_Coll_SOff_Smartphone";c.Video_In_Post_ClicktoPlay_SoundOn="Video_In-Post_ClicktoPlay_SoundOn"})(G||(G={}));var ba;(ba||(ba={})).None="none";var E;(function(c){c.AdDensity="addensity";
c.AdLayout="adlayout";c.FooterCloseButton="footerclose";c.Interstitial="interstitial";c.RemoveVideoTitleWrapper="removevideotitlewrapper";c.StickyOutstream="stickyoutstream";c.StickyOutstreamOnStickyPlayer="sospp";c.VideoAdvancePlaylistRelatedPlayer="videoadvanceplaylistrp";c.MobileStickyPlayerPosition="mspp"})(E||(E={}));var va=function(c,b){var a=c.adDensityEnabled;c=c.adDensityLayout.pageOverrides.find(function(d){return!!document.querySelector(d.pageSelector)&&(d[b].onePerViewport||"number"===
typeof d[b].adDensity)});return a?!c:!0};z=function(){function c(){this._timeOrigin=0}c.prototype.resetTimeOrigin=function(){this._timeOrigin=window.performance.now()};c.prototype.now=function(){try{return Math.round(window.performance.now()-this._timeOrigin)}catch(b){return 0}};return c}();window.adthrive.windowPerformance=window.adthrive.windowPerformance||new z;z=window.adthrive.windowPerformance;var U=z.now.bind(z),ca=function(c){try{return{valid:!0,elements:document.querySelectorAll(c)}}catch(b){return y({valid:!1},
b)}},da=function(c){return""===c?{valid:!0}:ca(c)},wa=function(c){var b=c.reduce(function(a,d){return d.weight?d.weight+a:a},0);return 0<c.length&&c.every(function(a){var d=a.value;a=a.weight;return!(void 0===d||null===d||"number"===typeof d&&isNaN(d)||!a)})&&100===b},xa=["siteId","siteName","adOptions","breakpoints","adUnits"],ea=function(){function c(){this._clsGlobalData=window.adthriveCLS}Object.defineProperty(c.prototype,"enabled",{get:function(){var b;if(b=!!this._clsGlobalData&&!!this._clsGlobalData.siteAds)a:{b=
this._clsGlobalData.siteAds;var a=void 0;void 0===a&&(a=xa);if(b){for(var d=0;d<a.length;d++)if(!b[a[d]]){b=!1;break a}b=!0}else b=!1}return b},enumerable:!1,configurable:!0});Object.defineProperty(c.prototype,"error",{get:function(){return!(!this._clsGlobalData||!this._clsGlobalData.error)},enumerable:!1,configurable:!0});Object.defineProperty(c.prototype,"siteAds",{get:function(){return this._clsGlobalData.siteAds},set:function(b){this._clsGlobalData.siteAds=b},enumerable:!1,configurable:!0});Object.defineProperty(c.prototype,
"disableAds",{get:function(){return this._clsGlobalData.disableAds},set:function(b){this._clsGlobalData.disableAds=b},enumerable:!1,configurable:!0});Object.defineProperty(c.prototype,"enabledLocations",{get:function(){return this._clsGlobalData.enabledLocations},set:function(b){this._clsGlobalData.enabledLocations=b},enumerable:!1,configurable:!0});Object.defineProperty(c.prototype,"injectedFromPlugin",{get:function(){return this._clsGlobalData.injectedFromPlugin},set:function(b){this._clsGlobalData.injectedFromPlugin=
b},enumerable:!1,configurable:!0});Object.defineProperty(c.prototype,"injectedFromSiteAds",{get:function(){return this._clsGlobalData.injectedFromSiteAds},set:function(b){this._clsGlobalData.injectedFromSiteAds=b},enumerable:!1,configurable:!0});c.prototype.overwriteInjectedSlots=function(b){this._clsGlobalData.injectedSlots=b};c.prototype.setInjectedSlots=function(b){this._clsGlobalData.injectedSlots=this._clsGlobalData.injectedSlots||[];this._clsGlobalData.injectedSlots.push(b)};Object.defineProperty(c.prototype,
"injectedSlots",{get:function(){return this._clsGlobalData.injectedSlots},enumerable:!1,configurable:!0});c.prototype.setInjectedVideoSlots=function(b){this._clsGlobalData.injectedVideoSlots=this._clsGlobalData.injectedVideoSlots||[];this._clsGlobalData.injectedVideoSlots.push(b)};Object.defineProperty(c.prototype,"injectedVideoSlots",{get:function(){return this._clsGlobalData.injectedVideoSlots},enumerable:!1,configurable:!0});c.prototype.setInjectedScripts=function(b){this._clsGlobalData.injectedScripts=
this._clsGlobalData.injectedScripts||[];this._clsGlobalData.injectedScripts.push(b)};Object.defineProperty(c.prototype,"getInjectedScripts",{get:function(){return this._clsGlobalData.injectedScripts},enumerable:!1,configurable:!0});c.prototype.setExperiment=function(b,a,d){void 0===d&&(d=!1);this._clsGlobalData.experiments=this._clsGlobalData.experiments||{};this._clsGlobalData.siteExperiments=this._clsGlobalData.siteExperiments||{};(d?this._clsGlobalData.siteExperiments:this._clsGlobalData.experiments)[b]=
a};c.prototype.getExperiment=function(b,a){void 0===a&&(a=!1);return(a=a?this._clsGlobalData.siteExperiments:this._clsGlobalData.experiments)&&a[b]};c.prototype.setWeightedChoiceExperiment=function(b,a,d){void 0===d&&(d=!1);this._clsGlobalData.experimentsWeightedChoice=this._clsGlobalData.experimentsWeightedChoice||{};this._clsGlobalData.siteExperimentsWeightedChoice=this._clsGlobalData.siteExperimentsWeightedChoice||{};(d?this._clsGlobalData.siteExperimentsWeightedChoice:this._clsGlobalData.experimentsWeightedChoice)[b]=
a};c.prototype.getWeightedChoiceExperiment=function(b,a){var d,e;void 0===a&&(a=!1);return(a=a?null===(d=this._clsGlobalData)||void 0===d?void 0:d.siteExperimentsWeightedChoice:null===(e=this._clsGlobalData)||void 0===e?void 0:e.experimentsWeightedChoice)&&a[b]};Object.defineProperty(c.prototype,"branch",{get:function(){return this._clsGlobalData.branch},enumerable:!1,configurable:!0});Object.defineProperty(c.prototype,"bucket",{get:function(){return this._clsGlobalData.bucket},enumerable:!1,configurable:!0});
Object.defineProperty(c.prototype,"videoDisabledFromPlugin",{get:function(){return this._clsGlobalData.videoDisabledFromPlugin},set:function(b){this._clsGlobalData.videoDisabledFromPlugin=b},enumerable:!1,configurable:!0});Object.defineProperty(c.prototype,"targetDensityLog",{get:function(){return this._clsGlobalData.targetDensityLog},set:function(b){this._clsGlobalData.targetDensityLog=b},enumerable:!1,configurable:!0});Object.defineProperty(c.prototype,"removeVideoTitleWrapper",{get:function(){return this._clsGlobalData.siteAds.adOptions.removeVideoTitleWrapper},
enumerable:!1,configurable:!0});return c}(),ya=function(){function c(){}c.getScrollTop=function(){return(window.pageYOffset||document.documentElement.scrollTop)-(document.documentElement.clientTop||0)};c.getScrollBottom=function(){return this.getScrollTop()+(document.documentElement.clientHeight||0)};c.shufflePlaylist=function(b){for(var a=b.length,d,e;0!==a;)e=Math.floor(Math.random()*b.length),--a,d=b[a],b[a]=b[e],b[e]=d;return b};c.isMobileLandscape=function(){return window.matchMedia("(orientation: landscape) and (max-height: 480px)").matches};
c.playerViewable=function(b){b=b.getBoundingClientRect();return this.isMobileLandscape()?window.innerHeight>b.top+b.height/2&&0<b.top+b.height/2:window.innerHeight>b.top+b.height/2};c.playerVisible=function(b){b=b.getBoundingClientRect();return window.innerHeight>b.top};c.createQueryString=function(b){return Object.keys(b).map(function(a){return"".concat(a,"=").concat(b[a])}).join("&")};c.createEncodedQueryString=function(b){return Object.keys(b).map(function(a){return"".concat(a,"=").concat(encodeURIComponent(b[a]))}).join("&")};
c.setMobileLocation=function(b){b=b||"bottom-right";"top-left"===b?b="adthrive-collapse-top-left":"top-right"===b?b="adthrive-collapse-top-right":"bottom-left"===b?b="adthrive-collapse-bottom-left":"bottom-right"===b?b="adthrive-collapse-bottom-right":"top-center"===b&&(b=J()?"adthrive-collapse-top-center":"adthrive-collapse-bottom-right");return b};c.addMaxResolutionQueryParam=function(b){var a=J()?"320":"1280";a="max_resolution=".concat(a);var d=r(String(b).split("?"),2);b=d[0];a=(d=d[1])?d+"&".concat(a):
a;return"".concat(b,"?").concat(a)};return c}(),za=function(){return function(c){this._clsOptions=c;this.removeVideoTitleWrapper=v(this._clsOptions.siteAds.adOptions.removeVideoTitleWrapper,!1);c=this._clsOptions.siteAds.videoPlayers;this.footerSelector=v(c&&c.footerSelector,"");this.players=v(c&&c.players.map(function(b){b.mobileLocation=ya.setMobileLocation(b.mobileLocation);return b}),[]);this.contextualSettings=c&&c.contextual}}(),Aa=function(){return function(c){this.contextualPlayerAdded=this.playlistPlayerAdded=
this.mobileStickyPlayerOnPage=!1;this.footerSelector="";this.removeVideoTitleWrapper=!1;this.videoAdOptions=new za(c);this.players=this.videoAdOptions.players;this.contextualSettings=this.videoAdOptions.contextualSettings;this.removeVideoTitleWrapper=this.videoAdOptions.removeVideoTitleWrapper;this.footerSelector=this.videoAdOptions.footerSelector}}();D=function(){return function(){}}();var H=function(c){function b(a){var d=c.call(this)||this;d._probability=a;return d}w(b,c);b.prototype.get=function(){if(0>
this._probability||1<this._probability)throw Error("Invalid probability: ".concat(this._probability));return Math.random()<this._probability};return b}(D);z=function(){function c(){this._clsOptions=new ea;this.shouldUseCoreExperimentsConfig=!1}c.prototype.setExperimentKey=function(b){void 0===b&&(b=!1);this._clsOptions.setExperiment(this.key,this.result,b)};return c}();var Ba=function(c){function b(){var a=c.call(this)||this;a._result=!1;a._choices=[{choice:!0},{choice:!1}];a.key="smhd100";a._result=
a.run();a.setExperimentKey();return a}w(b,c);Object.defineProperty(b.prototype,"result",{get:function(){return this._result},enumerable:!1,configurable:!0});b.prototype.run=function(){return(new H(.1)).get()};return b}(z),fa=function(c,b,a,d,e,f){c=Math.round(f-e);b=[];e=[];b.push("(",a.map(function(){return"%o"}).join(", "),")");e.push.apply(e,x([],r(a),!1));void 0!==d&&(b.push(" => %o"),e.push(d));b.push(" %c(".concat(c,"ms)"));e.push("color: #999;")},ha=function(c,b,a){var d=void 0!==a.get?a.get:
a.value;return function(){for(var e=[],f=0;f<arguments.length;f++)e[f]=arguments[f];try{var g=U(),h=d.apply(this,e);if(h instanceof Promise)return h.then(function(k){var l=U();fa(c,b,e,k,g,l);return Promise.resolve(k)}).catch(function(k){k.logged||(p.error(c,b,k),k.logged=!0);throw k;});var m=U();fa(c,b,e,h,g,m);return h}catch(k){throw k.logged||(p.error(c,b,k),k.logged=!0),k;}}},N=function(c,b){void 0===b&&(b=!1);return function(a){var d,e=Object.getOwnPropertyNames(a.prototype).filter(function(q){return b||
0!==q.indexOf("_")}).map(function(q){return[q,Object.getOwnPropertyDescriptor(a.prototype,q)]});try{for(var f=M(e),g=f.next();!g.done;g=f.next()){var h=r(g.value,2),m=h[0],k=h[1];void 0!==k&&"function"===typeof k.value?a.prototype[m]=ha(c,m,k):void 0!==k&&void 0!==k.get&&"function"===typeof k.get&&Object.defineProperty(a.prototype,m,y(y({},k),{get:ha(c,m,k)}))}}catch(q){var l={error:q}}finally{try{g&&!g.done&&(d=f.return)&&d.call(f)}finally{if(l)throw l.error;}}}},Ca=function(c){function b(){var a=
c.call(this)||this;a._result=!1;a.key="conmax99";a._choices=[{choice:!0},{choice:!1}];a.weight=.02;a._result=a.run();a.setExperimentKey();return a}w(b,c);Object.defineProperty(b.prototype,"result",{get:function(){return this._result},enumerable:!1,configurable:!0});b.prototype.run=function(){return(new H(this.weight)).get()};return b=F([N("MaxContentExperiment"),C("design:paramtypes",[])],b)}(z),Da=function(c){function b(a){var d=c.call(this)||this;d._result=!1;d.key="parallax";d._choices=[{choice:!0},
{choice:!1}];d.weight=.5;J()&&a.largeFormatsMobile&&(d._result=d.run(),d.setExperimentKey());return d}w(b,c);Object.defineProperty(b.prototype,"result",{get:function(){return this._result},enumerable:!1,configurable:!0});b.prototype.run=function(){return(new H(this.weight)).get()};return b=F([N("ParallaxAdsExperiment"),C("design:paramtypes",[Object])],b)}(z),Ea=function(c){function b(){var a=c.call(this)||this;a._result=!1;a._choices=[{choice:!0},{choice:!1}];a.key="mrsf";J()&&(a._result=a.run(),
a.setExperimentKey());return a}w(b,c);Object.defineProperty(b.prototype,"result",{get:function(){return this._result},enumerable:!1,configurable:!0});b.prototype.run=function(){return(new H(.2)).get()};return b}(z),Fa=[[728,90],[300,250],[300,600],[320,50],[970,250],[160,600],[300,1050],[336,280],[970,90],[300,50],[320,100],[468,60],[250,250],[120,240],[1,1],[300,300],[552,334],[300,420],[728,250],[320,300],[300,390]],Ga=[[300,600],[160,600]],Ha=new Map([["Footer",1],["Header",2],["Sidebar",3],["Content",
4],["Recipe",5],["Sidebar_sticky",6],["Below Post",7]]),Ia=function(c){return Fa.filter(function(b){b=r(b,2);var a=b[0],d=b[1];return c.some(function(e){e=r(e,2);var f=e[1];return a===e[0]&&d===f})})},Ja=function(c,b,a,d,e){b=r(b,2);var f=b[0],g=b[1],h=c.location;b=c.sequence;return"Footer"===h?!("phone"===a&&320===f&&100===g):"Header"===h?!(100<g&&d.result):"Recipe"===h?!(e.result&&"phone"===a&&(300===f&&390===g||320===f&&300===g)):"Sidebar"===h?(a=c.adSizes.some(function(m){return 300>=r(m,2)[1]}),
(d=300<g)&&!a?!0:9===b?!0:b&&5>=b?d?c.sticky:!0:!d):!0},Ka=function(c,b){var a=b.adUnits,d=b.adTypes?(new Da(b.adTypes)).result:!1,e=new Ba,f=new Ca,g=new Ea;return a.filter(function(h){return void 0!==h.dynamic&&h.dynamic.enabled}).map(function(h){var m=h.location.replace(/\s+/g,"_"),k="Sidebar"===m?0:2;return{auctionPriority:Ha.get(m)||8,location:m,sequence:v(h.sequence,1),sizes:Ia(h.adSizes).filter(function(l){return Ja(h,l,c,e,g)}).concat(d&&"Content"===h.location?Ga:[]),devices:h.devices,pageSelector:v(h.dynamic.pageSelector,
"").trim(),elementSelector:v(h.dynamic.elementSelector,"").trim(),position:v(h.dynamic.position,"beforebegin"),max:f.result&&"Content"===h.location?99:Math.floor(v(h.dynamic.max,0)),spacing:v(h.dynamic.spacing,0),skip:Math.floor(v(h.dynamic.skip,0)),every:Math.max(Math.floor(v(h.dynamic.every,1)),1),classNames:h.dynamic.classNames||[],sticky:"Footer"===h.location?!0:h.sticky,stickyOverlapSelector:v(h.stickyOverlapSelector,"").trim(),autosize:h.autosize,special:v(h.targeting,[]).filter(function(l){return"special"===
l.key}).reduce(function(l,q){return l.concat.apply(l,x([],r(q.value),!1))},[]),lazy:v(h.dynamic.lazy,!1),lazyMax:v(h.dynamic.lazyMax,k),lazyMaxDefaulted:0===h.dynamic.lazyMax?!1:!h.dynamic.lazyMax}})},ia=function(c,b){var a=oa(b),d=c.sticky&&"Sidebar"===c.location;return c.sizes.filter(function(e){var f=d?e[1]<=window.innerHeight-100:!0;return(c.autosize?e[0]<=a||320>=e[0]:!0)&&f})},La=function(){return function(c){this.clsOptions=c;this.enabledLocations=["Below_Post","Content","Recipe","Sidebar"]}}(),
Ma=function(c){var b=document.body;c="adthrive-device-".concat(c);if(!b.classList.contains(c))try{b.classList.add(c)}catch(a){p.error("BodyDeviceClassComponent","init",{message:a.message}),b="classList"in document.createElement("_"),p.error("BodyDeviceClassComponent","init.support",{support:b})}},Na=function(c){return X('\n .adthrive-device-phone .adthrive-sticky-content {\n height: 450px !important;\n margin-bottom: 100px !important;\n }\n .adthrive-content.adthrive-sticky {\n position: -webkit-sticky;\n position: sticky !important;\n top: 42px !important;\n margin-top: 42px !important;\n }\n .adthrive-content.adthrive-sticky:after {\n content: "\u2014 Advertisement. Scroll down to continue. \u2014";\n font-size: 10pt;\n margin-top: 5px;\n margin-bottom: 5px;\n display:block;\n color: #888;\n }\n .adthrive-sticky-container {\n position: relative;\n display: flex;\n flex-direction: column;\n justify-content: flex-start;\n align-items: center;\n min-height:'.concat(c?
c:400,"px !important;\n margin: 10px 0 10px 0;\n background-color: #FAFAFA;\n padding-bottom:0px;\n }\n "))},Oa=function(c){X("\n .adthrive-recipe.adthrive-sticky {\n position: -webkit-sticky;\n position: sticky !important;\n top: 42px !important;\n margin-top: 42px !important;\n }\n .adthrive-recipe-sticky-container {\n position: relative;\n display: flex;\n flex-direction: column;\n justify-content: flex-start;\n align-items: center;\n min-height:".concat(c?
c:400,"px !important;\n margin: 10px 0 10px 0;\n background-color: #FAFAFA;\n padding-bottom:0px;\n }\n "))},ja=function(c){return c.some(function(b){return null!==document.querySelector(b)})},V=function(c){function b(a,d){void 0===a&&(a=[]);var e=c.call(this)||this;e._choices=a;e._default=d;return e}w(b,c);b.fromArray=function(a,d){return new b(a.map(function(e){e=r(e,2);return{choice:e[0],weight:e[1]}}),d)};b.prototype.addChoice=function(a,d){this._choices.push({choice:a,weight:d})};
b.prototype.get=function(){var a,d=100*Math.random(),e=0;try{for(var f=M(this._choices),g=f.next();!g.done;g=f.next()){var h=g.value,m=h.choice;e+=h.weight;if(e>=d)return m}}catch(l){var k={error:l}}finally{try{g&&!g.done&&(a=f.return)&&a.call(f)}finally{if(k)throw k.error;}}return this._default};Object.defineProperty(b.prototype,"totalWeight",{get:function(){return this._choices.reduce(function(a,d){return a+d.weight},0)},enumerable:!1,configurable:!0});return b}(D),Pa=function(c){for(var b=5381,
a=c.length;a;)b=33*b^c.charCodeAt(--a);return b>>>0},O=new (function(){function c(){var b=this;this.name="StorageHandler";this.disable=!1;this.removeLocalStorageValue=function(a){window.localStorage.removeItem("adthrive_".concat(a.toLowerCase()))};this.getLocalStorageValue=function(a,d,e,f){void 0===d&&(d=!0);if(b.disable)return null;try{var g=window.localStorage.getItem("".concat(d?"adthrive_":"").concat(a.toLowerCase()));if(g){var h=JSON.parse(g),m=void 0!==e&&Date.now()-h.created>=e;if(h&&!m)return f&&
b.setLocalStorageValue(a,h.value,d),h.value}}catch(k){}return null};this.setLocalStorageValue=function(a,d,e){void 0===e&&(e=!0);try{e=e?"adthrive_":"";var f={value:d,created:Date.now()};window.localStorage.setItem("".concat(e).concat(a.toLowerCase()),JSON.stringify(f))}catch(g){}};this.isValidABGroupLocalStorageValue=function(a){return void 0!==a&&null!==a&&!("number"===typeof a&&isNaN(a))};this.getOrSetLocalStorageValue=function(a,d,e,f,g,h){void 0===f&&(f=!0);void 0===h&&(h=!0);e=b.getLocalStorageValue(a,
h,e,f);if(null!==e)return e;d=d();b.setLocalStorageValue(a,d,h);g&&g(d);return d};this.getOrSetABGroupLocalStorageValue=function(a,d,e,f,g){var h;void 0===f&&(f=!0);e=b.getLocalStorageValue("abgroup",!0,e,f);if(null!==e&&(f=e[a],b.isValidABGroupLocalStorageValue(f)))return f;d=d();a=y(y({},e),(h={},h[a]=d,h));b.setLocalStorageValue("abgroup",a);g&&g();return d}}c.prototype.init=function(){};return c}()),ka=function(){return function(c,b,a){var d=a.value;d&&(a.value=function(){for(var e=this,f=[],
g=0;g<arguments.length;g++)f[g]=arguments[g];g=Array.isArray(this._choices)?Pa(JSON.stringify(this._choices)).toString(16):null;var h=this.key?this.key.toLowerCase():"";g=g?"".concat(h,"_").concat(g):h;g=this.localStoragePrefix?"".concat(this.localStoragePrefix,"-").concat(g):g;h=O.getLocalStorageValue("branch");!1===(h&&h.enabled)&&O.removeLocalStorageValue(g);return O.getOrSetABGroupLocalStorageValue(g,function(){return d.apply(e,f)},864E5)})}};D=function(c){function b(){var a=null!==c&&c.apply(this,
arguments)||this;a._resultValidator=function(){return!0};return a}w(b,c);b.prototype._isValidResult=function(a){var d=this;return c.prototype._isValidResult.call(this,a,function(){return d._resultValidator(a)||"control"===a})};b.prototype.run=function(){if(!this.enabled)return p.error("CLSWeightedChoiceSiteExperiment","run","() => %o","No experiment config found. Defaulting to control."),"control";if(!this._mappedChoices||0===this._mappedChoices.length)return p.error("CLSWeightedChoiceSiteExperiment",
"run","() => %o","No experiment variants found. Defaulting to control."),"control";var a=(new V(this._mappedChoices)).get();if(this._isValidResult(a))return a;p.error("CLSWeightedChoiceSiteExperiment","run","() => %o","Invalid result from experiment choices. Defaulting to control.");return"control"};return b}(function(){function c(){}Object.defineProperty(c.prototype,"enabled",{get:function(){return void 0!==this.experimentConfig},enumerable:!1,configurable:!0});c.prototype._isValidResult=function(b,
a){void 0===a&&(a=function(){return!0});return a()&&O.isValidABGroupLocalStorageValue(b)};return c}());var la=function(){function c(b){var a=this,d,e;this.siteExperiments=[];this._clsOptions=b;this._device=J()?"mobile":"desktop";this.siteExperiments=null!==(e=null===(d=this._clsOptions.siteAds.siteExperiments)||void 0===d?void 0:d.filter(function(f){var g=f.key;var h=a._device;if(f){var m=!!f.enabled,k=null==f.dateStart||Date.now()>=f.dateStart,l=null==f.dateEnd||Date.now()<=f.dateEnd,q=null===f.selector||
""!==f.selector&&!!document.querySelector(f.selector),n="mobile"===f.platform&&"mobile"===h;h="desktop"===f.platform&&"desktop"===h;n=null===f.platform||"all"===f.platform||n||h;(h="bernoulliTrial"===f.experimentType?1===f.variants.length:wa(f.variants))||p.error("ValidateSiteExperiment","util","experiment presented invalid choices for key:",f.key,f.variants);f=m&&k&&l&&q&&n&&h}else f=!1;a:switch(m=a._clsOptions.siteAds,g){case E.AdDensity:var t=va(m,a._device);break a;case E.StickyOutstream:var B,
A;t=(g=null===(A=null===(B=null===(t=m.videoPlayers)||void 0===t?void 0:t.partners)||void 0===B?void 0:B.stickyOutstream)||void 0===A?void 0:A.blockedPageSelectors)?!document.querySelector(g):!0;break a;case E.Interstitial:t=(t=m.adOptions.interstitialBlockedPageSelectors)?!document.querySelector(t):!0;break a;default:t=!0}return f&&t}))&&void 0!==e?e:[]}c.prototype.getSiteExperimentByKey=function(b){return this.siteExperiments.filter(function(a){return a.key.toLowerCase()===b.toLowerCase()})[0]};
return c}(),Qa=function(c){function b(a){var d=c.call(this)||this;d._choices=[];d._mappedChoices=[];d._result="";d._resultValidator=function(e){return"string"===typeof e};d.key=E.AdLayout;d._clsSiteExperiments=new la(a);d.experimentConfig=d._clsSiteExperiments.getSiteExperimentByKey(d.key);d.enabled&&d.experimentConfig&&(d._choices=d.experimentConfig.variants,d._mappedChoices=d._mapChoices(),d._result=d.run(),a.setWeightedChoiceExperiment(d.key,d._result,!0));return d}w(b,c);Object.defineProperty(b.prototype,
"result",{get:function(){return this._result},enumerable:!1,configurable:!0});b.prototype.run=function(){if(!this.enabled)return p.error("CLSAdLayoutSiteExperiment","run","() => %o","No experiment config found. Defaulting to empty class name."),"";var a=(new V(this._mappedChoices)).get();if(this._isValidResult(a))return a;p.error("CLSAdLayoutSiteExperiment","run","() => %o","Invalid result from experiment choices. Defaulting to empty class name.");return""};b.prototype._mapChoices=function(){return this._choices.map(function(a){return{weight:a.weight,
choice:a.value}})};F([ka(),C("design:type",Function),C("design:paramtypes",[]),C("design:returntype",void 0)],b.prototype,"run",null);return b}(D),Ra=function(c){function b(a){var d=c.call(this)||this;d._choices=[];d._mappedChoices=[];d._result="control";d._resultValidator=function(e){return"number"===typeof e};d.key=E.AdDensity;d._clsSiteExperiments=new la(a);d.experimentConfig=d._clsSiteExperiments.getSiteExperimentByKey(d.key);d.enabled&&d.experimentConfig&&(d._choices=d.experimentConfig.variants,
d._mappedChoices=d._mapChoices(),d._result=d.run(),a.setWeightedChoiceExperiment(d.key,d._result,!0));return d}w(b,c);Object.defineProperty(b.prototype,"result",{get:function(){return this._result},enumerable:!1,configurable:!0});b.prototype.run=function(){if(!this.enabled)return p.error("CLSTargetAdDensitySiteExperiment","run","() => %o","No experiment config found. Defaulting to control."),"control";var a=(new V(this._mappedChoices)).get();if(this._isValidResult(a))return a;p.error("CLSTargetAdDensitySiteExperiment",
"run","() => %o","Invalid result from experiment choices. Defaulting to control.");return"control"};b.prototype._mapChoices=function(){return this._choices.map(function(a){var d=a.value;return{weight:a.weight,choice:"number"===typeof d?(d||0)/100:"control"}})};F([ka(),C("design:type",Function),C("design:paramtypes",[]),C("design:returntype",void 0)],b.prototype,"run",null);return b}(D),Sa=function(c){function b(){var a=c.call(this)||this;a._result=!1;a.key="scae";a._choices=[{choice:!0},{choice:!1}];
a.weight=.99;a._result=a.run();a.setExperimentKey();return a}w(b,c);Object.defineProperty(b.prototype,"result",{get:function(){return this._result},enumerable:!1,configurable:!0});b.prototype.run=function(){return(new H(this.weight)).get()};return b=F([N("StickyContainerAdsExperiment"),C("design:paramtypes",[])],b)}(z),Ta=function(c){function b(){var a=c.call(this)||this;a._result=!1;a.key="scre";a._choices=[{choice:!0},{choice:!1}];a.weight=.99;a._result=a.run();a.setExperimentKey();return a}w(b,
c);Object.defineProperty(b.prototype,"result",{get:function(){return this._result},enumerable:!1,configurable:!0});b.prototype.run=function(){return(new H(this.weight)).get()};return b=F([N("StickyContainerRecipeExperiment"),C("design:paramtypes",[])],b)}(z),Wa=function(){function c(b,a){this._clsOptions=b;this._adInjectionMap=a;this._mainContentHeight=this._recipeCount=0;this._mainContentDiv=null;this._totalAvailableElements=[];this._minDivHeight=250;this._densityDevice=K.Desktop;this._pubLog={onePerViewport:!1,
targetDensity:0,targetDensityUnits:0,combinedMax:0};this._densityMax=.99;this._smallerIncrementAttempts=0;this._absoluteMinimumSpacingByDevice=250;this._usedAbsoluteMinimum=!1;this._infPageEndOffset=0;this.locationMaxLazySequence=new Map([["Recipe",5]]);this.locationToMinHeight={Below_Post:"250px",Content:"250px",Recipe:"250px",Sidebar:"250px"};a=this._clsOptions.siteAds.breakpoints;var d=a.tablet;var e=window.innerWidth;a=e>=a.desktop?"desktop":e>=d?"tablet":"phone";this._device=a;this._config=new La(b);
this._clsOptions.enabledLocations=this._config.enabledLocations;this._clsTargetAdDensitySiteExperiment=this._clsOptions.siteAds.siteExperiments?new Ra(this._clsOptions):null;this._stickyContainerAdsExperiment=new Sa;this._stickyContainerRecipeExperiment=new Ta}c.prototype.start=function(){var b=this,a,d,e,f;try{Ma(this._device);var g=new Qa(this._clsOptions);if(g.enabled){var h=g.result.substring(1);if(/^[-_a-zA-Z]+[-_a-zA-Z0-9]*$/.test(h))try{document.body.classList.add(h)}catch(l){p.error("ClsDynamicAdsInjector",
"start","Uncaught CSS Class error: ".concat(l))}else p.error("ClsDynamicAdsInjector","start","Invalid class name: ".concat(h))}var m=Ka(this._device,this._clsOptions.siteAds).filter(function(l){return b._locationEnabled(l)}).filter(function(l){return l.devices.includes(b._device)}).filter(function(l){return 0===l.pageSelector.length||null!==document.querySelector(l.pageSelector)}),k=this.inject(m);(null===(d=null===(a=this._clsOptions.siteAds.adOptions.stickyContainerConfig)||void 0===a?void 0:a.content)||
void 0===d?0:d.enabled)&&this._stickyContainerAdsExperiment.result&&!ja(this._clsOptions.siteAds.adOptions.stickyContainerConfig.blockedSelectors||[])&&Na(null===(f=null===(e=this._clsOptions.siteAds.adOptions.stickyContainerConfig)||void 0===e?void 0:e.content)||void 0===f?void 0:f.minHeight);k.forEach(function(l){return b._clsOptions.setInjectedSlots(l)})}catch(l){p.error("ClsDynamicAdsInjector","start",l)}};c.prototype.inject=function(b,a){void 0===a&&(a=document);this._densityDevice="desktop"===
this._device?K.Desktop:K.Mobile;this._overrideDefaultAdDensitySettingsWithSiteExperiment();var d=this._clsOptions.siteAds,e=v(d.adDensityEnabled,!0),f=d.adDensityLayout&&e;d=b.filter(function(g){return f?"Content"!==g.location:g});b=b.filter(function(g){return f?"Content"===g.location:null});return x(x([],r(d.length?this._injectNonDensitySlots(d,a):[]),!1),r(b.length?this._injectDensitySlots(b,a):[]),!1)};c.prototype._injectNonDensitySlots=function(b,a){var d,e=this,f,g,h;void 0===a&&(a=document);
var m=[],k=[];this._stickyContainerRecipeExperiment.result&&b.some(function(u){return"Recipe"===u.location&&u.sticky})&&!ja((null===(f=this._clsOptions.siteAds.adOptions.stickyContainerConfig)||void 0===f?void 0:f.blockedSelectors)||[])&&Oa(null===(h=null===(g=this._clsOptions.siteAds.adOptions.stickyContainerConfig)||void 0===g?void 0:g.recipe)||void 0===h?void 0:h.minHeight);try{for(var l=M(b),q=l.next();!q.done;q=l.next()){var n=q.value,t=0,B=0,A=0;0<n.spacing&&(B=t=window.innerHeight*n.spacing);
var L=this._repeatDynamicAds(n),P=this.getElements(n.elementSelector,a);b=function(u){if(A+1>L.length)return"break";var I=P[u];if(0<t){u=pa(I).bottom;if(u<=B)return"continue";B=u+t}u=L[A];var ma="".concat(u.location,"_").concat(u.sequence);m.some(function(Ua){return Ua.name===ma})&&(A+=1);var R=Q.getDynamicElementId(u),S="adthrive-".concat(n.location.replace("_","-").toLowerCase()),Va="".concat(S,"-").concat(n.sequence);S=x([Q._stickyContainerRecipeExperiment.result&&"Recipe"===n.location&&n.sticky?
"adthrive-recipe-sticky-container":"",S,Va],r(n.classNames),!1);if(I=Q.addAd(I,R,n.position,S))R=ia(u,I),R.length&&(m.push({clsDynamicAd:n,dynamicAd:u,element:I,sizes:R,name:ma,infinite:a!==document}),k.push({location:u.location,element:I}),"Recipe"===n.location&&++Q._recipeCount,A+=1)};for(var Q=this,W=n.skip;W<P.length&&"break"!==b(W);W+=n.every);}}catch(u){var na={error:u}}finally{try{q&&!q.done&&(d=l.return)&&d.call(l)}finally{if(na)throw na.error;}}k.forEach(function(u){u.element.style.minHeight=
e.locationToMinHeight[u.location]});return m};c.prototype._injectDensitySlots=function(b,a){void 0===a&&(a=document);try{this._calculateMainContentHeightAndAllElements(b,a)}catch(h){return[]}var d=this._getDensitySettings(b,a);b=d.onePerViewport;var e=d.targetAll,f=d.targetDensityUnits,g=d.combinedMax;d=d.numberOfUnits;this._absoluteMinimumSpacingByDevice=b?window.innerHeight:this._absoluteMinimumSpacingByDevice;if(!d)return[];this._adInjectionMap.filterUsed();this._findElementsForAds(d,b,e,g,f,a);
return this._insertAds()};c.prototype._overrideDefaultAdDensitySettingsWithSiteExperiment=function(){var b;if(null===(b=this._clsTargetAdDensitySiteExperiment)||void 0===b?0:b.enabled)b=this._clsTargetAdDensitySiteExperiment.result,"number"===typeof b&&(this._clsOptions.siteAds.adDensityEnabled=!0,this._clsOptions.siteAds.adDensityLayout[this._densityDevice].adDensity=b)};c.prototype._getDensitySettings=function(b,a){void 0===a&&(a=document);var d=this._clsOptions.siteAds.adDensityLayout,e=this._determineOverrides(d.pageOverrides);
e=e.length?e[0]:d[this._densityDevice];d=e.adDensity;e=e.onePerViewport;var f=this._shouldTargetAllEligible(d),g=this._getTargetDensityUnits(d,f);b=this._getCombinedMax(b,a);a=Math.min.apply(Math,x([],r(x([this._totalAvailableElements.length,g],r(0<b?[b]:[]),!1)),!1));this._pubLog={onePerViewport:e,targetDensity:d,targetDensityUnits:g,combinedMax:b};return{onePerViewport:e,targetAll:f,targetDensityUnits:g,combinedMax:b,numberOfUnits:a}};c.prototype._determineOverrides=function(b){var a=this;return b.filter(function(d){var e=
da(d.pageSelector);return""===d.pageSelector||e.elements&&e.elements.length}).map(function(d){return d[a._densityDevice]})};c.prototype._shouldTargetAllEligible=function(b){return b===this._densityMax};c.prototype._getTargetDensityUnits=function(b,a){return a?this._totalAvailableElements.length:Math.floor(b*this._mainContentHeight/(1-b)/this._minDivHeight)-this._recipeCount};c.prototype._getCombinedMax=function(b,a){void 0===a&&(a=document);return v(b.filter(function(d){try{var e=a.querySelector(d.elementSelector)}catch(f){}return e}).map(function(d){return Number(d.max)+
Number(d.lazyMaxDefaulted?0:d.lazyMax)}).sort(function(d,e){return e-d})[0],0)};c.prototype._elementLargerThanMainContent=function(b){return b.offsetHeight>=this._mainContentHeight&&1<this._totalAvailableElements.length};c.prototype._elementDisplayNone=function(b){var a=window.getComputedStyle(b,null).display;return a&&"none"===a||"none"===b.style.display};c.prototype._isBelowMaxes=function(b,a){return this._adInjectionMap.map.length<b&&this._adInjectionMap.map.length<a};c.prototype._findElementsForAds=
function(b,a,d,e,f,g){var h=this;void 0===g&&(g=document);this._clsOptions.targetDensityLog={onePerViewport:a,combinedMax:e,targetDensityUnits:f,targetDensityPercentage:this._pubLog.targetDensity,mainContentHeight:this._mainContentHeight,recipeCount:this._recipeCount,numberOfEls:this._totalAvailableElements.length};var m=function(k){var l;try{for(var q=M(h._totalAvailableElements),n=q.next();!n.done;n=q.next()){var t=n.value,B=t.dynamicAd,A=t.element;h._logDensityInfo(A,B.elementSelector,k);if(!(!d&&
h._elementLargerThanMainContent(A)||h._elementDisplayNone(A)))if(h._isBelowMaxes(e,f))h._checkElementSpacing({dynamicAd:B,element:A,insertEvery:k,targetAll:d,target:g});else break}}catch(P){var L={error:P}}finally{try{n&&!n.done&&(l=q.return)&&l.call(q)}finally{if(L)throw L.error;}}!h._usedAbsoluteMinimum&&5>h._smallerIncrementAttempts&&(++h._smallerIncrementAttempts,m(h._getSmallerIncrement(k)))};b=this._getInsertEvery(b,a,f);m(b)};c.prototype._getSmallerIncrement=function(b){b*=.6;b<=this._absoluteMinimumSpacingByDevice&&
(b=this._absoluteMinimumSpacingByDevice,this._usedAbsoluteMinimum=!0);return b};c.prototype._insertAds=function(){var b=this,a=[];this._adInjectionMap.filterUsed();this._adInjectionMap.map.forEach(function(d,e){var f=d.el,g=d.dynamicAd;d=d.target;e=Number(g.sequence)+e;var h=g.max;h=g.lazy&&e>h;g.sequence=e;g.lazy=h;if(f=b._addContentAd(f,g,d))g.used=!0,a.push(f)});return a};c.prototype._getInsertEvery=function(b,a,d){this._moreAvailableElementsThanUnitsToInject(d,b)?(this._usedAbsoluteMinimum=!1,
b=this._useWiderSpacing(d,b)):(this._usedAbsoluteMinimum=!0,b=this._useSmallestSpacing(a));return a&&window.innerHeight>b?window.innerHeight:b};c.prototype._useWiderSpacing=function(b,a){return this._mainContentHeight/Math.min(b,a)};c.prototype._useSmallestSpacing=function(b){return b&&window.innerHeight>this._absoluteMinimumSpacingByDevice?window.innerHeight:this._absoluteMinimumSpacingByDevice};c.prototype._moreAvailableElementsThanUnitsToInject=function(b,a){return this._totalAvailableElements.length>
b||this._totalAvailableElements.length>a};c.prototype._logDensityInfo=function(b,a,d){b=this._pubLog;b.onePerViewport;b.targetDensity;b.combinedMax};c.prototype._checkElementSpacing=function(b){var a=b.dynamicAd,d=b.element,e=b.insertEvery,f=b.targetAll;b=b.target;b=void 0===b?document:b;(this._isFirstAdInjected()||this._hasProperSpacing(d,a,f,e))&&this._markSpotForContentAd(d,y({},a),b)};c.prototype._isFirstAdInjected=function(){return!this._adInjectionMap.map.length};c.prototype._markSpotForContentAd=
function(b,a,d){void 0===d&&(d=document);this._adInjectionMap.add(b,this._getElementCoords(b,"beforebegin"===a.position||"afterbegin"===a.position),a,d);this._adInjectionMap.sort()};c.prototype._hasProperSpacing=function(b,a,d,e){var f="beforebegin"===a.position||"afterbegin"===a.position;a="beforeend"===a.position||"afterbegin"===a.position;d=d||this._isElementFarEnoughFromOtherAdElements(b,e,f);f=a||this._isElementNotInRow(b,f);b=-1===b.id.indexOf("AdThrive_".concat("Below_Post"));return d&&f&&
b};c.prototype._isElementFarEnoughFromOtherAdElements=function(b,a,d){b=this._getElementCoords(b,d);var e=!1;for(d=0;d<this._adInjectionMap.map.length&&!(e=this._adInjectionMap.map[d+1]&&this._adInjectionMap.map[d+1].coords,e=b-a>this._adInjectionMap.map[d].coords&&(!e||b+a<e));d++);return e};c.prototype._isElementNotInRow=function(b,a){var d=b.previousElementSibling,e=b.nextElementSibling;return(a=a?!d&&e||d&&b.tagName!==d.tagName?e:d:e)&&0===b.getBoundingClientRect().height?!0:a?b.getBoundingClientRect().top!==
a.getBoundingClientRect().top:!0};c.prototype._calculateMainContentHeightAndAllElements=function(b,a){void 0===a&&(a=document);b=r(ua(b,this._adInjectionMap,a),2);a=b[1];this._mainContentDiv=b[0];this._totalAvailableElements=a;b=this._mainContentDiv;a=void 0;void 0===a&&(a="div #comments, section .comments");this._mainContentHeight=(a=b.querySelector(a))?b.offsetHeight-a.offsetHeight:b.offsetHeight};c.prototype._getElementCoords=function(b,a){void 0===a&&(a=!1);b=b.getBoundingClientRect();return(a?
b.top:b.bottom)+window.scrollY};c.prototype._addContentAd=function(b,a,d){var e,f;void 0===d&&(d=document);var g=null,h="adthrive-".concat(a.location.replace("_","-").toLowerCase()),m="".concat(h,"-").concat(a.sequence),k=(null===(f=null===(e=this._clsOptions.siteAds.adOptions.stickyContainerConfig)||void 0===e?void 0:e.content)||void 0===f?0:f.enabled)&&this._stickyContainerAdsExperiment.result?"adthrive-sticky-container":"";if(b=this.addAd(b,this.getDynamicElementId(a),a.position,x([k,h,m],r(a.classNames),
!1)))e=ia(a,b),e.length&&(b.style.minHeight=this.locationToMinHeight[a.location],g="".concat(a.location,"_").concat(a.sequence),g={clsDynamicAd:a,dynamicAd:a,element:b,sizes:e,name:g,infinite:d!==document});return g};c.prototype.getDynamicElementId=function(b){return"".concat("AdThrive","_").concat(b.location,"_").concat(b.sequence,"_").concat(this._device)};c.prototype.getElements=function(b,a){void 0===a&&(a=document);return a.querySelectorAll(b)};c.prototype.addAd=function(b,a,d,e){void 0===e&&
(e=[]);document.getElementById(a)||(e='<div id="'.concat(a,'" class="adthrive-ad ').concat(e.join(" "),'"></div>'),b.insertAdjacentHTML(d,e));return document.getElementById(a)};c.prototype._repeatDynamicAds=function(b){var a=[],d=b.lazy?v(this.locationMaxLazySequence.get(b.location),0):0,e=b.max,f=b.lazyMax;d=Math.max(e,0===d&&b.lazy?e+f:Math.min(Math.max(d-b.sequence+1,0),e+f));for(f=0;f<d;f++){var g=Number(b.sequence)+f,h=b.lazy&&f>=e;a.push(y(y({},b),{sequence:g,lazy:h}))}return a};c.prototype._locationEnabled=
function(b){b=this._clsOptions.enabledLocations.includes(b.location);var a=this._clsOptions.disableAds&&this._clsOptions.disableAds.all||document.body.classList.contains("adthrive-disable-all"),d=!document.body.classList.contains("adthrive-disable-content")&&!this._clsOptions.disableAds.reasons.has("content_plugin");return b&&!a&&d};return c}(),Xa=function(c){function b(a,d){var e=c.call(this,a,"ClsVideoInsertion")||this;e._videoConfig=a;e._clsOptions=d;e._IN_POST_SELECTOR=".adthrive-video-player";
e._WRAPPER_BAR_HEIGHT=36;e._playersAddedFromPlugin=[];d.removeVideoTitleWrapper&&(e._WRAPPER_BAR_HEIGHT=0);return e}w(b,c);b.prototype.init=function(){this._initializePlayers()};b.prototype._wrapJWPlayerWithCLS=function(a,d,e){void 0===e&&(e=0);return a.parentNode?(d=this._createGenericCLSWrapper(.5625*a.offsetWidth,d,e),a.parentNode.insertBefore(d,a),d.appendChild(a),d):null};b.prototype._createGenericCLSWrapper=function(a,d,e){var f=document.createElement("div");f.id="cls-video-container-".concat(d);
f.className="adthrive";f.style.minHeight="".concat(a+e,"px");return f};b.prototype._getTitleHeight=function(a){a.innerText="Title";a.style.visibility="hidden";document.body.appendChild(a);var d=window.getComputedStyle(a),e=parseInt(d.height,10),f=parseInt(d.marginTop,10);d=parseInt(d.marginBottom,10);document.body.removeChild(a);return Math.min(e+d+f,50)};b.prototype._initializePlayers=function(){var a=document.querySelectorAll(this._IN_POST_SELECTOR);a.length&&this._initializeRelatedPlayers(a);this._shouldRunAutoplayPlayers()&&
this._determineAutoplayPlayers()};b.prototype._createStationaryRelatedPlayer=function(a,d){var e="mobile"===this._device?[400,225]:[640,360],f=G.Video_In_Post_ClicktoPlay_SoundOn;d&&a.mediaId&&(d=this._wrapJWPlayerWithCLS(d,a.mediaId),this._playersAddedFromPlugin.push(a.mediaId),d&&this._clsOptions.setInjectedVideoSlots({playerId:a.playerId,playerName:f,playerSize:e,element:d,type:"stationaryRelated"}))};b.prototype._createStickyRelatedPlayer=function(a,d){var e="mobile"===this._device?[400,225]:
[640,360],f=G.Video_Individual_Autoplay_SOff;this._stickyRelatedOnPage=!0;this._videoConfig.mobileStickyPlayerOnPage="mobile"===this._device;if(d&&a.position&&a.mediaId){var g=document.createElement("div");d.insertAdjacentElement(a.position,g);d=document.createElement("h3");d.style.margin="10px 0";d=this._getTitleHeight(d);d=this._wrapJWPlayerWithCLS(g,a.mediaId,this._WRAPPER_BAR_HEIGHT+d);this._playersAddedFromPlugin.push(a.mediaId);d&&this._clsOptions.setInjectedVideoSlots({playlistId:a.playlistId,
playerId:a.playerId,playerSize:e,playerName:f,element:g,type:"stickyRelated"})}};b.prototype._createPlaylistPlayer=function(a,d){var e=a.playlistId,f="mobile"===this._device?G.Video_Coll_SOff_Smartphone:G.Video_Collapse_Autoplay_SoundOff,g="mobile"===this._device?[400,225]:[640,360];this._videoConfig.mobileStickyPlayerOnPage=!0;var h=document.createElement("div");d.insertAdjacentElement(a.position,h);d=this._wrapJWPlayerWithCLS(h,e,this._WRAPPER_BAR_HEIGHT);this._playersAddedFromPlugin.push("playlist-".concat(e));
d&&this._clsOptions.setInjectedVideoSlots({playlistId:a.playlistId,playerId:a.playerId,playerSize:g,playerName:f,element:h,type:"stickyPlaylist"})};b.prototype._isVideoAllowedOnPage=function(){var a=this._clsOptions.disableAds;if(a&&a.video){var d="";a.reasons.has("video_tag")?d="video tag":a.reasons.has("video_plugin")?d="video plugin":a.reasons.has("video_page")&&(d="command queue");p.error(d?"ClsVideoInsertionMigrated":"ClsVideoInsertion","isVideoAllowedOnPage",Error("DBP: Disabled by publisher via ".concat(d||
"other")));return!1}return this._clsOptions.videoDisabledFromPlugin?!1:!0};return b}(function(c){function b(a,d){var e=c.call(this)||this;e._videoConfig=a;e._component=d;e._stickyRelatedOnPage=!1;e._contextualMediaIds=[];a=void 0;void 0===a&&(a=navigator.userAgent);a=/Windows NT|Macintosh/i.test(a);e._device=a?"desktop":"mobile";e._potentialPlayerMap=e.setPotentialPlayersMap();return e}w(b,c);b.prototype.setPotentialPlayersMap=function(){var a=this._videoConfig.players||[],d=this._filterPlayerMap();
a=a.filter(function(e){return"stationaryRelated"===e.type&&e.enabled});d.stationaryRelated=a;return this._potentialPlayerMap=d};b.prototype._filterPlayerMap=function(){var a=this,d=this._videoConfig.players,e={stickyRelated:[],stickyPlaylist:[],stationaryRelated:[]};return d&&d.length?d.filter(function(f){var g;return null===(g=f.devices)||void 0===g?void 0:g.includes(a._device)}).reduce(function(f,g){f[g.type]||(p.event(a._component,"constructor","Unknown Video Player Type detected",g.type),f[g.type]=
[]);g.enabled&&f[g.type].push(g);return f},e):e};b.prototype._checkPlayerSelectorOnPage=function(a){var d=this;a=this._potentialPlayerMap[a].map(function(e){return{player:e,playerElement:d._getPlacementElement(e)}});return a.length?a[0]:{player:null,playerElement:null}};b.prototype._getOverrideElement=function(a,d,e){a&&d?(e=document.createElement("div"),d.insertAdjacentElement(a.position,e)):(d=this._checkPlayerSelectorOnPage("stickyPlaylist"),a=d.player,d=d.playerElement,a&&d&&(e=document.createElement("div"),
d.insertAdjacentElement(a.position,e)));return e};b.prototype._shouldOverrideElement=function(a){a=a.getAttribute("override-embed");return"true"===a||"false"===a?"true"===a:this._videoConfig.contextualSettings?this._videoConfig.contextualSettings.overrideEmbedLocation:!1};b.prototype._getPlacementElement=function(a){var d,e=da(a.pageSelector),f=ca(a.elementSelector);if(!e.valid)return p.error("VideoUtils","getPlacementElement",Error("".concat(a.pageSelector," is not a valid selector"))),null;if(a.pageSelector&&
(null===(d=e.elements)||void 0===d||!d.length))return p.event("VideoUtils","getPlacementElement",Error("PSNF: ".concat(a.pageSelector," does not exist on the page"))),null;if(!f.valid)return p.error("VideoUtils","getPlacementElement",Error("".concat(a.elementSelector," is not a valid selector"))),null;if(f.elements.length>a.skip)return f.elements[a.skip];p.event("VideoUtils","getPlacementElement",Error("ESNF: ".concat(a.elementSelector," does not exist on the page")));return null};b.prototype._getEmbeddedPlayerType=
function(a){(a=a.getAttribute("data-player-type"))&&"default"!==a||(a=this._videoConfig.contextualSettings?this._videoConfig.contextualSettings.defaultPlayerType:"static");this._stickyRelatedOnPage&&(a="static");return a};b.prototype._getUnusedMediaId=function(a){return(a=a.getAttribute("data-video-id"))&&!this._contextualMediaIds.includes(a)?(this._contextualMediaIds.push(a),a):!1};b.prototype._createRelatedPlayer=function(a,d,e){"collapse"===d?this._createCollapsePlayer(a,e):"static"===d&&this._createStaticPlayer(a,
e)};b.prototype._createCollapsePlayer=function(a,d){var e=this._checkPlayerSelectorOnPage("stickyRelated"),f=e.player;e=e.playerElement;var g=f?f:this._potentialPlayerMap.stationaryRelated[0];g&&g.playerId?(this._shouldOverrideElement(d)&&(d=this._getOverrideElement(f,e,d)),d=document.querySelector("#cls-video-container-".concat(a," > div"))||d,this._createStickyRelatedPlayer(y(y({},g),{mediaId:a}),d)):p.error(this._component,"_createCollapsePlayer","No video player found")};b.prototype._createStaticPlayer=
function(a,d){this._potentialPlayerMap.stationaryRelated.length&&this._potentialPlayerMap.stationaryRelated[0].playerId?this._createStationaryRelatedPlayer(y(y({},this._potentialPlayerMap.stationaryRelated[0]),{mediaId:a}),d):p.error(this._component,"_createStaticPlayer","No video player found")};b.prototype._shouldRunAutoplayPlayers=function(){return this._isVideoAllowedOnPage()&&(this._potentialPlayerMap.stickyRelated.length||this._potentialPlayerMap.stickyPlaylist.length)?!0:!1};b.prototype._determineAutoplayPlayers=
function(){var a=this._component,d="VideoManagerComponent"===a,e=this._config;if(this._stickyRelatedOnPage)p.event(a,"stickyRelatedOnPage",d&&{device:e&&e.context.device,isDesktop:this._device}||{});else{var f=this._checkPlayerSelectorOnPage("stickyPlaylist"),g=f.player;f=f.playerElement;g&&g.playerId&&g.playlistId&&f?this._createPlaylistPlayer(g,f):p.event(a,"noStickyPlaylist",d&&{vendor:"none",device:e&&e.context.device,isDesktop:this._device}||{})}};b.prototype._initializeRelatedPlayers=function(a){for(var d=
0;d<a.length;d++){var e=a[d],f=this._getEmbeddedPlayerType(e),g=this._getUnusedMediaId(e);g&&this._createRelatedPlayer(g,f,e)}};return b}(function(){function c(){}Object.defineProperty(c.prototype,"enabled",{get:function(){return!0},enumerable:!1,configurable:!0});return c}())),Ya=function(c){function b(){return null!==c&&c.apply(this,arguments)||this}w(b,c);return b}(function(){function c(){this._map=[]}c.prototype.add=function(b,a,d,e){void 0===e&&(e=document);this._map.push({el:b,coords:a,dynamicAd:d,
target:e})};Object.defineProperty(c.prototype,"map",{get:function(){return this._map},enumerable:!1,configurable:!0});c.prototype.sort=function(){this._map.sort(function(b,a){return b.coords-a.coords})};c.prototype.filterUsed=function(){this._map=this._map.filter(function(b){return!b.dynamicAd.used})};c.prototype.reset=function(){this._map=[]};return c}());try{(function(){var c=new ea;c&&c.enabled&&((new Wa(c,new Ya)).start(),(new Xa(new Aa(c),c)).init())})()}catch(c){p.error("CLS","pluginsertion-iife",
c),window.adthriveCLS&&(window.adthriveCLS.injectedFromPlugin=!1)}})()
</script><script data-no-optimize="1" data-cfasync="false">(function () {var clsElements = document.querySelectorAll("script[id^='cls-']"); window.adthriveCLS && clsElements && clsElements.length === 0 ? window.adthriveCLS.injectedFromPlugin = false : ""; })();</script><script src='https://pimylifeup.com/wp-content/themes/lbb-theme-pimylifeup/js/bootstrap-native.min.js?ver=1.3.29' id='lbb-theme-bootstrap-js'></script>
<script src='https://pimylifeup.com/wp-includes/js/comment-reply.min.js?ver=6.2.2' id='comment-reply-js'></script>
<script defer src='https://stats.wp.com/e-202329.js' id='jetpack-stats-js'></script>
<script id='jetpack-stats-js-after'>
_stq = window._stq || [];
_stq.push([ "view", {v:'ext',blog:'75265728',post:'33463706',tz:'10',srv:'pimylifeup.com',j:'1:12.3'} ]);
_stq.push([ "clickTrackerInit", "75265728", "33463706" ]);
</script>
<script>!function(){"use strict";!function(e){if(-1===e.cookie.indexOf("__adblocker")){e.cookie="__adblocker=; expires=Thu, 01 Jan 1970 00:00:00 GMT; path=/";var t=new XMLHttpRequest;t.open("GET","https://ads.adthrive.com/abd/abd.js",!0),t.onreadystatechange=function(){if(XMLHttpRequest.DONE===t.readyState)if(200===t.status){var a=e.createElement("script");a.innerHTML=t.responseText,e.getElementsByTagName("head")[0].appendChild(a)}else{var n=new Date;n.setTime(n.getTime()+3e5),e.cookie="__adblocker=true; expires="+n.toUTCString()+"; path=/"}},t.send()}}(document)}();
</script><script>!function(){"use strict";var e;e=document,function(){var t,n;function r(){var t=e.createElement("script");t.src="https://cafemedia-com.videoplayerhub.com/galleryplayer.js",e.head.appendChild(t)}function a(){var t=e.cookie.match("(^|[^;]+)\\s*__adblocker\\s*=\\s*([^;]+)");return t&&t.pop()}function c(){clearInterval(n)}return{init:function(){var e;"true"===(t=a())?r():(e=0,n=setInterval((function(){100!==e&&"false"!==t||c(),"true"===t&&(r(),c()),t=a(),e++}),50))}}}().init()}();
</script>
<script defer src="https://static.cloudflareinsights.com/beacon.min.js/v8b253dfea2ab4077af8c6f58422dfbfd1689876627854" integrity="sha512-bjgnUKX4azu3dLTVtie9u6TKqgx29RBwfj3QXYt5EKfWM/9hPSAI/4qcV5NACjwAo8UtTeWefx6Zq5PHcMm7Tg==" data-cf-beacon='{"rayId":"7ecbd67c6fd23de4","token":"d72025be5ff748259ccab89dcaeb9214","version":"2023.7.0","si":100}' crossorigin="anonymous"></script>
</body>
</html>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment