packages feed

flashblast-0.0.4.0: src/FlashBlast/YouTubeDL.hs

{-# LANGUAGE TemplateHaskell #-}
module FlashBlast.YouTubeDL where

import Polysemy
import RIO
import Path
import qualified Turtle as S
import Path.Utils


data YouTubeDL m a where
  YouTubeDL' :: Text -> Path Rel File -> Text -> YouTubeDL m ()

makeSem ''YouTubeDL

interpretYouTubeDL :: Member (Embed IO) effs => Sem (YouTubeDL ': effs) a -> Sem effs a
interpretYouTubeDL = interpret \case
  YouTubeDL' x k f -> S.sh $ S.inproc "youtube-dl" [x, "-o", toFilePathText k, "-f", f] mempty