From 03dab0724dc7e1629decf8736a6fb73cbb7c20cd Mon Sep 17 00:00:00 2001 From: Dieter Holvoet Date: Sun, 21 Dec 2025 22:43:41 +0100 Subject: [PATCH 1/2] Change provider name from 'Music on TIDAL' to 'TIDAL' --- src/Adapters/Tidal/Detectors/ProviderName.php | 14 ++++++++++++++ src/Adapters/Tidal/Extractor.php | 16 ++++++++++++++++ src/ExtractorFactory.php | 1 + 3 files changed, 31 insertions(+) create mode 100644 src/Adapters/Tidal/Detectors/ProviderName.php create mode 100644 src/Adapters/Tidal/Extractor.php diff --git a/src/Adapters/Tidal/Detectors/ProviderName.php b/src/Adapters/Tidal/Detectors/ProviderName.php new file mode 100644 index 00000000..4809cad6 --- /dev/null +++ b/src/Adapters/Tidal/Detectors/ProviderName.php @@ -0,0 +1,14 @@ + new Detectors\ProviderName($this), + ]; + } +} diff --git a/src/ExtractorFactory.php b/src/ExtractorFactory.php index 55624f6c..fd087817 100644 --- a/src/ExtractorFactory.php +++ b/src/ExtractorFactory.php @@ -31,6 +31,7 @@ class ExtractorFactory 'bandcamp.com' => Adapters\Bandcamp\Extractor::class, 'twitter.com' => Adapters\Twitter\Extractor::class, 'x.com' => Adapters\Twitter\Extractor::class, + 'tidal.com' => Adapters\Tidal\Extractor::class, ]; private array $customDetectors = []; private array $settings; From 18f1d95f3848d8bf93c552ecc826674ab9e87827 Mon Sep 17 00:00:00 2001 From: Dieter Holvoet Date: Sun, 21 Dec 2025 23:06:31 +0100 Subject: [PATCH 2/2] Add playlist embed code builder --- src/Adapters/Tidal/Detectors/Code.php | 36 +++++++++++++++++++++++++++ src/Adapters/Tidal/Extractor.php | 1 + 2 files changed, 37 insertions(+) create mode 100644 src/Adapters/Tidal/Detectors/Code.php diff --git a/src/Adapters/Tidal/Detectors/Code.php b/src/Adapters/Tidal/Detectors/Code.php new file mode 100644 index 00000000..41e69fe5 --- /dev/null +++ b/src/Adapters/Tidal/Detectors/Code.php @@ -0,0 +1,36 @@ +fallback(); + } + + private function fallback(): ?EmbedCode + { + $uri = $this->extractor->getUri(); + + if (!preg_match('{^/playlist/(?P[0-9a-fA-F\-]{36})$}', $uri->getPath(), $matches)) { + return NULL; + } + + $html = html('iframe', [ + 'src' => 'https://embed.tidal.com/playlists/' . $matches['uuid'] . '?disableAnalytics=true', + 'allow' => 'encrypted-media', + 'allowfullscreen' => 'allowfullscreen', + 'frameborder' => '0', + 'style' => 'width:100%;height:352px', + ]); + + return new EmbedCode($html, null, 352); + } +} diff --git a/src/Adapters/Tidal/Extractor.php b/src/Adapters/Tidal/Extractor.php index 36721006..df9dabe6 100644 --- a/src/Adapters/Tidal/Extractor.php +++ b/src/Adapters/Tidal/Extractor.php @@ -10,6 +10,7 @@ class Extractor extends Base public function createCustomDetectors(): array { return [ + 'code' => new Detectors\Code($this), 'providerName' => new Detectors\ProviderName($this), ]; }