This commit is contained in:
afoucaultc 2026-08-09 21:51:58 +02:00
parent 35b0a52424
commit 2cebfe79bb
2 changed files with 28 additions and 58 deletions

View file

@ -1,21 +1,3 @@
--[[
feeds.lua menu "Abonnements YouTube / Twitch" pour mpv, rendu via uosc.
Lit deux CSV :
- le subscriptions.csv de Google Takeout
(col. 1 = ID de chaîne, col. 3 = nom de la chaîne)
- un twitch.csv maison (col. 1 = login Twitch, col. 2 = libellé, optionnelle)
Trois sources :
- Abonnements YouTube : dernières vidéos, via les flux RSS publics (curl)
- Parcourir une chaîne : catalogue d'une chaîne, via yt-dlp
- Twitch : chaînes suivies, lecture via streamlink
Aucune clé API n'est nécessaire.
Dépendances : uosc, curl, yt-dlp, streamlink.
Raccourci par défaut : alt+h
--]]
local utils = require("mp.utils")
local options = require("mp.options")
local msg = require("mp.msg")
@ -24,10 +6,12 @@ local o = {
youtube_csv = "~/nixos-config/dotfiles/mpv/youtube.csv",
twitch_csv = "~/nixos-config/dotfiles/mpv/twitch.csv",
key = "alt+h",
per_channel = 3, -- nb max de vidéos gardées par chaîne (flux RSS)
max_videos = 150, -- taille max de la liste des abonnements
channel_videos = 1000, -- nb de vidéos chargées en parcourant une chaîne
twitch_live_check = true, -- détection "en direct" (best-effort, sans clé API)
-- nombre de vidéos à charger
per_channel = 3,
max_videos = 150,
channel_videos = 400,
-- live check twitch (ne fonctionne pas pour le moment)
twitch_live_check = true,
}
options.read_options(o, "feeds")
@ -80,8 +64,6 @@ local function loading_menu(type_, title)
})
end
-- Renvoie les lignes du fichier, débarrassées d'un éventuel \r final (les
-- exports Takeout peuvent être en CRLF).
local function read_lines(path)
local lines = {}
local full = expand(path)
@ -116,9 +98,6 @@ end)
--------------------------------------------------- CSV YouTube
-- Format Takeout : ID,URL,Titre — l'URL ne contient jamais de virgule, donc
-- tout ce qui suit la 2e virgule est le titre (éventuellement entre
-- guillemets s'il contient lui-même une virgule).
local function read_youtube_channels()
local channels = {}
for _, line in ipairs(read_lines(o.youtube_csv)) do