Go to file
Ztec e54825bf02 Improve YouTube page feed detection
In order to be more resilient to YouTube URLs variation and
to address this feature_request: https://github.com/miniflux/v2/issues/2628
I've reworked a bit the way the YouTube feed extraction is done.

I've kept all the `FindSubscriptionsFromYouTube*` in order
to keep all the existing unit tests as-is ensuring little to no
regressions. By doing so, I had to call twice `youtubeURLIDExtractor`.
Small performance penalty for peace of mind in my opinion.

`youtubeURLIDExtractor` is made in a way only one kind
of page can be detected at a time. This mean I can
solve the "video in a playlist" feature_request
by prioritizing the playlist ID over the Video ID

Also, by using `url.Parse()` to get ids, it's safer
to url mangle and variation. The most common variation
being the `t=42` parameters that start the playback
at a given position. Previously, this kind of url
would not be detected as "YouTube URL".

I deliberately ignored the url parsing error
to keep previous behavior (skip the YouTube analysis and follow with the other analysis)

I also tried to keep debug logs the same as before as much as I could.

I manually tested all the YouTube cases (video,channel,playlist)
and they all work as expected except for the video. But this one
does not work either on main. The `meta` html tag that was searched for
does not seem to exist anymore.

fix: #2628
2024-06-13 20:18:47 -07:00
.devcontainer Add `FILTER_ENTRY_MAX_AGE_DAYS` config option to limit fetching all feed items 2024-03-20 02:58:53 +00:00
.github build(deps): bump golangci/golangci-lint-action from 5 to 6 2024-05-13 17:59:04 -07:00
client Enable go-critic linter and fix various issues detected 2024-03-17 13:52:34 -07:00
contrib Create default miniflux db 2023-12-31 10:54:53 -08:00
internal Improve YouTube page feed detection 2024-06-13 20:18:47 -07:00
packaging build(deps): bump library/alpine in /packaging/docker/alpine 2024-05-27 15:44:57 -07:00
.gitignore Add Bruno Miniflux API collection 2023-10-06 19:39:20 -07:00
ChangeLog Update ChangeLog 2024-04-27 15:06:28 -07:00
LICENSE First commit 2017-11-19 22:01:46 -08:00
Makefile packaging: fix failed to solve: arm64v8/golang:1.22-bookworm 2024-05-17 21:07:40 -07:00
Procfile Make latest changes compatible with Heroku 2018-08-29 20:50:36 -07:00
README.md Update contributor link and Godoc badge for client 2020-10-18 21:53:07 -07:00
SECURITY.md Update Security policy 2023-03-13 19:56:47 -07:00
go.mod build(deps): bump github.com/tdewolff/minify/v2 from 2.20.33 to 2.20.34 2024-06-11 20:24:20 -07:00
go.sum build(deps): bump github.com/tdewolff/minify/v2 from 2.20.33 to 2.20.34 2024-06-11 20:24:20 -07:00
main.go Move internal packages to an internal folder 2023-08-10 20:29:34 -07:00
miniflux.1 options: add FETCH_NEBULA_WATCH_TIME 2024-05-02 16:30:01 -07:00

README.md

Miniflux 2

Miniflux is a minimalist and opinionated feed reader:

  • Written in Go (Golang)
  • Works only with Postgresql
  • Doesn't use any ORM
  • Doesn't use any complicated framework
  • Use only modern vanilla Javascript (ES6 and Fetch API)
  • Single binary compiled statically without dependency
  • The number of features is voluntarily limited

It's simple, fast, lightweight and super easy to install.

Official website: https://miniflux.app

Documentation

The Miniflux documentation is available here: https://miniflux.app/docs/ (Man page)

Screenshots

Default theme:

Default theme

Dark theme when using keyboard navigation:

Dark theme

Credits