<!-- This Source Code Form is subject to the terms of the GNU General Public License: Copyright (C) 2021-2024 POKETUBE (https://codeberg.org/Ashley/poketube) This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see https://www.gnu.org/licenses/. --><!DOCTYPE html><html style="background:#000000"> <head> <title>Poke | <%- p.title %> </title> <link href=/css/yt-ukraine.svg?v=6 rel=icon> <link rel="manifest" href="/manifest.json"> <meta content=website property=og:type> <meta name="viewport" content="width=device-1200px, initial-scale=1.0, shrink-to-fit=yes, viewport-fit=cover"> <meta content="Poke - <%- p.title %> " property=og:title> <meta content="<%- p.description %>" property=twitter:description> <meta content="<%- mediaproxy %>/proxy?url=<%- p.playlistThumbnail %>" property="og:image" /> <meta content=summary_large_image name=twitter:card> <link href=/css/app-cdn.min.css rel=stylesheet> <link href=/css/app.main.css?v=44600 rel=stylesheet> <link href="/css/watch.main.css?v=56" rel=stylesheet> <link href=https://p.poketube.fun/https://site-assets.fontawesome.com/releases/v6.1.1/css/all.css rel=stylesheet> <style> a.class:hover { font-weight:bold } summary{ color:gray; } summary:hove color:white; } </style> <!-- WIGGLE WIGGLE WIGGLE --> <style> body{ overflow-x: hidden; /* Hide horizontal scrollbar */ color:#111111; } .animated { -webkit-animation-duration: 10s; animation-duration: 10s; -webkit-animation-fill-mode: both; animation-fill-mode: both; animation-iteration-count: infinite; -moz-animation-iteration-count: infinite; -webkit-animation-iteration-count: infinite; -o-animation-iteration-count: infinite; } @-webkit-keyframes wiggle { 0% { -webkit-transform: skewX(9deg); } 10% { -webkit-transform: skewX(-8deg); } 20% { -webkit-transform: skewX(7deg); } 30% { -webkit-transform: skewX(-6deg); } 40% { -webkit-transform: skewX(5deg); } 50% { -webkit-transform: skewX(-4deg); } 60% { -webkit-transform: skewX(3deg); } 70% { -webkit-transform: skewX(-2deg); } 80% { -webkit-transform: skewX(1deg); } 90% { -webkit-transform: skewX(0deg); } 100% { -webkit-transform: skewX(0deg); } } @keyframes wiggle { 0% { transform: skewX(9deg); } 10% { transform: skewX(-8deg); } 20% { transform: skewX(7deg); } 30% { transform: skewX(-6deg); } 40% { transform: skewX(5deg); } 50% { transform: skewX(-4deg); } 60% { transform: skewX(3deg); } 70% { transform: skewX(-2deg); } 80% { transform: skewX(1deg); } 90% { transform: skewX(0deg); } 100% { transform: skewX(0deg); } } .wiggle { -webkit-animation-name: wiggle; animation-name: wiggle; -webkit-animation-timing-function: ease-in; animation-timing-function: ease-in; } .animated.wiggle { -webkit-animation-duration: 0.75s; animation-duration: 0.75s; } :root { --text-primary: #fff; --text-secondary: #fff; --text-link: #3ea6ff; --app-background: #111111; --context-menu-background: #333; --border-color: #444; --item-hover-background: #373737; --item-active-background: #383838; --top-bar-background: #202020; --guide-background: #212121; --thumbnail-background: #252525; --channel-info-background: #181818; --channel-contents-background: #0f0f0f; } .alert { padding: 20px; background-color: #f44336; color: white; opacity: 1; transition: opacity 0.6s; margin-bottom: 15px; } .alert.success {background-color: #04AA6D;} .alert.info {background-color: #2196F3;} .alert.warning {background-color: #ff9800;} .closebtn { margin-left: 15px; color: white; font-weight: bold; float: right; font-size: 22px; line-height: 20px; cursor: pointer; transition: 0.3s; } a{ border-radius:13px } .video-list > p { font-family:Ubuntu } .closebtn:hover { color: black; } .playlist-video > .info > .title { border-radius:0em; max-height: 1.9em; } .playlist-info>.title { font-family: "PokeTube flex"; font-stretch: ultra-expanded; font-weight: 600; } .playlist-info{ position: sticky; top:0; } .playlist-info::before { content: ''; position: absolute; top: 0; left: 0; width: 13em; height: 447px; background-size: cover; filter: blur(53px); backdrop-filter: blur(157px); z-index: -1; background-image: url(<%- mediaproxy %>/proxy?url=<%- p.playlistThumbnail %>?sqp=-oaymwEWCKgBEF5IWvKriqkDCQgBFQAAiEIYAQ==&rs=AOn4CLA9kTQiXKs92q5RXRPYMkL6jKhNJQsqp=-oaymwEXCNACELwBSFryq4qpAwkIARUAAIhCGAE=&rs=AOn4CLCLG7gzsIdtlp7ugZJH8YaAHX5bIw&days_since_epoch=19755); margin-left: 82px; } </style> </head> <body> <nav> <div class="left"><a class="class" href="/143" style=font-family:Inter,sans-serif;color:#fff> <img style="transform: scale(1.3);padding-left:0.9em;width: 8.5em;display: block;margin-left: auto;margin-right: auto;" src="/css/logo.svg?v=5"> </a> </div> <div class="middle"> <div class="search"> <form action="/search"> <input class="search-bar" autocomplete="on" id="fname" name="query" placeholder="" style="color:#fff;font-family:Inter,sans-serif;border-radius: 8px;" data-ddg-inputtype="identities.firstName"> <button class="btn btn-success" type="submit"><i class="fa-light fa-search"></i></button> </form> </div> </div> <div class="right"> <a href="/privacy" style="text-decoration: none;" title="Privacy Policy"> <i style="display: block;margin-left: auto;margin-right: auto;" class="fa-light fa-shield"></i> </a> </div> </nav> <div class="playlist-page" style="margin-left: auto;margin-right: auto;width: 56em;"> <div class="playlist-info" style="max-height: 26em;border-radius: 1em;"> <% if (!p.mixId) { %> <div class="thumbnail" style="background-image: url('<%- mediaproxy %>/proxy?url=<%- p.playlistThumbnail %>sqp=-oaymwEXCNACELwBSFryq4qpAwkIARUAAIhCGAE=&rs=AOn4CLCLG7gzsIdtlp7ugZJH8YaAHX5bIw&days_since_epoch=19755');border-radius: 13px;border: 1px solid #ff0064"> </div> <% } %> <p class="title"><%- p.title %> </p> <% if (!p.mixId) { %> <span class="info"><%- p.videoCount %> videos • <%- p?.viewCount?.toLocaleString() %> views • by <%- p.author %> </span> <% } %> <span class="description"><%- p.description %></span> <div class="channel-info"> </div> </div> <div class="video-list playlist-video-list"> <% p.videos.forEach(x => { %> <div class="playlist-video"> <a href="/watch?v=<%- x.videoId %>" class="index"> <%- x.index + 1 %> </a> <a href="/watch?v=<%- x.videoId %>" class="thumbnail" style="background-image: url('<%- mediaproxy %>/proxy?url=https://vid.puffyan.us/vi/<%- x.videoId %>/hqdefault.jpg?sqp=-oaymwEjCNACELwBSFryq4qpAxUIARUAAAAAGAElAADIQj0AgKJDeAE=&rs=AOn4CLBibY6d4Dg0K69NC-0b7NFsD7AH1w');"> </a> <div class="info"> <a href="/watch?v=<%- x.videoId %>" class="title max-lines-2"> <%- x.title %> </a> <div> <a href="/channel?id=<%- x.authorId %>" style="border-radius:0em"><%- x.author %></a><br> <a href="/download?id=<%- x.videoId %>" style="border-radius:0em"> Download </a> </div> </div> </div> <% }) %> </div> </div> </div> <script src="/css/custom-css.js"> </script> </body> </html>