Compare commits

...

2 Commits

Author SHA1 Message Date
2e110521e6 Fix --add flag 2024-01-27 17:31:59 +01:00
ef06282eb1 List of songs 2024-01-27 17:31:38 +01:00
2 changed files with 96 additions and 20 deletions

62
breakbeat_temas songs Normal file
View File

@@ -0,0 +1,62 @@
01 - Raw As F**k - The Slammer (12" Vinyl HD)
02 - Crack DJ's - OK Run!
03 - Unsolved Mysteries
04 - Lords of Motion (Breaks Remix) (Aquasky Vs. Masterblaster)
05 - X-Ray (Follow Me)
06 - Tu Café (Deekline & Ed Solo Remix)
07 - Cut & Run - No Good
08 - Multiply & ED 209 - You Nnow
09 - Josh Wink - Higher State Of Consciousness Original
10 - Buzzthrill - Everybody In The House (Get Some Mix)
11 - sugar - the feeling (powertools acid funk mix)
12 - Friction & Spice - Groove Me (Original Mix)
13 - Lula - Man = Drug (Sfx Beat Remix)
14 - MOSEH NAIM - NEEM (Shooting Star)
15 - DA HOOL :: Hypochondria (KULTÜR Breaks Remix)
16 - monstah freakz - thats right! (dj kultur + jan-b remix)
17 - Milk Inc - La Vache ( Kultur Remix) + Lula - Men&Drugs (Rasco&Isy Remix)
18 - LA RISSA - I DO BOTH JAY AND JANE (Sireena Breakbeat)
19 - WOOKIE - BACK UP (Dj Zinc Remix)
20 - GROOVKIDZ - I FEEL THIS WAY (DJ Razzz & Mojo´s Ultrapure Mix)
21 - Dj Mike B - Feel My Energy (Original Mix)
22 - Da Antidote
23 - Disco Biscuit (Remastered)
24 - Dj Quest & Ken Mac vs Backdraft - The Prophecy
25 - FROG JUNKIES AIR GUITAR serious acid mix
26 - The Dust Brothers - Chemical Beats
27 - You And Me
28 - Hankook - 303 (Original Mix) [Distortion Records]
29 - Micro - Fall Into Me (DJ Icey Remix)
30 - DJ Defkline And Red Polo - Felix Hustle
31 - Kiero Breakbeat
32 - BASCO - THE BEAT IS OVER (Original Mix)
33 - Krome & Time - The Slammer (1993)
34 - Brothers Of Dub -Same Frequency ( Future Funk Squad's 'Sonic Correction' Remix ) [ FREE DOWNLOAD ]
35 - Nasty
36 - Fresh Flamenco
37 - Don't you want me (Breakbeat)
38 - 1993
39 - Feel The Vibe
40 - Breaks | Müme - Finger Lickin [Phreak Recordings]
41 - Mute (ES) - Old School Flavour (Original Mix) [Distorsion Records]
42 - Karma
43 - Perfect Kombo Ft. Viper X - Go To The Guadalpark (Original Mix).wmv
44 - Tucu Tucu
45 - Cat Hedral
46 - Oscar - M.A.D. (Mental Ability To Be Different)
47 - The Dj's Project - Funk-Da-Fried-Party (Original Mix)
48 - Dylan Rhymes - Naked & Ashamed (Original Mix)
49 - Buzzthrill - Come With Me (Kelly Reverb She's A Goner Mix)
50 - Red Alien Feat. Afrika Islam - Red Alien (Zulu Beats Mix)
51 - Envelope - Electronic Love (Extended Mix)
52 - DJ I.C.O.N. - Voco Me (Breakbeat Remix)
53 - House Empire - Excuse Me (Break Beat Mix)
54 - Let's Get Loco
55 - Scania
56 - Death Race
57 - Mike Reitmayer - Cafe Del Mar (Remix 5° Aniversario)
58 - 2 Funky in Here (Maceo Rivas & Dr Black Sheep Remix)
59 - Novy vs Eniac Smoke Dis (Original Mix) [Breakbeat]
60 - X-Perimental II
61 - DJ Icey - Low Down Good Girl
62 - Electroliners - Loose Caboose

View File

@@ -30,7 +30,7 @@ def get_playlist_length(youtube, playlist_id):
return playlist_info['items'][0]['contentDetails']['itemCount']
def list_songs(youtube, channel_id):
def list_songs(youtube, channel_id, stdout=False):
max_results = 50
request = youtube.playlistItems().list(
part="snippet,contentDetails",
@@ -41,9 +41,15 @@ def list_songs(youtube, channel_id):
print()
# Process the first page of results
deleted = 0
songs_list = []
for idx, item in enumerate(response['items'], start=1):
title = item['snippet']['title']
print(f"{idx:02d} - {title}")
if title == "Deleted video":
deleted += 1
continue
songs_list.append(f"{idx-deleted:02d} - {title}")
# Continue making requests for additional pages using pageToken
new_starting = 51
@@ -55,12 +61,28 @@ def list_songs(youtube, channel_id):
pageToken=response['nextPageToken']
)
response = request.execute()
# Process the results for the additional pages
for idx, item in enumerate(response['items'], start=new_starting):
title = item['snippet']['title']
print(f"{idx:02d} - {title}")
if title == "Deleted video":
deleted += 1
continue
songs_list.append(f"{idx-deleted:02d} - {title}")
new_starting += 50
if stdout:
# Print to standard output
print("\n".join(songs_list))
get_key_by_value = lambda dict, val: next((k for k, v in dict.items() if v == val), None)
channel_name = get_key_by_value(channels, channel_id)
# Save to file if output_file is provided
with open(f"{channel_name} songs", 'w', encoding='utf-8') as file:
file.write("\n".join(songs_list))
def add_song(youtube, channel_id, song):
pos = get_playlist_length(youtube, channel_id)
@@ -83,23 +105,17 @@ def add_song(youtube, channel_id, song):
def main():
parser = argparse.ArgumentParser(description="Manage YouTube playlist songs.")
parser.add_argument("channel_name", help="Name of the YouTube channel")
parser.add_argument(
"--list",
action="store_true",
help="List all songs in the playlist"
)
parser.add_argument(
"--add",
nargs=2,
metavar=("channel", "song"),
help="Add to the playlist a song"
)
parser.add_argument("-l", "--list", action="store_true", help="List songs in the playlist")
parser.add_argument("-a", "--add", metavar="song", help="Add a song to the playlist")
parser.add_argument("channel_name", help="Name of the playlist")
args = parser.parse_args()
channel_name = args.channel_name
channel_id = channels.get(channel_name)
if not args.list and not args.add:
parser.error("Please provide either -l or -a option.")
if not channel_id:
print(f"Error: Channel '{channel_name}' not found.")
return
@@ -121,16 +137,14 @@ def main():
credentials=credentials)
if args.list:
list_songs(youtube, channel_id)
list_songs(youtube, channel_id, stdout=False)
elif args.add:
target_channel, song = args.add
song = args.add
# # this assumes a song is passed as in either of the following ways
# # https://youtu.be/eEnyi9L6KP4 --> split by "/"
# # https://youtube.com/watch?v=Ez-gizOF0Wo --> split by "="
song = re.split(r"/|=", song)[-1]
add_song(youtube, channels.get(target_channel), song)
else:
print("Invalid command. Use --list or --add.")
add_song(youtube, channel_id, song)
if __name__ == "__main__":
main()