README.md 4.99 KB
Newer Older
Jordan Petridis's avatar
Jordan Petridis committed
1
# GNOME Podcasts
Jordan Petridis's avatar
Jordan Petridis committed
2

Jordan Petridis's avatar
Jordan Petridis committed
3 4
### A Podcast application for GNOME.
Listen to your favorite podcasts, right from your desktop.
Jordan Petridis's avatar
Jordan Petridis committed
5

6 7 8
![Episodes view](./screenshots/home_view.png)
![Shows view](./screenshots/shows_view.png)
![Show widget](./screenshots/show_widget.png)
9

Jordan Petridis's avatar
Jordan Petridis committed
10
## Available on Flathub
11

Jordan Petridis's avatar
Jordan Petridis committed
12
[![Get it from Flathub!](https://flathub.org/assets/badges/flathub-badge-en.svg)](https://flathub.org/apps/details/org.gnome.Podcasts)
13

14
## Quick start
15

16
GNOME Podcasts can be built and run with [GNOME Builder][builder] >= 3.28.
17
You can get Builder from [here][get_builder].
18

19 20 21 22 23 24 25 26
You will also need to install the rust-stable extension from flathub.

```sh
flatpak install --user flathub org.freedesktop.Sdk.Extension.rust-stable//20.08
```

Then from Builder, just clone the repo and hit the run button!

Tobias Bernard's avatar
Tobias Bernard committed
27
## Broken Feeds
28

Jordan Petridis's avatar
Jordan Petridis committed
29
Found a feed that does not work in GNOME Podcasts?
30
Please [open an issue][new_issue] and choose the `BrokenFeed` template so we will know and fix it!
31 32 33

## Getting in Touch

Jordan Petridis's avatar
Jordan Petridis committed
34
If you have any questions regarding the use or development of GNOME Podcasts,
35
want to discuss design or simply hang out, please join us on our [irc][irc] or [matrix][matrix] channel.
36

Jordan Petridis's avatar
Jordan Petridis committed
37 38
## Building

39
### Flatpak
40

Matthew Martin's avatar
Matthew Martin committed
41
Flatpak is the recommended way of building and installing GNOME Podcasts.
Torkel Rogstad's avatar
Torkel Rogstad committed
42
Here are the dependencies you will need.
43

44
```sh
45
# Add flathub and the gnome-nightly repo
46
flatpak remote-add --user --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo
47
flatpak remote-add --user --if-not-exists gnome-nightly https://nightly.gnome.org/gnome-nightly.flatpakrepo
48

49 50 51 52
# Install the gnome-nightly Sdk and Platform runtime
flatpak install --user gnome-nightly org.gnome.Sdk org.gnome.Platform

# Install the required rust-stable extension from flathub
53
flatpak install --user flathub org.freedesktop.Sdk.Extension.rust-stable//20.08
54 55 56 57 58
```

To install the resulting flatpak you can do:

```bash
59
flatpak-builder --user --install --force-clean --repo=repo podcasts org.gnome.Podcasts.Devel.json
60
```
Jordan Petridis's avatar
Jordan Petridis committed
61

Matthew Martin's avatar
Matthew Martin committed
62
### Building from source
63 64

```sh
Jordan Petridis's avatar
Jordan Petridis committed
65
git clone https://gitlab.gnome.org/World/podcasts.git
Jordan Petridis's avatar
Jordan Petridis committed
66
cd gnome-podcasts/
67 68 69
meson --prefix=/usr build
ninja -C build
sudo ninja -C build install
70 71
```

Jordan Petridis's avatar
Jordan Petridis committed
72
#### Dependencies
Jordan Petridis's avatar
Jordan Petridis committed
73

74 75 76 77
* Rust stable 1.34 or later along with cargo.
* Gtk+ 3.24.11 or later
* Gstreamer 1.16 or later
* libhandy 0.0.11 or later
78
* Meson
79 80 81
* A network connection

Offline build are possible too, but [`cargo-vendor`][vendor] would have to be setup first
Jordan Petridis's avatar
Jordan Petridis committed
82

Jordan Petridis's avatar
Jordan Petridis committed
83 84
## Contributing

Matthew Martin's avatar
Matthew Martin committed
85
There are a lot of things yet to be done.
Jordan Petridis's avatar
Jordan Petridis committed
86 87 88

If you want to contribute, please check the [Contributions Guidelines][contribution-guidelines].

89
You can start by taking a look at [Issues][issues] or by opening a [New issue][new_issue].
Jordan Petridis's avatar
Jordan Petridis committed
90 91 92

There are also some minor tasks tagged with `TODO:` and `FIXME:` in the source code.

Jordan Petridis's avatar
Jordan Petridis committed
93
[contribution-guidelines]: https://gitlab.gnome.org/World/podcasts/blob/master/CONTRIBUTING.md
Jordan Petridis's avatar
Jordan Petridis committed
94

95 96
### Translations

97 98 99 100
Translation of this project takes place on the GNOME translation platform,
[Damned Lies](https://l10n.gnome.org/module/podcasts). For further
information on how to join a language team, or even to create one, please see
[GNOME Translation Project wiki page](https://wiki.gnome.org/TranslationProject).
101

Jordan Petridis's avatar
Jordan Petridis committed
102

103
## Overview
Jordan Petridis's avatar
Jordan Petridis committed
104

105 106
```sh
$ tree -d
107
├── screenshots         # png's used in the README.md
Jordan Petridis's avatar
Jordan Petridis committed
108
├── podcasts-data        # Storate related stuff, SQLite, XDG setup, RSS Parser.
109
│   ├── migrations      # Diesel SQL migrations.
110
│   │   └── ...
111 112 113
│   ├── src
│   └── tests
│       └── feeds       # Raw RSS Feeds used for tests.
Jordan Petridis's avatar
Jordan Petridis committed
114
├── podcasts-gtk         # The Gtk+ Client
115
│   ├── resources       # GResources folder
Jordan Petridis's avatar
Jordan Petridis committed
116
│   │   └── gtk         # Contains the glade.ui files.
117
│   └── src
118
│       ├── stacks      # Contains the gtk Stacks that hold all the different views.
119
│       └── widgets     # Contains custom widgets such as Show and Episode.
120
```
Jordan Petridis's avatar
Jordan Petridis committed
121

122
## A note about the project's name
123

124
The project used to be called Hammond, after Allan Moore's character [Evey Hammond][hammond] from the graphic novel V for Vendetta.
Jordan Petridis's avatar
Jordan Petridis committed
125
It was renamed to GNOME Podcasts on 2018/07/24 shortly before its first public release.
126 127 128

## Acknowledgments

Matthew Martin's avatar
Matthew Martin committed
129
GNOME Podcasts's design is heavily inspired by [GNOME Music][music] and [Vocal][vocal].
Jordan Petridis's avatar
Jordan Petridis committed
130

131
We also copied some elements from [GNOME News][news].
Jordan Petridis's avatar
Jordan Petridis committed
132

133
And almost the entirety of the build system is copied from the [Fractal][fractal] project.
134

Jordan Petridis's avatar
Jordan Petridis committed
135 136
[vendor]: https://github.com/alexcrichton/cargo-vendor
[irc]: irc://irc.gnome.org/#hammond
137
[matrix]: https://matrix.to/#/#gnome-podcasts:matrix.org
138 139 140 141 142 143 144 145 146
[flatpak_setup]: https://flatpak.org/setup/
[music]: https://wiki.gnome.org/Design/Apps/Music
[vocal]: http://vocalproject.net/
[news]: https://wiki.gnome.org/Design/Apps/Potential/News
[fractal]: https://gitlab.gnome.org/World/fractal
[hammond]: https://en.wikipedia.org/wiki/Evey_Hammond
[issues]: https://gitlab.gnome.org/World/podcasts/issues
[new_issue]: https://gitlab.gnome.org/World/podcasts/issues/new
[builder]: https://wiki.gnome.org/Apps/Builder
147
[get_builder]: https://wiki.gnome.org/Apps/Builder/Downloads