Git Product home page Git Product logo

youtubecast's Introduction

YouTubeCast

Create podcast feeds from YouTube channels and playlists. Go to youtubecast.com to check it out!

Features

  • Generate RSS feeds that can be added to podcast apps with support for video podcasts (e.g. Pocket Casts)
  • Simple web server for serving RSS feed data, video links, and UI

Self-Hosted Setup Using Docker

Prerequisites:

To run this application using Docker:

  1. Create the docker-compose.yml file as described below
  2. Run docker-compose up -d in the folder where your docker-compose.yml lives
  3. Check the logs using docker-compose logs -f to see if there are any errors in your configuration
  4. Access the UI on port 80, input a channel's name, and add the podcast feed to your podcast app of choice

docker-compose.yml

services:
  youtubecast:
    image: trevorsharp/youtubecast:latest
    container_name: youtubecast
    restart: unless-stopped
    ports:
      - 80:3000
    environment:
      - YOUTUBE_API_KEY="XXXXX"
      - COOKIES="XXXXX"
      - ENABLE_PLAYLIST_SORTING=false

Create a file named docker-compose.yml with the contents above. Add in your YouTube API key.

COOKIES Environment Variable (Optional)

If you want to download YouTube content that requires user authentication to download, you will need to add cookies to your configuration. One reason for needing this is to download members-only videos. Note that the source of these videos (channel, user, or playlist) still must be either public or unlisted. For members-only videos, I recommend going to the channel's home page and scrolling down to find an auto-generated playlist titled "Members-only videos" which will contain all the videos posted for members of the channel.

To generate this environment variable:

  1. Download a browser extension (such as this one for Chrome)
  2. Log in to YouTube
  3. With a YouTube tab open, open the cookies.txt extension and view the cookies as an HTTP header string
  4. Copy the HTTP header string and use that value to set the environment variable COOKIES

Playlists With New Items Added to the End

Note that for playlists, the podcast feed will return with the first 50 videos in the playlist (from the top). If the playlist has more than 50 videos and new videos are added to the end of the playlist, then the podcast feed may not include the newest videos. Unfortunately, YouTube's APIs make it cost-prohibitive to get the items at the end of long playlists. If you want to have these type of playlists in your podcast player, you can self-host this project (using the information above) and set the environment variable ENABLE_PLAYLIST_SORTING=true. Alternatively, if you are the creator of the playlist, you can set the playlist's sort order to newest on top.

youtubecast's People

Contributors

trevorsharp avatar 726a67 avatar konopielko avatar bluishoul avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.