diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml
new file mode 100644
index 0000000..2d598d8
--- /dev/null
+++ b/.github/FUNDING.yml
@@ -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']
diff --git a/.github/workflows/rust-clippy.yml b/.github/workflows/rust-clippy.yml
index a4bd946..c2b334e 100644
--- a/.github/workflows/rust-clippy.yml
+++ b/.github/workflows/rust-clippy.yml
@@ -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
diff --git a/Cargo.toml b/Cargo.toml
index 836163d..17704d3 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -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"] }
diff --git a/Dockerfile b/Dockerfile
index 30ac9d2..da49571 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -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)
diff --git a/README.md b/README.md
index 7d1cb2b..ed9009b 100644
--- a/README.md
+++ b/README.md
@@ -2,14 +2,14 @@
Converts a YouTube or Twitch channel into a full-blown podcast.
-
+
## 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
@@ -17,7 +17,7 @@ Converts a YouTube or Twitch channel into a full-blown podcast.
## Usage
-
+
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.
@@ -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)
diff --git a/docker-compose.yml b/docker-compose.yml
index 5eb1bc6..70a0c2c 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -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
diff --git a/requirements.txt b/requirements.txt
index d52b101..263e1b5 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -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
diff --git a/src/provider/youtube.rs b/src/provider/youtube.rs
index de792fb..2140e28 100644
--- a/src/provider/youtube.rs
+++ b/src/provider/youtube.rs
@@ -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?;