Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/kubawerlos/youtube-songs
https://github.com/kubawerlos/youtube-songs
github-actions
Last synced: about 1 month ago
JSON representation
- Host: GitHub
- URL: https://github.com/kubawerlos/youtube-songs
- Owner: kubawerlos
- License: mit
- Created: 2024-01-07T19:49:57.000Z (12 months ago)
- Default Branch: main
- Last Pushed: 2024-01-23T17:18:16.000Z (11 months ago)
- Last Synced: 2024-10-14T11:09:24.312Z (3 months ago)
- Topics: github-actions
- Language: PHP
- Homepage:
- Size: 35.2 KB
- Stars: 0
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# YouTube songs
An action that will make it easier to generate and update YouTube song lists based on a simple configuration file.
You can see how this action is used [here](https://github.com/orgs/youtube-songs/repositories).
### Usage
Create a file `.github/youtube-songs.yaml` in your repository with the songs defined, as in the example below.
```yaml
title: 'My favourite songs''Ballads':
"Imagine (by John Lennon)":
id: VOgFZfRVaww # YouTube ID
'Bridge Over Troubled Water (by Simon & Garfunkel)':
id: nvF5imxSaLI
'Let It Be (by Beatles)':
id: CTcb_33-DiI'Rock':
"I Love Rock 'N Roll (by Joan Jett and the Blackhearts)":
id: d9jhDwxt22Y
'Under Pressure (by Queen & David Bowie)':
id: a9OPA-h8mAs
source: Remastered 2011
'By The Way (by Red Hot Chili Peppers)':
id: Gtmnt-Ol1UY
live: Slane Castle
'Smooth Criminal (by Alien Ant Farm)':
id: mjXRapctp6k
cover: Michael Jackson```
Create a GitHub Actions workflow (e.g. in `.github/workflows/update.yaml`) to update the lists, as in the example below.
```yaml
on:
push: ~jobs:
update:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: kubawerlos/youtube-songs@v1
- uses: stefanzweifel/git-auto-commit-action@v5```
The above will create a `README.md` file like this:
```markdown
# My favourite songs### [Ballads](https://www.youtube.com/watch_videos?title=Ballads&video_ids=VOgFZfRVaww,nvF5imxSaLI,CTcb_33-DiI)
1. :cd: "[Imagine (by John Lennon)](https://www.youtube.com/watch?v=VOgFZfRVaww)"
1. :cd: "[Bridge Over Troubled Water (by Simon & Garfunkel)](https://www.youtube.com/watch?v=nvF5imxSaLI)"
1. :cd: "[Let It Be (by Beatles)](https://www.youtube.com/watch?v=CTcb_33-DiI)"### [Rock](https://www.youtube.com/watch_videos?title=Rock&video_ids=d9jhDwxt22Y,a9OPA-h8mAs,Gtmnt-Ol1UY,mjXRapctp6k)
1. :cd: "[I Love Rock 'N Roll (by Joan Jett and the Blackhearts)](https://www.youtube.com/watch?v=d9jhDwxt22Y)"
1. :cd: "[Under Pressure (by Queen & David Bowie)](https://www.youtube.com/watch?v=a9OPA-h8mAs)" (from Remastered 2011)
1. :fire: "[By The Way (by Red Hot Chili Peppers)](https://www.youtube.com/watch?v=Gtmnt-Ol1UY)" (live from Slane Castle)
1. :cd: "[Smooth Criminal (by Alien Ant Farm)](https://www.youtube.com/watch?v=mjXRapctp6k)" (Michael Jackson cover)```
and update it whenever there is a change in the `.github/youtube-songs.yaml` file.### Checking songs using Google API
To do this, add `GOOGLE_API_KEY` to your GitHub Actions workflow:
```yaml
- uses: kubawerlos/youtube-songs@v1
env:
GOOGLE_API_KEY: ${{ secrets.GOOGLE_API_KEY }}
```To perform the check regularly, set it as a scheduled task (in the example it will run once a day):
```yaml
on:
push: ~
schedule:
- cron: '0 0 * * *'
```Then, if a song is not available, information about it will be added to `README.md`:
```markdown
:exclamation: Incorrect songs: "Unavailable Song 1", "Unavailable Song 2" :exclamation:
```