diff --git a/src/components/layout/PlayerBar.tsx b/src/components/layout/PlayerBar.tsx
index 9f801d5..a5efc21 100644
--- a/src/components/layout/PlayerBar.tsx
+++ b/src/components/layout/PlayerBar.tsx
@@ -1,13 +1,65 @@
-import { Play, Pause, Volume2, VolumeX, SkipBack, SkipForward } from 'lucide-react'
+import { useState } from 'react'
+import { Play, Pause, Volume2, VolumeX, SkipBack, SkipForward, Maximize2, Minimize2 } from 'lucide-react'
import { usePlayerStore } from '@/stores/player'
import { formatDuration } from '@/lib/utils'
+import { getEmbedInfo } from '@/lib/embed'
import { Avatar } from '@/components/ui/Avatar'
export function PlayerBar() {
- const { current, isPlaying, progress, duration, volume, toggle, seek, setVolume } = usePlayerStore()
+ const { current, isPlaying, isExternal, progress, duration, volume, toggle, seek, setVolume } = usePlayerStore()
+ const [expanded, setExpanded] = useState(false)
if (!current) return null
+ const embedInfo = isExternal ? getEmbedInfo(current.audio_url) : null
+
+ // External content: show expandable embed player
+ if (isExternal && embedInfo && isPlaying) {
+ return (
+
+ {expanded && (
+
+
+
+ )}
+
+
+
+ {current.cover_url ? (
+

+ ) : (
+
+ )}
+
+
+
+
{current.title}
+
+ {current.creator?.username} · via {embedInfo.platform === 'youtube' ? 'YouTube' : embedInfo.platform === 'dailymotion' ? 'Dailymotion' : 'SoundCloud'}
+
+
+
+
+
+
+
+ )
+ }
+
+ // Native audio player
return (
{/* Progress bar */}
diff --git a/src/lib/embed.ts b/src/lib/embed.ts
new file mode 100644
index 0000000..ee60fea
--- /dev/null
+++ b/src/lib/embed.ts
@@ -0,0 +1,46 @@
+export type EmbedInfo = {
+ platform: 'youtube' | 'dailymotion' | 'soundcloud'
+ id: string
+ embedUrl: string
+}
+
+export function getEmbedInfo(url: string): EmbedInfo | null {
+ // YouTube
+ const ytMatch = url.match(
+ /(?:youtube\.com\/(?:watch\?v=|embed\/|shorts\/)|youtu\.be\/)([a-zA-Z0-9_-]{11})/,
+ )
+ if (ytMatch) {
+ return {
+ platform: 'youtube',
+ id: ytMatch[1],
+ embedUrl: `https://www.youtube.com/embed/${ytMatch[1]}?autoplay=1`,
+ }
+ }
+
+ // Dailymotion
+ const dmMatch = url.match(
+ /(?:dailymotion\.com\/video\/|dai\.ly\/)([a-zA-Z0-9]+)/,
+ )
+ if (dmMatch) {
+ return {
+ platform: 'dailymotion',
+ id: dmMatch[1],
+ embedUrl: `https://www.dailymotion.com/embed/video/${dmMatch[1]}?autoplay=1`,
+ }
+ }
+
+ // SoundCloud
+ if (url.includes('soundcloud.com/')) {
+ return {
+ platform: 'soundcloud',
+ id: url,
+ embedUrl: `https://w.soundcloud.com/player/?url=${encodeURIComponent(url)}&auto_play=true&visual=true`,
+ }
+ }
+
+ return null
+}
+
+export function isExternalUrl(url: string): boolean {
+ return getEmbedInfo(url) !== null
+}
diff --git a/src/pages/PodcastDetail.tsx b/src/pages/PodcastDetail.tsx
index c5df1c0..604d104 100644
--- a/src/pages/PodcastDetail.tsx
+++ b/src/pages/PodcastDetail.tsx
@@ -4,6 +4,7 @@ import { Play, Pause, Heart, MessageCircle, Clock, Share2 } from 'lucide-react'
import { supabase } from '@/lib/supabase'
import { useAuthStore } from '@/stores/auth'
import { usePlayerStore } from '@/stores/player'
+import { getEmbedInfo } from '@/lib/embed'
import type { Podcast, Comment } from '@/types'
import { formatDuration, timeAgo } from '@/lib/utils'
import { Avatar } from '@/components/ui/Avatar'
@@ -163,6 +164,23 @@ export function PodcastDetail() {
+ {/* Embedded player for external content */}
+ {(() => {
+ const embed = getEmbedInfo(podcast.audio_url)
+ if (!embed) return null
+ return (
+
+
+
+ )
+ })()}
+
{podcast.description && (
Description
diff --git a/src/stores/player.ts b/src/stores/player.ts
index 9557418..516f1bf 100644
--- a/src/stores/player.ts
+++ b/src/stores/player.ts
@@ -1,9 +1,11 @@
import { create } from 'zustand'
import type { Podcast } from '@/types'
+import { isExternalUrl } from '@/lib/embed'
interface PlayerState {
current: Podcast | null
isPlaying: boolean
+ isExternal: boolean
progress: number
duration: number
volume: number
@@ -21,6 +23,7 @@ interface PlayerState {
export const usePlayerStore = create
((set, get) => ({
current: null,
isPlaying: false,
+ isExternal: false,
progress: 0,
duration: 0,
volume: 0.8,
@@ -28,11 +31,18 @@ export const usePlayerStore = create((set, get) => ({
play: (podcast) => {
const { audio, current } = get()
+ const external = isExternalUrl(podcast.audio_url)
- if (current?.id === podcast.id && audio) {
- audio.play()
- set({ isPlaying: true })
- return
+ if (current?.id === podcast.id) {
+ if (external) {
+ set({ isPlaying: true })
+ return
+ }
+ if (audio) {
+ audio.play()
+ set({ isPlaying: true })
+ return
+ }
}
if (audio) {
@@ -40,6 +50,12 @@ export const usePlayerStore = create((set, get) => ({
audio.removeAttribute('src')
}
+ // External URLs are handled by embed iframe, not HTMLAudioElement
+ if (external) {
+ set({ audio: null, current: podcast, isPlaying: true, isExternal: true, progress: 0, duration: podcast.duration_seconds || 0 })
+ return
+ }
+
const newAudio = new Audio(podcast.audio_url)
newAudio.volume = get().volume
@@ -54,7 +70,7 @@ export const usePlayerStore = create((set, get) => ({
})
newAudio.play()
- set({ audio: newAudio, current: podcast, isPlaying: true, progress: 0 })
+ set({ audio: newAudio, current: podcast, isPlaying: true, isExternal: false, progress: 0 })
},
toggle: () => {
diff --git a/supabase/seed.sql b/supabase/seed.sql
index 35996d5..9ba12ad 100644
--- a/supabase/seed.sql
+++ b/supabase/seed.sql
@@ -1,220 +1,387 @@
-- ==============================================
-- We Talk — Seed Data
--- Podcasts libres de droit (Creative Commons)
--- Source: Hacker Public Radio (archive.org)
+-- Podcasts from Alice Underground & Small Talk
+-- Audio from Audiomeans RSS feeds (public)
-- ==============================================
--- 1. Create demo users in auth.users first (required for FK on profiles)
--- NOTE: Run this AFTER the migration 001_initial_schema.sql
+-- 1. Create demo users in auth.users (required for FK on profiles)
INSERT INTO auth.users (id, instance_id, email, encrypted_password, email_confirmed_at, aud, role, raw_app_meta_data, raw_user_meta_data, created_at, updated_at, confirmation_token) VALUES
- ('a1000000-0000-0000-0000-000000000001', '00000000-0000-0000-0000-000000000000', 'ahuka@demo.wetalk.fr', crypt('demo-password-123', gen_salt('bf')), NOW(), 'authenticated', 'authenticated', '{"provider":"email","providers":["email"]}', '{"username":"ahuka"}', NOW(), NOW(), ''),
- ('a1000000-0000-0000-0000-000000000002', '00000000-0000-0000-0000-000000000000', 'sgoti@demo.wetalk.fr', crypt('demo-password-123', gen_salt('bf')), NOW(), 'authenticated', 'authenticated', '{"provider":"email","providers":["email"]}', '{"username":"sgoti"}', NOW(), NOW(), ''),
- ('a1000000-0000-0000-0000-000000000003', '00000000-0000-0000-0000-000000000000', 'klaatu@demo.wetalk.fr', crypt('demo-password-123', gen_salt('bf')), NOW(), 'authenticated', 'authenticated', '{"provider":"email","providers":["email"]}', '{"username":"klaatu"}', NOW(), NOW(), ''),
- ('a1000000-0000-0000-0000-000000000004', '00000000-0000-0000-0000-000000000000', 'windigo@demo.wetalk.fr', crypt('demo-password-123', gen_salt('bf')), NOW(), 'authenticated', 'authenticated', '{"provider":"email","providers":["email"]}', '{"username":"windigo"}', NOW(), NOW(), ''),
- ('a1000000-0000-0000-0000-000000000005', '00000000-0000-0000-0000-000000000000', 'corydoctorow@demo.wetalk.fr', crypt('demo-password-123', gen_salt('bf')), NOW(), 'authenticated', 'authenticated', '{"provider":"email","providers":["email"]}', '{"username":"corydoctorow"}', NOW(), NOW(), '')
+ ('a1000000-0000-0000-0000-000000000001', '00000000-0000-0000-0000-000000000000', 'alice@demo.wetalk.fr', crypt('demo-password-123', gen_salt('bf')), NOW(), 'authenticated', 'authenticated', '{"provider":"email","providers":["email"]}', '{"username":"alice_underground"}', NOW(), NOW(), ''),
+ ('a1000000-0000-0000-0000-000000000002', '00000000-0000-0000-0000-000000000000', 'david@demo.wetalk.fr', crypt('demo-password-123', gen_salt('bf')), NOW(), 'authenticated', 'authenticated', '{"provider":"email","providers":["email"]}', '{"username":"david_dcl"}', NOW(), NOW(), ''),
+ ('a1000000-0000-0000-0000-000000000003', '00000000-0000-0000-0000-000000000000', 'sara@demo.wetalk.fr', crypt('demo-password-123', gen_salt('bf')), NOW(), 'authenticated', 'authenticated', '{"provider":"email","providers":["email"]}', '{"username":"sara_f"}', NOW(), NOW(), ''),
+ ('a1000000-0000-0000-0000-000000000004', '00000000-0000-0000-0000-000000000000', 'bigflo@demo.wetalk.fr', crypt('demo-password-123', gen_salt('bf')), NOW(), 'authenticated', 'authenticated', '{"provider":"email","providers":["email"]}', '{"username":"bigflo"}', NOW(), NOW(), ''),
+ ('a1000000-0000-0000-0000-000000000005', '00000000-0000-0000-0000-000000000000', 'mika@demo.wetalk.fr', crypt('demo-password-123', gen_salt('bf')), NOW(), 'authenticated', 'authenticated', '{"provider":"email","providers":["email"]}', '{"username":"mika_music"}', NOW(), NOW(), '')
ON CONFLICT (id) DO NOTHING;
--- Also insert into auth.identities (required by Supabase Auth)
INSERT INTO auth.identities (id, user_id, provider_id, provider, identity_data, last_sign_in_at, created_at, updated_at) VALUES
- ('a1000000-0000-0000-0000-000000000001', 'a1000000-0000-0000-0000-000000000001', 'a1000000-0000-0000-0000-000000000001', 'email', '{"sub":"a1000000-0000-0000-0000-000000000001","email":"ahuka@demo.wetalk.fr"}', NOW(), NOW(), NOW()),
- ('a1000000-0000-0000-0000-000000000002', 'a1000000-0000-0000-0000-000000000002', 'a1000000-0000-0000-0000-000000000002', 'email', '{"sub":"a1000000-0000-0000-0000-000000000002","email":"sgoti@demo.wetalk.fr"}', NOW(), NOW(), NOW()),
- ('a1000000-0000-0000-0000-000000000003', 'a1000000-0000-0000-0000-000000000003', 'a1000000-0000-0000-0000-000000000003', 'email', '{"sub":"a1000000-0000-0000-0000-000000000003","email":"klaatu@demo.wetalk.fr"}', NOW(), NOW(), NOW()),
- ('a1000000-0000-0000-0000-000000000004', 'a1000000-0000-0000-0000-000000000004', 'a1000000-0000-0000-0000-000000000004', 'email', '{"sub":"a1000000-0000-0000-0000-000000000004","email":"windigo@demo.wetalk.fr"}', NOW(), NOW(), NOW()),
- ('a1000000-0000-0000-0000-000000000005', 'a1000000-0000-0000-0000-000000000005', 'a1000000-0000-0000-0000-000000000005', 'email', '{"sub":"a1000000-0000-0000-0000-000000000005","email":"corydoctorow@demo.wetalk.fr"}', NOW(), NOW(), NOW())
+ ('a1000000-0000-0000-0000-000000000001', 'a1000000-0000-0000-0000-000000000001', 'a1000000-0000-0000-0000-000000000001', 'email', '{"sub":"a1000000-0000-0000-0000-000000000001","email":"alice@demo.wetalk.fr"}', NOW(), NOW(), NOW()),
+ ('a1000000-0000-0000-0000-000000000002', 'a1000000-0000-0000-0000-000000000002', 'a1000000-0000-0000-0000-000000000002', 'email', '{"sub":"a1000000-0000-0000-0000-000000000002","email":"david@demo.wetalk.fr"}', NOW(), NOW(), NOW()),
+ ('a1000000-0000-0000-0000-000000000003', 'a1000000-0000-0000-0000-000000000003', 'a1000000-0000-0000-0000-000000000003', 'email', '{"sub":"a1000000-0000-0000-0000-000000000003","email":"sara@demo.wetalk.fr"}', NOW(), NOW(), NOW()),
+ ('a1000000-0000-0000-0000-000000000004', 'a1000000-0000-0000-0000-000000000004', 'a1000000-0000-0000-0000-000000000004', 'email', '{"sub":"a1000000-0000-0000-0000-000000000004","email":"bigflo@demo.wetalk.fr"}', NOW(), NOW(), NOW()),
+ ('a1000000-0000-0000-0000-000000000005', 'a1000000-0000-0000-0000-000000000005', 'a1000000-0000-0000-0000-000000000005', 'email', '{"sub":"a1000000-0000-0000-0000-000000000005","email":"mika@demo.wetalk.fr"}', NOW(), NOW(), NOW())
ON CONFLICT (id) DO NOTHING;
--- Now insert profiles (the trigger handle_new_user won't fire on direct auth.users inserts)
+-- 2. Profiles
+
INSERT INTO public.profiles (id, username, avatar_url, bio, is_premium, free_listens_count) VALUES
- ('a1000000-0000-0000-0000-000000000001', 'ahuka', NULL, 'Passionné de technologie et de logiciels libres. Contributeur Hacker Public Radio.', true, 0),
- ('a1000000-0000-0000-0000-000000000002', 'sgoti', NULL, 'Podcaster et bricoleur informatique. J''aime parler de tout et de rien.', false, 3),
- ('a1000000-0000-0000-0000-000000000003', 'klaatu', NULL, 'Explorateur numerique. Voyage, technologie et culture libre.', true, 0),
- ('a1000000-0000-0000-0000-000000000004', 'windigo', NULL, 'Administrateur systeme le jour, podcaster la nuit.', false, 7),
- ('a1000000-0000-0000-0000-000000000005', 'corydoctorow', NULL, 'Auteur, journaliste, activiste. Electronic Frontier Foundation.', true, 0)
+ ('a1000000-0000-0000-0000-000000000001', 'alice_underground', 'https://static.audiomeans.fr/img/podcast/e113761f-a5db-4bf2-80db-b99fe2448d10.jpg', 'Photographe, realisatrice et creatrice du Trippy Talk Show. Chaque episode est un univers unique.', true, 0),
+ ('a1000000-0000-0000-0000-000000000002', 'david_dcl', 'https://static.audiomeans.fr/img/podcast/279b0aa2-ff30-435e-90e0-5cdfa115ea33.jpg', 'Presentateur de Small Talk chez Konbini. On parle de tout sauf de ce qui vous a rendu celebre.', true, 0),
+ ('a1000000-0000-0000-0000-000000000003', 'sara_f', NULL, 'Actrice et invitee recurrente. J''aime les conversations sans filtre.', false, 5),
+ ('a1000000-0000-0000-0000-000000000004', 'bigflo', NULL, 'Rappeur, entrepreneur, patron. Invitee d''Alice Underground.', false, 2),
+ ('a1000000-0000-0000-0000-000000000005', 'mika_music', NULL, 'Chanteur, conteur, personnage. Invite sur les deux podcasts.', true, 0)
ON CONFLICT (id) DO NOTHING;
--- 2. Create tags
+-- 3. Tags
+
INSERT INTO public.tags (id, name, slug) VALUES
- ('b1000000-0000-0000-0000-000000000001', 'Technologie', 'technologie'),
- ('b1000000-0000-0000-0000-000000000002', 'Open Source', 'open-source'),
- ('b1000000-0000-0000-0000-000000000003', 'Jeux Video', 'jeux-video'),
- ('b1000000-0000-0000-0000-000000000004', 'Tutoriel', 'tutoriel'),
- ('b1000000-0000-0000-0000-000000000005', 'Culture', 'culture'),
+ ('b1000000-0000-0000-0000-000000000001', 'Talk Show', 'talk-show'),
+ ('b1000000-0000-0000-0000-000000000002', 'Comedie', 'comedie'),
+ ('b1000000-0000-0000-0000-000000000003', 'Culture', 'culture'),
+ ('b1000000-0000-0000-0000-000000000004', 'Musique', 'musique'),
+ ('b1000000-0000-0000-0000-000000000005', 'Cinema', 'cinema'),
('b1000000-0000-0000-0000-000000000006', 'Voyage', 'voyage'),
- ('b1000000-0000-0000-0000-000000000007', 'Productivite', 'productivite'),
- ('b1000000-0000-0000-0000-000000000008', 'Vie Quotidienne', 'vie-quotidienne'),
- ('b1000000-0000-0000-0000-000000000009', 'Droit Numerique', 'droit-numerique'),
- ('b1000000-0000-0000-0000-000000000010', 'Windows', 'windows'),
- ('b1000000-0000-0000-0000-000000000011', 'Linux', 'linux'),
- ('b1000000-0000-0000-0000-000000000012', 'Podcasting', 'podcasting')
+ ('b1000000-0000-0000-0000-000000000007', 'Societe', 'societe'),
+ ('b1000000-0000-0000-0000-000000000008', 'Rap', 'rap'),
+ ('b1000000-0000-0000-0000-000000000009', 'Humour', 'humour'),
+ ('b1000000-0000-0000-0000-000000000010', 'Interview', 'interview'),
+ ('b1000000-0000-0000-0000-000000000011', 'French Touch', 'french-touch'),
+ ('b1000000-0000-0000-0000-000000000012', 'Noel', 'noel')
ON CONFLICT (id) DO NOTHING;
--- 3. Insert podcasts (audio from archive.org, Creative Commons)
+-- 4. Podcasts — Alice Underground
+
INSERT INTO public.podcasts (id, creator_id, title, description, audio_url, duration_seconds, cover_url, plays_count, created_at) VALUES
(
'c1000000-0000-0000-0000-000000000001',
'a1000000-0000-0000-0000-000000000001',
- 'Creative Commons Search Engine',
- 'Decouvrez Openverse, le nouveau moteur de recherche pour le contenu Creative Commons. Une evolution de l''ancien CC Search developpe par Creative Commons, repris par WordPress, et qui continue d''evoluer.',
- 'https://archive.org/download/hpr3977/hpr3977.mp3',
- 358,
- NULL,
- 247,
- NOW() - INTERVAL '2 days'
+ 'God Save Stephane Bern',
+ 'Stephane Bern partage ses anecdotes sur la royaute, les Windsor et Versailles dans le Trippy Talk Show d''Alice.',
+ 'https://audio.audiomeans.fr/file/jxBCsdLAGN/bcd67c67-cae7-481b-9aa6-ebcfa6067969.mp3',
+ 3661,
+ 'https://static.audiomeans.fr/img/podcast/e113761f-a5db-4bf2-80db-b99fe2448d10.jpg',
+ 1247,
+ '2026-04-08'
),
(
'c1000000-0000-0000-0000-000000000002',
- 'a1000000-0000-0000-0000-000000000003',
- 'Playing Alpha Centauri, Part 1',
- 'Premiere partie de nos conseils pour jouer a Alpha Centauri. On commence par regarder comment approcher ce jeu de strategie classique et les bases pour bien demarrer.',
- 'https://archive.org/download/hpr3970/hpr3970.mp3',
- 1102,
- NULL,
- 183,
- NOW() - INTERVAL '5 days'
+ 'a1000000-0000-0000-0000-000000000001',
+ 'Dans notre bulle avec Sara Forestier',
+ 'Sara Forestier parle de desir et de sexualite avec humour et franchise dans un episode sans tabou.',
+ 'https://audio.audiomeans.fr/file/jxBCsdLAGN/4215b52f-8f0b-42d8-9310-55181e3860f1.mp3',
+ 3254,
+ 'https://static.audiomeans.fr/img/podcast/e113761f-a5db-4bf2-80db-b99fe2448d10.jpg',
+ 983,
+ '2026-04-01'
),
(
'c1000000-0000-0000-0000-000000000003',
- 'a1000000-0000-0000-0000-000000000002',
- 'Comment se faire des amis sur Internet',
- 'Sgoti et Mugs discutent avec des amis de la facon de creer des liens authentiques en ligne. Un echange decontracte sur les relations humaines a l''ere du numerique.',
- 'https://archive.org/download/hpr3971/hpr3971.mp3',
- 2245,
- NULL,
- 412,
- NOW() - INTERVAL '3 days'
+ 'a1000000-0000-0000-0000-000000000001',
+ 'C''est qui le patron ? Avec Bigflo',
+ 'Le rappeur Bigflo se confie sur le business, l''ambition et la vie d''artiste avec son style caracteristique.',
+ 'https://audio.audiomeans.fr/file/jxBCsdLAGN/5497f8c6-0fc3-4393-b77c-2d47627068d8.mp3',
+ 4189,
+ 'https://static.audiomeans.fr/img/podcast/e113761f-a5db-4bf2-80db-b99fe2448d10.jpg',
+ 2134,
+ '2026-03-25'
),
(
'c1000000-0000-0000-0000-000000000004',
- 'a1000000-0000-0000-0000-000000000002',
- 'Filtrage Thunderbird : garder une boite mail propre',
- 'Sgoti explique comment filtrer efficacement votre boite de reception Thunderbird pour rester organise et productif au quotidien.',
- 'https://archive.org/download/hpr3972/hpr3972.mp3',
- 743,
- NULL,
- 156,
- NOW() - INTERVAL '7 days'
+ 'a1000000-0000-0000-0000-000000000001',
+ 'Touching grass, avec Berengere Krief',
+ 'Alice et Berengere Krief explorent les relations, l''autonomie du corps et le desir en pleine nature.',
+ 'https://audio.audiomeans.fr/file/jxBCsdLAGN/d4aa4571-6b0a-4f73-9b2d-72aabfeef066.mp3',
+ 3311,
+ 'https://static.audiomeans.fr/img/podcast/e113761f-a5db-4bf2-80db-b99fe2448d10.jpg',
+ 756,
+ '2026-03-18'
),
(
'c1000000-0000-0000-0000-000000000005',
- 'a1000000-0000-0000-0000-000000000004',
- 'Creer un preset d''equalisation pour vos podcasts',
- 'Une methode pour creer un traitement audio reproductible pour vos episodes de podcast. Apprenez a standardiser la qualite sonore de vos productions.',
- 'https://archive.org/download/hpr3973/hpr3973.mp3',
- 1019,
- NULL,
- 298,
- NOW() - INTERVAL '4 days'
+ 'a1000000-0000-0000-0000-000000000001',
+ 'Un sosie presque parfait avec Laurent Lafitte',
+ 'L''acteur tout juste cesairse Laurent Lafitte se prete au jeu avec humour, charme et secrets inattendus.',
+ 'https://audio.audiomeans.fr/file/jxBCsdLAGN/e38e2aaa-4e2d-4581-981f-50423256b801.mp3',
+ 2233,
+ 'https://static.audiomeans.fr/img/podcast/e113761f-a5db-4bf2-80db-b99fe2448d10.jpg',
+ 654,
+ '2026-03-04'
),
(
'c1000000-0000-0000-0000-000000000006',
- 'a1000000-0000-0000-0000-000000000004',
- 'Decouverte de USBimager',
- 'Pourquoi vous devriez utiliser USBimager. Introduction a cet outil pratique pour ecrire des images sur des peripheriques de stockage en toute simplicite.',
- 'https://archive.org/download/hpr3974/hpr3974.mp3',
- 1019,
- NULL,
- 89,
- NOW() - INTERVAL '10 days'
+ 'a1000000-0000-0000-0000-000000000001',
+ 'Elementaire mon cher Augustin Trapenard',
+ 'Le journaliste Augustin Trapenard et Alice menent l''enquete sur la litterature et la culture en detectives amateurs.',
+ 'https://audio.audiomeans.fr/file/jxBCsdLAGN/4f41d0c9-88b9-4b54-a4e6-2fae3076e74c.mp3',
+ 4591,
+ 'https://static.audiomeans.fr/img/podcast/e113761f-a5db-4bf2-80db-b99fe2448d10.jpg',
+ 1876,
+ '2026-02-25'
),
(
'c1000000-0000-0000-0000-000000000007',
- 'a1000000-0000-0000-0000-000000000003',
- 'Mesa Verde : journal de voyage Colorado',
- 'Notre recit d''une journee de visite a Mesa Verde, Colorado. Nous etions la pour un mariage et avons profite pour explorer ce site remarquable.',
- 'https://archive.org/download/hpr3975/hpr3975.mp3',
- 730,
- NULL,
- 321,
- NOW() - INTERVAL '1 day'
+ 'a1000000-0000-0000-0000-000000000001',
+ 'Les baddies font du ski avec Lolo Zouai',
+ 'L''artiste franco-americaine Lolo Zouai et Alice parlent musique, identite et culture sur les pistes de ski.',
+ 'https://audio.audiomeans.fr/file/jxBCsdLAGN/8a2bcffc-f767-4132-9403-b8c4be072be4.mp3',
+ 3161,
+ 'https://static.audiomeans.fr/img/podcast/e113761f-a5db-4bf2-80db-b99fe2448d10.jpg',
+ 543,
+ '2026-02-18'
),
(
'c1000000-0000-0000-0000-000000000008',
- 'a1000000-0000-0000-0000-000000000004',
- 'L''evolution de l''outil Capture d''ecran Windows',
- 'KD retrace l''histoire de l''evolution des outils de capture d''ecran sous Windows, du Print Screen au Snipping Tool moderne.',
- 'https://archive.org/download/hpr3976/hpr3976.mp3',
- 429,
- NULL,
- 134,
- NOW() - INTERVAL '6 days'
+ 'a1000000-0000-0000-0000-000000000001',
+ 'La cavalerie arrive avec Myd',
+ 'Episode live au festival Spotify RADAR avec le DJ Myd. Musique, fun et bonne humeur au programme.',
+ 'https://audio.audiomeans.fr/file/jxBCsdLAGN/2ce710d2-4b18-41da-b165-1a2b0fdf8041.mp3',
+ 2371,
+ 'https://static.audiomeans.fr/img/podcast/e113761f-a5db-4bf2-80db-b99fe2448d10.jpg',
+ 412,
+ '2026-02-04'
),
(
'c1000000-0000-0000-0000-000000000009',
- 'a1000000-0000-0000-0000-000000000005',
- 'Les trolls du droit d''auteur Creative Commons',
- 'Discussion sur Pixsy, un nouveau type de troll du droit d''auteur qui cible les utilisateurs de Creative Commons. Lecture et analyse d''un article de fond sur ce sujet preoccupant.',
- 'https://archive.org/download/Cory_Doctorow_Podcast_412/Cory_Doctorow_Podcast_412_-_A_Bug_in_Early_Creative_Commons_Licenses.mp3',
- 2441,
- NULL,
- 567,
- NOW() - INTERVAL '8 days'
+ 'a1000000-0000-0000-0000-000000000001',
+ 'Elfes in black avec Kiddy Smile',
+ 'Le DJ et producteur Kiddy Smile se livre avec franchise sur la musique, ses experiences et ses secrets.',
+ 'https://audio.audiomeans.fr/file/jxBCsdLAGN/71e76ea0-64bf-4ff4-81f2-f1aefa1d0519.mp3',
+ 4411,
+ 'https://static.audiomeans.fr/img/podcast/e113761f-a5db-4bf2-80db-b99fe2448d10.jpg',
+ 789,
+ '2026-01-28'
+ ),
+ (
+ 'c1000000-0000-0000-0000-000000000010',
+ 'a1000000-0000-0000-0000-000000000001',
+ 'Dans la foret avec Mika',
+ 'Le chanteur Mika revele des histoires sur sa carriere, ses rencontres celebres et ses secrets de famille.',
+ 'https://audio.audiomeans.fr/file/jxBCsdLAGN/054a325f-9887-4b4d-9982-a76a2ac03c20.mp3',
+ 3180,
+ 'https://static.audiomeans.fr/img/podcast/e113761f-a5db-4bf2-80db-b99fe2448d10.jpg',
+ 1567,
+ '2026-01-14'
);
--- 4. Associate tags to podcasts
+-- 5. Podcasts — Small Talk (Konbini)
+
+INSERT INTO public.podcasts (id, creator_id, title, description, audio_url, duration_seconds, cover_url, plays_count, created_at) VALUES
+ (
+ 'c2000000-0000-0000-0000-000000000001',
+ 'a1000000-0000-0000-0000-000000000002',
+ 'Clara Morgane et les grands-meres en laisse',
+ 'David explore des sujets inattendus avec Clara Morgane. Revelations sur les poils de corps et introspection personnelle.',
+ 'https://audio.audiomeans.fr/file/jxBCsdLAGN/25cb9c26-6faf-416a-9588-432debd1519d.mp3',
+ 4646,
+ 'https://static.audiomeans.fr/img/episode/f6c68dc9-191e-4565-bb1e-311efac91042.jpg',
+ 3421,
+ '2026-04-08'
+ ),
+ (
+ 'c2000000-0000-0000-0000-000000000002',
+ 'a1000000-0000-0000-0000-000000000002',
+ 'Francois Damiens et le complet slip-basket',
+ 'Francois Damiens tente d''esquiver les questions pieges de David dans un episode hilarant et imprevisible.',
+ 'https://audio.audiomeans.fr/file/jxBCsdLAGN/c74aa7df-11f4-4e43-88eb-af5656d9e942.mp3',
+ 3448,
+ 'https://static.audiomeans.fr/img/episode/6ebe8e28-344e-43c3-9aa6-726229e5d441.jpg',
+ 2876,
+ '2026-03-25'
+ ),
+ (
+ 'c2000000-0000-0000-0000-000000000003',
+ 'a1000000-0000-0000-0000-000000000002',
+ 'Caballero & JeanJass & la pipeline d''eau minerale',
+ 'Le duo de rappeurs belges se prete au jeu des questions absurdes. Passoire a connards pleinement fonctionnelle.',
+ 'https://audio.audiomeans.fr/file/jxBCsdLAGN/aeb16e4b-9417-485a-9be9-2f3a9ee6191a.mp3',
+ 4906,
+ 'https://static.audiomeans.fr/img/episode/5c363325-7e7d-47f9-9d05-9545f48a14c7.jpg',
+ 1987,
+ '2026-03-18'
+ ),
+ (
+ 'c2000000-0000-0000-0000-000000000004',
+ 'a1000000-0000-0000-0000-000000000002',
+ 'Jeremy Ferrari et les vengeances actives',
+ 'On commence deep, on finit deep et on rigole au milieu. Jeremy Ferrari dans toute sa splendeur.',
+ 'https://audio.audiomeans.fr/file/jxBCsdLAGN/0b4967c5-bf51-4006-a9fc-86a2b54b7f48.mp3',
+ 4788,
+ 'https://static.audiomeans.fr/img/episode/126423ee-f543-41d3-a1cb-2432dabe7b0b.jpg',
+ 4532,
+ '2026-03-04'
+ ),
+ (
+ 'c2000000-0000-0000-0000-000000000005',
+ 'a1000000-0000-0000-0000-000000000002',
+ 'Tayc et le reculage de dents',
+ 'Le roi de l''afrolove fait des revelations choc. Confessions surprenantes de l''artiste Afrobeats.',
+ 'https://audio.audiomeans.fr/file/jxBCsdLAGN/7c54e552-e242-4dc2-a43d-07c0aa08080b.mp3',
+ 4708,
+ 'https://static.audiomeans.fr/img/episode/df2f2dff-6b32-441b-9f99-8aa13590437a.png',
+ 1654,
+ '2026-02-26'
+ ),
+ (
+ 'c2000000-0000-0000-0000-000000000006',
+ 'a1000000-0000-0000-0000-000000000002',
+ 'Cyprien et le palmares des sueurs',
+ 'Deux personnes dont les zones du corps se rejoignent par les poils. Un episode mythique avec le youtubeur.',
+ 'https://audio.audiomeans.fr/file/jxBCsdLAGN/5d21ba37-18a4-43b9-8277-d1b29fcfd421.mp3',
+ 3365,
+ 'https://static.audiomeans.fr/img/episode/1acc2e6c-cf8b-4608-8eb7-a98cd5f81fae.jpg',
+ 5234,
+ '2026-02-18'
+ ),
+ (
+ 'c2000000-0000-0000-0000-000000000007',
+ 'a1000000-0000-0000-0000-000000000002',
+ 'Pierre Niney et le reseau tentaculaire de baby-sitting',
+ 'Que Zeus benisse, Pierre Niney est dans Small Talk. L''acteur revele ses reseaux insoupconnes.',
+ 'https://audio.audiomeans.fr/file/jxBCsdLAGN/493d9e44-7f97-4cf3-907a-701a83933e09.mp3',
+ 3663,
+ 'https://static.audiomeans.fr/img/episode/835154f2-adfe-4942-8a40-5f4e6c102b08.jpg',
+ 3876,
+ '2026-01-21'
+ ),
+ (
+ 'c2000000-0000-0000-0000-000000000008',
+ 'a1000000-0000-0000-0000-000000000002',
+ 'Julien Dore et la matification cezanesque',
+ 'David decouvre la raison de sa depression vieille de 20 ans. Un episode introspectif et touchant avec Julien Dore.',
+ 'https://audio.audiomeans.fr/file/jxBCsdLAGN/4089b170-240e-4073-bbec-72392abc1075.mp3',
+ 5127,
+ 'https://static.audiomeans.fr/img/episode/8b0163a4-6ecf-498a-b597-8166cde8a1fd.jpg',
+ 6543,
+ '2026-01-07'
+ ),
+ (
+ 'c2000000-0000-0000-0000-000000000009',
+ 'a1000000-0000-0000-0000-000000000002',
+ 'Episode de Noel avec Mika',
+ 'Mika a un cousin exorciste et un dealer de Guignols. L''episode special Noel le plus dingue de Small Talk.',
+ 'https://audio.audiomeans.fr/file/jxBCsdLAGN/0385fc90-d888-4776-b4e6-95199cad49d1.mp3',
+ 5096,
+ 'https://static.audiomeans.fr/img/episode/b4ed8cea-4d48-4825-9712-f6315a8b7872.jpg',
+ 7821,
+ '2025-12-24'
+ ),
+ (
+ 'c2000000-0000-0000-0000-000000000010',
+ 'a1000000-0000-0000-0000-000000000002',
+ 'Rim''K et le bolossage de la Foire du Trone',
+ 'Caler ou coffrer ? Telle est la question. Rim''K raconte ses aventures de jeunesse et ses choix de vie.',
+ 'https://audio.audiomeans.fr/file/jxBCsdLAGN/f5d1d1dd-ad64-40aa-bab9-270bf0112dd9.mp3',
+ 4833,
+ 'https://static.audiomeans.fr/img/episode/df201cf6-c681-40b5-b3d2-7642233ef830.jpg',
+ 2345,
+ '2025-12-10'
+ ),
+ (
+ 'c2000000-0000-0000-0000-000000000011',
+ 'a1000000-0000-0000-0000-000000000002',
+ 'Fabrice Eboue et la guerre du pourboire',
+ 'Fabrice Eboue nous apprend a maitriser l''art du tips. Etiquette, differences culturelles et anecdotes.',
+ 'https://audio.audiomeans.fr/file/jxBCsdLAGN/af20ed5c-c3ff-452d-a92e-77a4c1327eaa.mp3',
+ 4237,
+ 'https://static.audiomeans.fr/img/episode/8fd10e53-385b-4be5-ab1e-919dc0ffef28.jpg',
+ 1987,
+ '2025-12-03'
+ );
+
+-- 6. Associate tags to podcasts
+
INSERT INTO public.podcast_tags (podcast_id, tag_id) VALUES
- -- Creative Commons Search Engine
- ('c1000000-0000-0000-0000-000000000001', 'b1000000-0000-0000-0000-000000000002'), -- Open Source
- ('c1000000-0000-0000-0000-000000000001', 'b1000000-0000-0000-0000-000000000001'), -- Technologie
- -- Alpha Centauri
- ('c1000000-0000-0000-0000-000000000002', 'b1000000-0000-0000-0000-000000000003'), -- Jeux Video
- ('c1000000-0000-0000-0000-000000000002', 'b1000000-0000-0000-0000-000000000004'), -- Tutoriel
- -- Comment se faire des amis
- ('c1000000-0000-0000-0000-000000000003', 'b1000000-0000-0000-0000-000000000008'), -- Vie Quotidienne
- ('c1000000-0000-0000-0000-000000000003', 'b1000000-0000-0000-0000-000000000005'), -- Culture
- -- Thunderbird
- ('c1000000-0000-0000-0000-000000000004', 'b1000000-0000-0000-0000-000000000007'), -- Productivite
- ('c1000000-0000-0000-0000-000000000004', 'b1000000-0000-0000-0000-000000000001'), -- Technologie
- -- Equalisation podcast
- ('c1000000-0000-0000-0000-000000000005', 'b1000000-0000-0000-0000-000000000012'), -- Podcasting
- ('c1000000-0000-0000-0000-000000000005', 'b1000000-0000-0000-0000-000000000004'), -- Tutoriel
- -- USBimager
- ('c1000000-0000-0000-0000-000000000006', 'b1000000-0000-0000-0000-000000000011'), -- Linux
- ('c1000000-0000-0000-0000-000000000006', 'b1000000-0000-0000-0000-000000000002'), -- Open Source
- -- Mesa Verde
- ('c1000000-0000-0000-0000-000000000007', 'b1000000-0000-0000-0000-000000000006'), -- Voyage
- ('c1000000-0000-0000-0000-000000000007', 'b1000000-0000-0000-0000-000000000005'), -- Culture
- -- Snipping Tool
- ('c1000000-0000-0000-0000-000000000008', 'b1000000-0000-0000-0000-000000000010'), -- Windows
- ('c1000000-0000-0000-0000-000000000008', 'b1000000-0000-0000-0000-000000000001'), -- Technologie
- -- Cory Doctorow - Copyright trolls
- ('c1000000-0000-0000-0000-000000000009', 'b1000000-0000-0000-0000-000000000009'), -- Droit Numerique
- ('c1000000-0000-0000-0000-000000000009', 'b1000000-0000-0000-0000-000000000002'); -- Open Source
+ -- Alice Underground
+ ('c1000000-0000-0000-0000-000000000001', 'b1000000-0000-0000-0000-000000000001'), -- Talk Show
+ ('c1000000-0000-0000-0000-000000000001', 'b1000000-0000-0000-0000-000000000003'), -- Culture
+ ('c1000000-0000-0000-0000-000000000002', 'b1000000-0000-0000-0000-000000000005'), -- Cinema
+ ('c1000000-0000-0000-0000-000000000002', 'b1000000-0000-0000-0000-000000000007'), -- Societe
+ ('c1000000-0000-0000-0000-000000000003', 'b1000000-0000-0000-0000-000000000008'), -- Rap
+ ('c1000000-0000-0000-0000-000000000003', 'b1000000-0000-0000-0000-000000000010'), -- Interview
+ ('c1000000-0000-0000-0000-000000000004', 'b1000000-0000-0000-0000-000000000002'), -- Comedie
+ ('c1000000-0000-0000-0000-000000000004', 'b1000000-0000-0000-0000-000000000007'), -- Societe
+ ('c1000000-0000-0000-0000-000000000005', 'b1000000-0000-0000-0000-000000000005'), -- Cinema
+ ('c1000000-0000-0000-0000-000000000005', 'b1000000-0000-0000-0000-000000000009'), -- Humour
+ ('c1000000-0000-0000-0000-000000000006', 'b1000000-0000-0000-0000-000000000003'), -- Culture
+ ('c1000000-0000-0000-0000-000000000006', 'b1000000-0000-0000-0000-000000000010'), -- Interview
+ ('c1000000-0000-0000-0000-000000000007', 'b1000000-0000-0000-0000-000000000004'), -- Musique
+ ('c1000000-0000-0000-0000-000000000007', 'b1000000-0000-0000-0000-000000000011'), -- French Touch
+ ('c1000000-0000-0000-0000-000000000008', 'b1000000-0000-0000-0000-000000000004'), -- Musique
+ ('c1000000-0000-0000-0000-000000000008', 'b1000000-0000-0000-0000-000000000011'), -- French Touch
+ ('c1000000-0000-0000-0000-000000000009', 'b1000000-0000-0000-0000-000000000004'), -- Musique
+ ('c1000000-0000-0000-0000-000000000009', 'b1000000-0000-0000-0000-000000000001'), -- Talk Show
+ ('c1000000-0000-0000-0000-000000000010', 'b1000000-0000-0000-0000-000000000004'), -- Musique
+ ('c1000000-0000-0000-0000-000000000010', 'b1000000-0000-0000-0000-000000000010'), -- Interview
+ -- Small Talk
+ ('c2000000-0000-0000-0000-000000000001', 'b1000000-0000-0000-0000-000000000009'), -- Humour
+ ('c2000000-0000-0000-0000-000000000001', 'b1000000-0000-0000-0000-000000000010'), -- Interview
+ ('c2000000-0000-0000-0000-000000000002', 'b1000000-0000-0000-0000-000000000002'), -- Comedie
+ ('c2000000-0000-0000-0000-000000000002', 'b1000000-0000-0000-0000-000000000009'), -- Humour
+ ('c2000000-0000-0000-0000-000000000003', 'b1000000-0000-0000-0000-000000000008'), -- Rap
+ ('c2000000-0000-0000-0000-000000000003', 'b1000000-0000-0000-0000-000000000009'), -- Humour
+ ('c2000000-0000-0000-0000-000000000004', 'b1000000-0000-0000-0000-000000000002'), -- Comedie
+ ('c2000000-0000-0000-0000-000000000004', 'b1000000-0000-0000-0000-000000000001'), -- Talk Show
+ ('c2000000-0000-0000-0000-000000000005', 'b1000000-0000-0000-0000-000000000004'), -- Musique
+ ('c2000000-0000-0000-0000-000000000005', 'b1000000-0000-0000-0000-000000000010'), -- Interview
+ ('c2000000-0000-0000-0000-000000000006', 'b1000000-0000-0000-0000-000000000009'), -- Humour
+ ('c2000000-0000-0000-0000-000000000006', 'b1000000-0000-0000-0000-000000000007'), -- Societe
+ ('c2000000-0000-0000-0000-000000000007', 'b1000000-0000-0000-0000-000000000005'), -- Cinema
+ ('c2000000-0000-0000-0000-000000000007', 'b1000000-0000-0000-0000-000000000010'), -- Interview
+ ('c2000000-0000-0000-0000-000000000008', 'b1000000-0000-0000-0000-000000000004'), -- Musique
+ ('c2000000-0000-0000-0000-000000000008', 'b1000000-0000-0000-0000-000000000003'), -- Culture
+ ('c2000000-0000-0000-0000-000000000009', 'b1000000-0000-0000-0000-000000000004'), -- Musique
+ ('c2000000-0000-0000-0000-000000000009', 'b1000000-0000-0000-0000-000000000012'), -- Noel
+ ('c2000000-0000-0000-0000-000000000010', 'b1000000-0000-0000-0000-000000000008'), -- Rap
+ ('c2000000-0000-0000-0000-000000000010', 'b1000000-0000-0000-0000-000000000001'), -- Talk Show
+ ('c2000000-0000-0000-0000-000000000011', 'b1000000-0000-0000-0000-000000000002'), -- Comedie
+ ('c2000000-0000-0000-0000-000000000011', 'b1000000-0000-0000-0000-000000000009'); -- Humour
+
+-- 7. Likes
--- 5. Add some likes
INSERT INTO public.likes (user_id, podcast_id) VALUES
- ('a1000000-0000-0000-0000-000000000001', 'c1000000-0000-0000-0000-000000000003'),
- ('a1000000-0000-0000-0000-000000000001', 'c1000000-0000-0000-0000-000000000009'),
+ -- Alice likes Small Talk episodes
+ ('a1000000-0000-0000-0000-000000000001', 'c2000000-0000-0000-0000-000000000004'),
+ ('a1000000-0000-0000-0000-000000000001', 'c2000000-0000-0000-0000-000000000008'),
+ ('a1000000-0000-0000-0000-000000000001', 'c2000000-0000-0000-0000-000000000009'),
+ -- David likes Alice Underground episodes
('a1000000-0000-0000-0000-000000000002', 'c1000000-0000-0000-0000-000000000001'),
- ('a1000000-0000-0000-0000-000000000002', 'c1000000-0000-0000-0000-000000000007'),
- ('a1000000-0000-0000-0000-000000000002', 'c1000000-0000-0000-0000-000000000009'),
- ('a1000000-0000-0000-0000-000000000003', 'c1000000-0000-0000-0000-000000000005'),
- ('a1000000-0000-0000-0000-000000000003', 'c1000000-0000-0000-0000-000000000003'),
- ('a1000000-0000-0000-0000-000000000004', 'c1000000-0000-0000-0000-000000000001'),
+ ('a1000000-0000-0000-0000-000000000002', 'c1000000-0000-0000-0000-000000000006'),
+ ('a1000000-0000-0000-0000-000000000002', 'c1000000-0000-0000-0000-000000000010'),
+ -- Sara likes various
+ ('a1000000-0000-0000-0000-000000000003', 'c1000000-0000-0000-0000-000000000002'),
+ ('a1000000-0000-0000-0000-000000000003', 'c2000000-0000-0000-0000-000000000007'),
+ ('a1000000-0000-0000-0000-000000000003', 'c2000000-0000-0000-0000-000000000006'),
+ -- Bigflo likes rap episodes
+ ('a1000000-0000-0000-0000-000000000004', 'c2000000-0000-0000-0000-000000000003'),
+ ('a1000000-0000-0000-0000-000000000004', 'c2000000-0000-0000-0000-000000000010'),
('a1000000-0000-0000-0000-000000000004', 'c1000000-0000-0000-0000-000000000003'),
- ('a1000000-0000-0000-0000-000000000004', 'c1000000-0000-0000-0000-000000000007'),
- ('a1000000-0000-0000-0000-000000000005', 'c1000000-0000-0000-0000-000000000003'),
- ('a1000000-0000-0000-0000-000000000005', 'c1000000-0000-0000-0000-000000000005'),
- ('a1000000-0000-0000-0000-000000000005', 'c1000000-0000-0000-0000-000000000007');
+ -- Mika likes his own episodes and others
+ ('a1000000-0000-0000-0000-000000000005', 'c1000000-0000-0000-0000-000000000006'),
+ ('a1000000-0000-0000-0000-000000000005', 'c2000000-0000-0000-0000-000000000008'),
+ ('a1000000-0000-0000-0000-000000000005', 'c2000000-0000-0000-0000-000000000001');
+
+-- 8. Comments
--- 6. Add some comments
INSERT INTO public.comments (id, user_id, podcast_id, content, created_at) VALUES
- ('d1000000-0000-0000-0000-000000000001', 'a1000000-0000-0000-0000-000000000002', 'c1000000-0000-0000-0000-000000000001', 'Super episode ! Je ne connaissais pas Openverse, merci pour la decouverte.', NOW() - INTERVAL '1 day'),
- ('d1000000-0000-0000-0000-000000000002', 'a1000000-0000-0000-0000-000000000003', 'c1000000-0000-0000-0000-000000000001', 'Tres utile pour trouver du contenu libre. Je recommande aussi ccMixter pour la musique.', NOW() - INTERVAL '12 hours'),
- ('d1000000-0000-0000-0000-000000000003', 'a1000000-0000-0000-0000-000000000001', 'c1000000-0000-0000-0000-000000000003', 'J''adore ce format de discussion decontractee. On s''y retrouve tous un peu !', NOW() - INTERVAL '2 days'),
- ('d1000000-0000-0000-0000-000000000004', 'a1000000-0000-0000-0000-000000000004', 'c1000000-0000-0000-0000-000000000003', 'Tellement vrai ce qui est dit sur les communautes en ligne. Bel episode.', NOW() - INTERVAL '2 days'),
- ('d1000000-0000-0000-0000-000000000005', 'a1000000-0000-0000-0000-000000000005', 'c1000000-0000-0000-0000-000000000009', 'Ce sujet me tient a coeur. Les trolls du copyright sont un vrai probleme pour le libre.', NOW() - INTERVAL '7 days'),
- ('d1000000-0000-0000-0000-000000000006', 'a1000000-0000-0000-0000-000000000001', 'c1000000-0000-0000-0000-000000000005', 'Exactement ce qu''il me fallait pour ameliorer le son de mon podcast. Merci !', NOW() - INTERVAL '3 days'),
- ('d1000000-0000-0000-0000-000000000007', 'a1000000-0000-0000-0000-000000000002', 'c1000000-0000-0000-0000-000000000007', 'Mesa Verde a l''air magnifique. Ca donne envie de voyager !', NOW() - INTERVAL '20 hours'),
- ('d1000000-0000-0000-0000-000000000008', 'a1000000-0000-0000-0000-000000000003', 'c1000000-0000-0000-0000-000000000002', 'Alpha Centauri, quel classique ! J''attends la partie 2 avec impatience.', NOW() - INTERVAL '4 days');
+ ('d1000000-0000-0000-0000-000000000001', 'a1000000-0000-0000-0000-000000000003', 'c1000000-0000-0000-0000-000000000002', 'Merci Alice pour cet episode, ca fait du bien d''entendre des conversations aussi libres !', NOW() - INTERVAL '1 day'),
+ ('d1000000-0000-0000-0000-000000000002', 'a1000000-0000-0000-0000-000000000004', 'c1000000-0000-0000-0000-000000000003', 'Le passage sur le business est tellement vrai. Bigflo c''est un vrai patron.', NOW() - INTERVAL '2 days'),
+ ('d1000000-0000-0000-0000-000000000003', 'a1000000-0000-0000-0000-000000000002', 'c1000000-0000-0000-0000-000000000006', 'Trapenard en detective amateur c''est exactement le contenu dont on avait besoin.', NOW() - INTERVAL '3 days'),
+ ('d1000000-0000-0000-0000-000000000004', 'a1000000-0000-0000-0000-000000000001', 'c2000000-0000-0000-0000-000000000004', 'Jeremy Ferrari est incroyable dans cet episode. David sait poser les bonnes questions !', NOW() - INTERVAL '1 day'),
+ ('d1000000-0000-0000-0000-000000000005', 'a1000000-0000-0000-0000-000000000005', 'c2000000-0000-0000-0000-000000000009', 'Mon episode prefere ! Le cousin exorciste m''a tue de rire.', NOW() - INTERVAL '5 days'),
+ ('d1000000-0000-0000-0000-000000000006', 'a1000000-0000-0000-0000-000000000003', 'c2000000-0000-0000-0000-000000000007', 'Pierre Niney est tellement drole quand il parle de baby-sitting. Chef d''oeuvre.', NOW() - INTERVAL '4 days'),
+ ('d1000000-0000-0000-0000-000000000007', 'a1000000-0000-0000-0000-000000000004', 'c2000000-0000-0000-0000-000000000003', 'Caballero & JeanJass dans Small Talk c''est le crossover qu''on attendait tous.', NOW() - INTERVAL '2 days'),
+ ('d1000000-0000-0000-0000-000000000008', 'a1000000-0000-0000-0000-000000000002', 'c1000000-0000-0000-0000-000000000010', 'Mika est un conteur ne. L''episode dans la foret est magique.', NOW() - INTERVAL '6 days'),
+ ('d1000000-0000-0000-0000-000000000009', 'a1000000-0000-0000-0000-000000000001', 'c2000000-0000-0000-0000-000000000008', 'L''episode avec Julien Dore m''a fait pleurer et rire en meme temps. Bravo David.', NOW() - INTERVAL '3 days'),
+ ('d1000000-0000-0000-0000-000000000010', 'a1000000-0000-0000-0000-000000000005', 'c2000000-0000-0000-0000-000000000006', 'Cyprien dans Small Talk, on en redemande ! Le palmares des sueurs est legendaire.', NOW() - INTERVAL '7 days');
+
+-- 9. Follows
--- 7. Add some follows
INSERT INTO public.follows (follower_id, following_id) VALUES
- ('a1000000-0000-0000-0000-000000000001', 'a1000000-0000-0000-0000-000000000005'),
- ('a1000000-0000-0000-0000-000000000002', 'a1000000-0000-0000-0000-000000000001'),
- ('a1000000-0000-0000-0000-000000000002', 'a1000000-0000-0000-0000-000000000003'),
- ('a1000000-0000-0000-0000-000000000003', 'a1000000-0000-0000-0000-000000000002'),
- ('a1000000-0000-0000-0000-000000000003', 'a1000000-0000-0000-0000-000000000005'),
- ('a1000000-0000-0000-0000-000000000004', 'a1000000-0000-0000-0000-000000000001'),
- ('a1000000-0000-0000-0000-000000000004', 'a1000000-0000-0000-0000-000000000002'),
- ('a1000000-0000-0000-0000-000000000005', 'a1000000-0000-0000-0000-000000000003');
+ ('a1000000-0000-0000-0000-000000000002', 'a1000000-0000-0000-0000-000000000001'), -- David suit Alice
+ ('a1000000-0000-0000-0000-000000000001', 'a1000000-0000-0000-0000-000000000002'), -- Alice suit David
+ ('a1000000-0000-0000-0000-000000000003', 'a1000000-0000-0000-0000-000000000001'), -- Sara suit Alice
+ ('a1000000-0000-0000-0000-000000000003', 'a1000000-0000-0000-0000-000000000002'), -- Sara suit David
+ ('a1000000-0000-0000-0000-000000000004', 'a1000000-0000-0000-0000-000000000001'), -- Bigflo suit Alice
+ ('a1000000-0000-0000-0000-000000000004', 'a1000000-0000-0000-0000-000000000002'), -- Bigflo suit David
+ ('a1000000-0000-0000-0000-000000000005', 'a1000000-0000-0000-0000-000000000001'), -- Mika suit Alice
+ ('a1000000-0000-0000-0000-000000000005', 'a1000000-0000-0000-0000-000000000002'); -- Mika suit David