Skip to content

Commit

Permalink
Merge pull request #143 from madiele/main
Browse files Browse the repository at this point in the history
v1.1.1
  • Loading branch information
madiele authored Jan 19, 2024
2 parents 73a065f + 3395253 commit a916b29
Show file tree
Hide file tree
Showing 8 changed files with 37 additions and 23 deletions.
13 changes: 13 additions & 0 deletions .github/FUNDING.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
# These are supported funding model platforms

#github: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2]
#patreon: # Replace with a single Patreon username
#open_collective: # Replace with a single Open Collective username
#ko_fi: # Replace with a single Ko-fi username
#tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel
#community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
#liberapay: # Replace with a single Liberapay username
#issuehunt: # Replace with a single IssueHunt username
#otechie: # Replace with a single Otechie username
#lfx_crowdfunding: # Replace with a single LFX Crowdfunding project-name e.g., cloud-foundry
custom: ['https://www.buymeacoffee.com/madiele']
2 changes: 1 addition & 1 deletion .github/workflows/rust-clippy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ jobs:
continue-on-error: true

- name: Upload analysis results to GitHub
uses: github/codeql-action/upload-sarif@v2
uses: github/codeql-action/upload-sarif@v3
with:
sarif_file: rust-clippy-results.sarif
wait-for-processing: true
24 changes: 12 additions & 12 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -14,28 +14,28 @@ path = "src/main.rs"
[dependencies]
actix-rt = "=2.9.0"
google-youtube3 = "=5.0.3"
actix-web = "=4.4.0"
async-trait = "=0.1.74"
url = { version="=2.4.1", features = ["serde"]}
futures = "=0.3.29"
actix-web = "=4.4.1"
async-trait = "=0.1.77"
url = { version="=2.5.0", features = ["serde"]}
futures = "=0.3.30"
log = "=0.4.20"
regex = "=1.10.2"
reqwest = { version = "=0.11.22", features = ["json"] }
serde = "=1.0.192"
serde_json = "=1.0.108"
tokio = { version = "=1.34.0", features = ["macros", "process"]}
reqwest = { version = "=0.11.23", features = ["json"] }
serde = "=1.0.195"
serde_json = "=1.0.111"
tokio = { version = "=1.35.1", features = ["macros", "process"]}
uuid = { version= "=1.6.1", features = ["v4", "serde"]}
genawaiter = {version = "=0.99", features = ["futures03"] }
openssl = { version = "*", features = ["vendored"] } #this is here just to make cross-compiling work during github actions
rss = { version = "=2.0", features = ["serde"] }
eyre = "=0.6"
simple_logger = "=4.2"
redis = { version = "=0.23", features = ["tokio-comp"] }
simple_logger = "=4.3"
redis = { version = "=0.24", features = ["tokio-comp"] }
mime = "=0.3.17"
cached = { version = "=0.46.1", features = ["redis_tokio"] }
cached = { version = "=0.47.0", features = ["redis_tokio"] }
iso8601-duration = "=0.2.0"
chrono = "=0.4.31"
feed-rs = "=1.3.0"
feed-rs = "=1.4.0"

[dev-dependencies]
temp-env ={ version = "=0.3.6", features = ["async_closure"] }
Expand Down
4 changes: 2 additions & 2 deletions Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -46,10 +46,10 @@ COPY templates/ ./templates/

RUN sh set_version.sh

RUN echo "final size of vod2pod:\n $(ls -lah /tmp/vod2pod/target/*/release/app)"

RUN cargo build --release --target "$(cat /rust_platform.txt)"

RUN echo "final size of vod2pod:\n $(ls -lah /tmp/vod2pod/target/*/release/app)"

#----------
#this step will always run on the target architecture,
#so the build driver will need to be able to support runtime commands on it (es: using QEMU)
Expand Down
10 changes: 5 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,22 +2,22 @@

Converts a YouTube or Twitch channel into a full-blown podcast.

<a label="example of it working with podcast addict" href="url"><img src="https://user-images.githubusercontent.com/4585690/231301791-2f838fb3-4f6e-4382-bac4-c968bfe98c08.png" align="left" height="350" ></a>
<a label="example of it working with podcast addict" href="https://user-images.githubusercontent.com/4585690/231301791-2f838fb3-4f6e-4382-bac4-c968bfe98c08.png"><img src="https://user-images.githubusercontent.com/4585690/231301791-2f838fb3-4f6e-4382-bac4-c968bfe98c08.png" align="left" height="350" ></a>

## Features

- Completely converts the VoDs into a proper podcast RSS that can be listened to directly inside the client.
- The VoDs are not downloaded on the server, so no need for storage while self-hosting this app.
- VoDs are transcoded to MP3 192k on the fly by default, tested to be working flawlessly even on a Raspberry Pi 3-4.
- also work on standard rss podcasts feed if you want to have a lower bitrate version to save mobile data.
- also works on standard rss podcasts feed if you want to have a lower bitrate version to save mobile data.

## Limitations

- Youtube channel avatar is not present and results are limited to 15 when no youtube API key is set

## Usage

<a label="frontend" href="url"><img src="https://user-images.githubusercontent.com/4585690/234704870-0bf3023a-78e0-4ccc-adea-9d1f6ea2fabc.png" align="right" width="400px" ></a>
<a label="frontend" href="https://user-images.githubusercontent.com/4585690/234704870-0bf3023a-78e0-4ccc-adea-9d1f6ea2fabc.png"><img src="https://user-images.githubusercontent.com/4585690/234704870-0bf3023a-78e0-4ccc-adea-9d1f6ea2fabc.png" align="right" width="400px" ></a>

Just go to the root of the server es: `myserver.com` and paste the channel you want to convert to podcast and copy the generated link.

Expand Down Expand Up @@ -92,8 +92,8 @@ then run this to delete the old version form your system (note: this will also d

You can set the following environment variables:

- `TRANSCODE`: Set to "false" to disable transcoding, usefull if you only need the feeds (default: "true")
- `BITRATE`: Set the bitrate of the trascoded stream to your client (default: "192")
- `TRANSCODE`: Set to "false" to disable transcoding, usefull if you only need the feeds (default: "false")
- `MP3_BITRATE`: Set the bitrate of the trascoded stream to your client (default: "192")
- `SUBFOLDER`: Set the the root path of the app, useful for reverse proxies (default: "/")
- `VALID_URL_DOMAINS`: (optional) Set a comma separated list of domains urls that are allowed to be converted into RSS (defaults to yotube and twitch urls)

Expand Down
4 changes: 3 additions & 1 deletion docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,9 @@ services:

vod2pod:
extends: api_keys
image: madiele/vod2pod-rss:latest
#change "latest" to "X.X.X" to pin a version es: "1.0.4" will force the image to use to version 1.0.4, if you do please watch the repo for updates (tutorial in README.md)
#change "latest" to "beta" if you want to test yet unreleased fixes/features (expect bugs and broken builds from time to time)
image: madiele/vod2pod-rss:latest
depends_on:
- redis
restart: unless-stopped
Expand Down
2 changes: 1 addition & 1 deletion requirements.txt
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
# this is only used to track the version in the Dockerfile and with depend-a-bot
yt-dlp==2023.11.16
yt-dlp==2023.12.30
1 change: 0 additions & 1 deletion src/provider/youtube.rs
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,6 @@ impl MediaProvider for YoutubeProvider {
path if path.starts_with("/channel/")
|| path.starts_with("/user/")
|| path.starts_with("/c/")
|| path.starts_with("/c/")
|| path.starts_with("/@") =>
{
let url = find_yt_channel_url_with_c_id(&channel_url).await?;
Expand Down

0 comments on commit a916b29

Please sign in to comment.