3 Home
adam edited this page 2023-04-06 15:16:22 -04:00

Basic Usage

  1. copy sample-appsettings.json, see configuration values
  2. ttrss will need:
    1. an app password. go to preferences -> preferences tab -> personal data / authentication blade -> app passwords tab. I think theoretically you could just use your own? don't, it's bad for security.
    2. api enabled. go to preferences -> preferences tab -> preferences blade -> under the general header -> look for a checkbox called Enable Api
    3. trigger labels. go to preferences -> labels tab. Call them whatever you want, I've been using dl plz, podcastify-yt plz, podcastify-attachment plz.
  3. you can add them manually, but I recommend you set up a filter (preferences -> filters tab as desired) to add them. see filters for some that helped me out.
  4. set up a job to run regularly.

what the program does, generally

  1. load configuration, log in, get a session token, all that good stuff.
  2. get your unread feeds, and loop through them.
  3. get the labels with respect to the feed. loop through each match of label (the text of it) to the action (see feedActions in configuration values) - meaning it can do multiple things for 1 feed
  4. check sponsorblock for segments. if check passed (just, not a 404), it moves forward. if not, waits this cycle out (and adds to the article note)
  5. performs each action - see internal commands for reference.
  6. if successful, removes the trigger labels.
  7. updates article note with status.
  8. logs out of ttrss
  9. moves files from ./tmp to the location configured.

configuration values

title value
BaseUri link to your ttrss instance' api, e.g., https://ttrss.example.com/api
username the username of your rss instance
password in ttrss, go to preferences, and make an app password
podcastTitlePrefix in case you don't want your podcast to be named after the feed title - e.g., LRR MTG has Tap Tap Concede. or if I wanted to listen to wisecrack's podcasts, they have a lot on one channel
onDoneCopy when done, move everything under ./tmp/ to onDoneCopy - practically speaking, that's 2 directories; "recent episodes" and "podcasts"
feedActions array of feed actions (see next)

feedActions

title value
triggerlabelCaption the text of the label that will trigger this action, e.g., "please download this from youtube"
command the internal name of the action to do, when triggered, e.g., dl. (see next, again)

internal commands

title value
dl download a video using yt-dlp. will wait until it sees sponsorblock segments, or give up after 45 minutes.
podcastifyYT like dl, but will rip the audio. stripping ads out of podcasts!
podcastifyAttachment assumes the article has an attachment which is a direct link to an audio file. converts to mp3.