Skip to content

v0.2.3

Choose a tag to compare

@github-actions github-actions released this 05 Oct 10:10
· 120 commits to main since this release
Add Globoplay, with a tuner and a sign-in of its own

telesfor had one provider, TVP, and one tuner for all of its channels.

Globoplay is the second. It streams TV Globo, Futura and ge tv free to
a Globo account, so telesfor now signs in. The settings page shows a
code to enter on Globo's own site, and telesfor never sees a password.
The page says where the sign-in stands: waiting for the code, signed
in, a code that ran out, or a sign-in that Globo refused or no longer
accepts.

Each provider has a tuner of its own, with its own guide. TVP's stays
at the root, with the device ID Plex knows it by, and Globoplay's is
at /globo. Plex takes both as devices of one DVR and sorts their
channels by number, so Globoplay's are numbered from 1001. A channel
there keeps its number whichever of the others Globo lists.

The sign-in is kept in a bbolt database, as magnetowid keeps its
state, in a data directory: -data or TELESFOR_DATA. The packages keep
it in /var/lib/telesfor and the container in /data. bbolt is
telesfor's first dependency.

Globo blocks its channels outside Brazil. -globo-proxy sends the
sign-in, the guide and the streams through a proxy with a Brazilian
exit. TV Globo and its guide are the regional station's of that exit.

Every quality of a Globo stream has the sound in it, and ffmpeg, given
them all, downloads two. telesfor hands it the best one.

Playing these channels does not tell whether Globo still accepts the
sign-in, so telesfor asks when Plex fetches the guide.

The settings page changes something now, so it refuses requests that
come from another site. It still asks for no sign-in to telesfor.

- internal/provider/globo: the provider and its sign-in.
- internal/store: the database.
- internal/provider/provider.go: what a provider with accounts
  offers, a channel's place, and the proxy client of both providers.
- internal/tuner: a tuner for one provider, at a path, scanned again
  when an account's channels change.
- internal/web: the providers on the settings page, and the sign-in.
- cmd/telesfor/main.go: the store, both tuners and the new settings.
- Dockerfile, packaging/linux, .github/workflows/ci.yml: the data
  directory and the dependency.
- README.md, docs: Globoplay, the data directory and both tuners in
  Plex.