README.md 4.87 KB
Newer Older
1
# GNOME Podcasts
2

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
![episdes_view](./screenshots/home_view.png)
7 8
![shows_view](./screenshots/shows_view.png)
![show_widget](./screenshots/show_widget.png)
9

10
## Available on Flathub
11

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
Just clone the repo and hit the run button!
18

19
You can get Builder from [here][get_builder].
20

21
## Broken Feeds
22

23
Found a feed that does not work in GNOME Podcasts?
24
Please [open an issue][new_issue] and choose the `BrokenFeed` template so we will know and fix it!
25 26 27

## Getting in Touch

28
If you have any questions regarding the use or development of GNOME Podcasts,
29
want to discuss design or simply hang out, please join us on our [irc][irc] or [matrix][matrix] channel.
30

Jordan Petridis's avatar
Jordan Petridis committed
31 32
## Building

33
### Flatpak
34

35
Flatpak is the recommended way of building and installing GNOME Podcasts.
Torkel Rogstad's avatar
Torkel Rogstad committed
36
Here are the dependencies you will need.
37

38 39 40 41
```sh
# Add flathub and the gnome-nightly repo
flatpak remote-add --user --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo
flatpak remote-add --user --if-not-exists gnome-nightly https://sdk.gnome.org/gnome-nightly.flatpakrepo
42

43 44
# Install the gnome-nightly Sdk and Platform runtime
flatpak install --user gnome-nightly org.gnome.Sdk org.gnome.Platform
45

46
# Install the required rust-stable extension from flathub
47
flatpak install --user flathub org.freedesktop.Sdk.Extension.rust-stable//18.08
48 49 50 51 52
```

To install the resulting flatpak you can do:

```bash
53
flatpak-builder --user --install --force-clean --repo=repo podcasts org.gnome.Podcasts.json
54
```
55

56
### Building from source
57 58

```sh
Jordan Petridis's avatar
Jordan Petridis committed
59
git clone https://gitlab.gnome.org/World/podcasts.git
60
cd gnome-podcasts/
61 62 63
meson --prefix=/usr build
ninja -C build
sudo ninja -C build install
64 65
```

Jordan Petridis's avatar
Jordan Petridis committed
66
#### Dependencies
67

68
* Rust stable 1.27 or later along with cargo.
69
* Gtk+ 3.22 or later
70
* Gstreamer 1.12 or later
71
* libhandy
72
* Meson
73 74 75
* A network connection

Offline build are possible too, but [`cargo-vendor`][vendor] would have to be setup first
76

77 78
## Contributing

79
There are a lot of things yet to be done.
80 81 82

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

83
You can start by taking a look at [Issues][issues] or by opening a [New issue][new_issue].
84 85 86

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

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

89 90
### Translations

91 92 93 94
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).
95

96

97
## Overview
Jordan Petridis's avatar
Jordan Petridis committed
98

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

118
## A note about the project's name
119

120
The project used to be called Hammond, after Allan Moore's character [Evey Hammond][hammond] from the graphic novel V for Vendetta.
121
It was renamed to GNOME Podcasts on 2018/07/24 shortly before its first public release.
122 123 124

## Acknowledgments

125
GNOME Podcasts's design is heavily inspired by [GNOME Music][music] and [Vocal][vocal].
Jordan Petridis's avatar
Jordan Petridis committed
126

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

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

131 132
[vendor]: https://github.com/alexcrichton/cargo-vendor
[irc]: irc://irc.gnome.org/#hammond
133
[matrix]: https://matrix.to/#/#gnome-podcasts:matrix.org
134 135 136 137 138 139 140 141 142
[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
143
[get_builder]: https://wiki.gnome.org/Apps/Builder/Downloads