diff --git a/.classpath b/.classpath index 6de0a91546a3b431889bc7217b369fe7fd6c46ff..93567b78aca19447709856b9d9b6b68a6e9f08e4 100644 --- a/.classpath +++ b/.classpath @@ -3,5 +3,7 @@ <classpathentry kind="src" path="src"/> <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/> <classpathentry kind="con" path="org.eclipse.jdt.USER_LIBRARY/controlsfx"/> + <classpathentry combineaccessrules="false" kind="src" path="/_Tools"/> + <classpathentry kind="con" path="org.eclipse.jdt.USER_LIBRARY/GSON"/> <classpathentry kind="output" path="class"/> </classpath> diff --git a/CHANGELOG.txt b/CHANGELOG.txt index 76bdaa6933d9e0aad50a7940eac859a6d2054d70..efb2a3b34877fc3dabff4ceeef98c6e89add528e 100644 --- a/CHANGELOG.txt +++ b/CHANGELOG.txt @@ -5,9 +5,16 @@ SaveMyPlaylist ============== >>> start-date: 2015 ->>> status-date: 2015 +>>> status-date: 05.03.17 ____________________________________________________ +v.1.1.0 - (2) +=============== + +-used GSON for JSOn parsing + +>>> end-work: 05.03.17 + v.1.0.0 - (1) =============== diff --git a/README.md b/README.md index b78d99c660d91f9f8cad9ecb045c180ff556eb44..1bfd2b8a3efd34f715f180d07379359b27eb9885 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ # SaveMyPlaylist - startdate: 2015 -- current version: 1.0.0 (1) - 2015 +- current version: 1.1.0 (1) - 05.03.17 ### Description diff --git a/build/SaveMyPlaylist.exe b/build/SaveMyPlaylist.exe index 0853e927d4ebbb6b5822c10f56f5435082e82d1d..ccefda1f7a6b240113dfeaac60c43904655261c8 100644 Binary files a/build/SaveMyPlaylist.exe and b/build/SaveMyPlaylist.exe differ diff --git a/build/SaveMyPlaylist.jar b/build/SaveMyPlaylist.jar index 02a642807f40d6de55e0d29687a60c543fcfa7b0..cdcaef125d53f67a08a88ce065a18c89e2e49363 100644 Binary files a/build/SaveMyPlaylist.jar and b/build/SaveMyPlaylist.jar differ diff --git a/build/SaveMyPlaylist.xml b/build/SaveMyPlaylist.xml index 20a36a92d1a1b77a7cb7810f50d7eaea82e5481f..0a072366f99b019cc85b14a38f26d1c27bc5a7b0 100644 --- a/build/SaveMyPlaylist.xml +++ b/build/SaveMyPlaylist.xml @@ -2,8 +2,8 @@ <launch4jConfig> <dontWrapJar>false</dontWrapJar> <headerType>gui</headerType> - <jar>C:\Users\Robert\Documents\eclipse\compiled\SaveMyPlaylist\SaveMyPlaylist.jar</jar> - <outfile>C:\Users\Robert\Documents\eclipse\compiled\SaveMyPlaylist\SaveMyPlaylist.exe</outfile> + <jar>C:\Programmierung\eclipse\workspace\SaveMyPlaylist\build\SaveMyPlaylist.jar</jar> + <outfile>C:\Programmierung\eclipse\workspace\SaveMyPlaylist\build\SaveMyPlaylist.exe</outfile> <errTitle></errTitle> <cmdLine></cmdLine> <chdir>.</chdir> @@ -13,7 +13,7 @@ <stayAlive>false</stayAlive> <restartOnCrash>false</restartOnCrash> <manifest></manifest> - <icon>C:\Users\Robert\Documents\eclipse\compiled\SaveMyPlaylist\list.ico</icon> + <icon>C:\Programmierung\eclipse\workspace\SaveMyPlaylist\build\list.ico</icon> <classPath> <mainClass>application.Main</mainClass> <cp>.</cp> diff --git a/class/FLBjgyaf4Li1NpzaTLXEaY7A-05.03.2017_13-37-03.txt b/class/FLBjgyaf4Li1NpzaTLXEaY7A-05.03.2017_13-37-03.txt new file mode 100644 index 0000000000000000000000000000000000000000..d65722ff6386a2b973d854458ee15e99d0a51c68 --- /dev/null +++ b/class/FLBjgyaf4Li1NpzaTLXEaY7A-05.03.2017_13-37-03.txt @@ -0,0 +1,114 @@ +Playlist-ID = FLBjgyaf4Li1NpzaTLXEaY7A + +Nummer Kanal Video + +1 abian Sigrist Gronkh feat. Lara Loft – Drachenmurat - Das Album +2 sauce The Brachistochrone +3 arti Fischer 1 HARD Track vong STYLE her | Wie geht eigentlich Musik? +4 attle Bros Affiliate Lyrics #2 - ein Weihnachtsgedicht +5 ashup Mashup-Germany - Top of the Pops 2016 (65 Songs Mashup) +6 urt Hugo Schneider 2016 MASHUP - ULTIMATE MANNEQUIN CHALLENGE!! - Every hit song in 4 minutes +7 om Thum The Human Sample Kit Experiment--Tom Thum at YouTube Brandcast 2016 +8 ds Daily Popakademie Baden Württemberg - Boygroup Boys - We Are The Boys +9 ntel Intel's 500 Drone Light Show | Intel +10 oomieOfficial One Guy, 16 Voices +11 ctestflight 1000W LED on a DRONE - RCTESTFLIGHT +12 Private video +13 chroeter94 Definition eines Wertsackes +14 sauce What Is The Resolution Of The Eye? +15 elfmade Records 257ers - Holz (Official HD Video) +16 edi93 Willkommen bei Mario Barth - Fifty Shades Of Grey mit Dialekt +17 Private video +18 eter Hollens Game of Thrones - Peter Hollens feat. MatPat +19 ikolaj.Birek Game of Thrones - VHS Intro (UPDATED music) +20 aylorSwiftVEVO Taylor Swift - Out Of The Woods +21 udson Laipply Evolution of Dance +22 rbungle73 What if wild animals ate fast food +23 arry101UK Portal - Meet The Cores 2 +24 arti Fischer Shitschnacker | mit Gniechel +25 elodifestivalen Love Love, Peace peace - How to make a perfect Eurovision Song +26 YU Vocal Point Ultimate A Cappella Mashup: 25 Hits, 25 Years | BYU Vocal Point ft. Sophia Osmond - 4K One-Shot +27 YU Vocal Point Behind the Scenes of BYU Vocal Point's one-shot 'Ultimate A Cappella Mashup: 25 Hits, 25 Years' +28 wo Steps From Hell Two Steps From Hell - The Colonel +29 lement Animation BLOCK BY BLOCK - Music Video (Montage Song) +30 ameStar Beeindruckende Unreal Engine 4-Demo - »Blow by Emby« +31 ASS Potsdam Let's Talk About Soil - German +32 ASS Potsdam Let's Talk About Soil - English (w/ Dutch Subtitles) +33 oomieOfficial Best of One Guy, 14/15/23 Voices - Musical Impressions +34 a4cc Eggstatic – stroboscopic patterns for Easter eggs (EggBot) +35 hristus2121 In the air tonight - Cover (Vocoder Intro) +36 urt Hugo Schneider 2015 MASHUP - Every Hit Song In 4 Minutes +37 lexnesgabe RTL Stimme Patrick Linke +38 wo Steps From Hell Two Steps From Hell - Release Me +39 eter Hollens SKYRIM - Peter Hollens feat. Lindsey Stirling +40 eter Hollens Game of Thrones Theme - Lindsey Stirling & Peter Hollens +41 att Johnson 2015 Johnson Family Dubstep Christmas Light Show - Featured on ABC's The Great Christmas Light Fight +42 ronkh BEYOND: TWO SOULS [REMASTERED] [009] - Weihnachtsmärchen sind nicht immer schön +43 ctestflight 1000W LED Flashlight - Worlds Brightest (90,000 Lumens) +44 ySpassde Marcel Mann und der Sommer seines Lebens - Nightwash live +45 ronkh LIFE IS STRANGE [S05E07] - Flieg, kleiner Schmetterling! (ENDE) ★ Let's Play Life is Strange +46 elodysheep THE DRAGONS DAUGHTER - Game of Thrones Tribute Remix +47 JS WAT Talk reup +48 avaZone Norway JavaZone 2013: Javapocalypse +49 oomieOfficial [360 Music Video] This Summer - Roomie (Maroon 5 Cover) +50 dsfan1000 Cut The Rope Theme +51 gtPepper271294 Battlefield 2 Main Theme - High Definition +52 ronkh LIFE IS STRANGE [S04E02] - Ihr Allergrößter Wunsch ★ Let's Play Life is Strange +53 ome Sweet Home Home Sweet Home - The Animated Short Movie +54 love and Boots Vertical Video Syndrome - A PSA +55 enjamin Jaworskyj 📷 Schottland 🌍 Fotografie Dokumentation - Benjamin Jaworskyj around the World +56 he CGBros CGI VFX Spot HD: "Data to Design: Zante" - by Aggressive.tv +57 he CGBros CGI VFX Breakdowns HD: "DAWN OF THE STUFF MAKING OF" - by Alf Lovvold +58 he CGBros CGI VFX Trailers HD: "DAWN OF THE STUFF" - by Alf Lovvold +59 he CGBros CGI VFX Spot HD: "Data to Design - Boracay" - by Aggressive +60 inibinimakarini FL Studio Tutorial - 004 Abmischung & Mastering +61 lender Guru Why You Should be Striving for Photorealism - Pausefest 2015 +62 lender Guru The Basics of Good Texturing in Blender +63 lender Guru The Secrets of Realistic Texturing in Blender +64 MITcH DEE BassBreaKer-ReadyForTakeOFF=FL-Studio Template-Tutorial=Trance +65 parkofPhoenix Alle Tastenkombinationen in Minecraft! F3+ +66 parkofPhoenix Die Melonenmaschine / Kürbismaschine! Vollautomatisch! - Minecraft Redstone Tutorial +67 parkofPhoenix Vollautomatischer Highspeed Ofen in Minecraft! - Minecraft Redstone Tutorial +68 he CGBros CGI & VFX Showreels HD: "2015 Summer Reel"- by Octavio.tv +69 ronkh LIFE IS STRANGE [S02E07] - Der Tag, an dem die Unschuld starb ★ Let's Play Life is Strange +70 emoband Intensiv investigativ - Ein Reporterstück +71 ilvUnion The Lego Movie - Everything is awesome! - Official Clip - Sing along +72 ukas Maldri The Lego Movie "Hier ist alles super" mit Filmausschnitten +73 ysticCerl Hier ist alles Super [FULL GERMAN VERSION] +74 he Synthetic Orchestra Game of Thrones (Re)Orchestra +75 he Synthetic Orchestra Elder Scrolls V - Skyrim Theme Remake +76 lue Monkey When Steve isn't online 2: Party Animals (60fps Minecraft Animation) +77 lue Monkey Do You Want to Build a Snowman? (Minecraft Animation) +78 lue Monkey World Hole (Minecraft Animation) +79 lue Monkey Amoozon Prime Air (Minecraft Animation) feat. Drones +80 ySpassde Stefan Raab vs. Max Giermann! - TV total +81 uperhomiefan Gronkh ließt Fanfiction vor unterlegt mit Musik +82 axence Cyrin Maxence Cyrin - Where Is My Mind (The Pixies Piano Cover) +83 lement Animation Your Door Was Locked! (Minecraft Animation) +84 tarwatch Entertainment Heino - Schwarz blüht der Enzian +85 heHoonigans [HOONIGAN] KEN BLOCK'S GYMKHANA SEVEN: WILD IN THE STREETS OF LOS ANGELES +86 anuzi1 Pitch Perfect Guetta - Titanium vs. Proclaimers - 500 miles vs. Midnight Oil - Beds r burning +87 lashdeckanimations Counter-Strike - DE dust2 HD +88 evingraham Behind The Scenes - Watch Dogs +89 evinsupertramp Watch Dogs Parkour in Real Life in 4K +90 EDx Talks Beatbox brilliance | Tom Thum | TEDxSydney +91 TXofficial Evolution of Music - Pentatonix +92 uskZeroSamOHare The Sandpit +93 hotohod photohod One Day in Berlin. Motion Timelapse. +94 urner Benelux A DRAMATIC SURPRISE ON A QUIET SQUARE +95 he Axis of Awesome 4 Chords | Music Videos | The Axis Of Awesome +96 achariah Scott The Turret Anthem +97 DEKA EDEKA Supergeil (feat. Friedrich Liechtenstein) +98 egobuildingblocks The CubeStormer 2 - World Record Rubik's Cube Solver made from LEGO NXT Mindstorms +99 Assemble LEGO® MindCuber +100 uelDJ Jasper Forks - River Flows In You +101 lement Animation Villager News 2 (Minecraft Animation) +102 lement Animation Villager News (Minecraft Animation) +103 lexanderlehmann X3: Buugle - was Google kann können wir schon lange! +104 lexanderlehmann X3: Willkommen bei Facebook. Wir wollen dich doch nur kennenlernen (HD) +105 ewstyle Area Extra3 Toll Der neue Personalausweis +106 lan Becker Animator vs. Animation II (original) +107 lan Becker Animator vs. Animation III (original) +108 unnarolla Canadian, Please #Canada150 | gunnarolla & Julia Bentley +109 VNorge Ylvis - The Fox (What Does The Fox Say?) [Official music video HD] +110 ySpassde Nehmen sie Awesome! - Jan Philipp Zymny - Finale NightWash Talent Award 2013 diff --git a/class/FLBjgyaf4Li1NpzaTLXEaY7A-05.03.2017_13-38-17.txt b/class/FLBjgyaf4Li1NpzaTLXEaY7A-05.03.2017_13-38-17.txt new file mode 100644 index 0000000000000000000000000000000000000000..d65722ff6386a2b973d854458ee15e99d0a51c68 --- /dev/null +++ b/class/FLBjgyaf4Li1NpzaTLXEaY7A-05.03.2017_13-38-17.txt @@ -0,0 +1,114 @@ +Playlist-ID = FLBjgyaf4Li1NpzaTLXEaY7A + +Nummer Kanal Video + +1 abian Sigrist Gronkh feat. Lara Loft – Drachenmurat - Das Album +2 sauce The Brachistochrone +3 arti Fischer 1 HARD Track vong STYLE her | Wie geht eigentlich Musik? +4 attle Bros Affiliate Lyrics #2 - ein Weihnachtsgedicht +5 ashup Mashup-Germany - Top of the Pops 2016 (65 Songs Mashup) +6 urt Hugo Schneider 2016 MASHUP - ULTIMATE MANNEQUIN CHALLENGE!! - Every hit song in 4 minutes +7 om Thum The Human Sample Kit Experiment--Tom Thum at YouTube Brandcast 2016 +8 ds Daily Popakademie Baden Württemberg - Boygroup Boys - We Are The Boys +9 ntel Intel's 500 Drone Light Show | Intel +10 oomieOfficial One Guy, 16 Voices +11 ctestflight 1000W LED on a DRONE - RCTESTFLIGHT +12 Private video +13 chroeter94 Definition eines Wertsackes +14 sauce What Is The Resolution Of The Eye? +15 elfmade Records 257ers - Holz (Official HD Video) +16 edi93 Willkommen bei Mario Barth - Fifty Shades Of Grey mit Dialekt +17 Private video +18 eter Hollens Game of Thrones - Peter Hollens feat. MatPat +19 ikolaj.Birek Game of Thrones - VHS Intro (UPDATED music) +20 aylorSwiftVEVO Taylor Swift - Out Of The Woods +21 udson Laipply Evolution of Dance +22 rbungle73 What if wild animals ate fast food +23 arry101UK Portal - Meet The Cores 2 +24 arti Fischer Shitschnacker | mit Gniechel +25 elodifestivalen Love Love, Peace peace - How to make a perfect Eurovision Song +26 YU Vocal Point Ultimate A Cappella Mashup: 25 Hits, 25 Years | BYU Vocal Point ft. Sophia Osmond - 4K One-Shot +27 YU Vocal Point Behind the Scenes of BYU Vocal Point's one-shot 'Ultimate A Cappella Mashup: 25 Hits, 25 Years' +28 wo Steps From Hell Two Steps From Hell - The Colonel +29 lement Animation BLOCK BY BLOCK - Music Video (Montage Song) +30 ameStar Beeindruckende Unreal Engine 4-Demo - »Blow by Emby« +31 ASS Potsdam Let's Talk About Soil - German +32 ASS Potsdam Let's Talk About Soil - English (w/ Dutch Subtitles) +33 oomieOfficial Best of One Guy, 14/15/23 Voices - Musical Impressions +34 a4cc Eggstatic – stroboscopic patterns for Easter eggs (EggBot) +35 hristus2121 In the air tonight - Cover (Vocoder Intro) +36 urt Hugo Schneider 2015 MASHUP - Every Hit Song In 4 Minutes +37 lexnesgabe RTL Stimme Patrick Linke +38 wo Steps From Hell Two Steps From Hell - Release Me +39 eter Hollens SKYRIM - Peter Hollens feat. Lindsey Stirling +40 eter Hollens Game of Thrones Theme - Lindsey Stirling & Peter Hollens +41 att Johnson 2015 Johnson Family Dubstep Christmas Light Show - Featured on ABC's The Great Christmas Light Fight +42 ronkh BEYOND: TWO SOULS [REMASTERED] [009] - Weihnachtsmärchen sind nicht immer schön +43 ctestflight 1000W LED Flashlight - Worlds Brightest (90,000 Lumens) +44 ySpassde Marcel Mann und der Sommer seines Lebens - Nightwash live +45 ronkh LIFE IS STRANGE [S05E07] - Flieg, kleiner Schmetterling! (ENDE) ★ Let's Play Life is Strange +46 elodysheep THE DRAGONS DAUGHTER - Game of Thrones Tribute Remix +47 JS WAT Talk reup +48 avaZone Norway JavaZone 2013: Javapocalypse +49 oomieOfficial [360 Music Video] This Summer - Roomie (Maroon 5 Cover) +50 dsfan1000 Cut The Rope Theme +51 gtPepper271294 Battlefield 2 Main Theme - High Definition +52 ronkh LIFE IS STRANGE [S04E02] - Ihr Allergrößter Wunsch ★ Let's Play Life is Strange +53 ome Sweet Home Home Sweet Home - The Animated Short Movie +54 love and Boots Vertical Video Syndrome - A PSA +55 enjamin Jaworskyj 📷 Schottland 🌍 Fotografie Dokumentation - Benjamin Jaworskyj around the World +56 he CGBros CGI VFX Spot HD: "Data to Design: Zante" - by Aggressive.tv +57 he CGBros CGI VFX Breakdowns HD: "DAWN OF THE STUFF MAKING OF" - by Alf Lovvold +58 he CGBros CGI VFX Trailers HD: "DAWN OF THE STUFF" - by Alf Lovvold +59 he CGBros CGI VFX Spot HD: "Data to Design - Boracay" - by Aggressive +60 inibinimakarini FL Studio Tutorial - 004 Abmischung & Mastering +61 lender Guru Why You Should be Striving for Photorealism - Pausefest 2015 +62 lender Guru The Basics of Good Texturing in Blender +63 lender Guru The Secrets of Realistic Texturing in Blender +64 MITcH DEE BassBreaKer-ReadyForTakeOFF=FL-Studio Template-Tutorial=Trance +65 parkofPhoenix Alle Tastenkombinationen in Minecraft! F3+ +66 parkofPhoenix Die Melonenmaschine / Kürbismaschine! Vollautomatisch! - Minecraft Redstone Tutorial +67 parkofPhoenix Vollautomatischer Highspeed Ofen in Minecraft! - Minecraft Redstone Tutorial +68 he CGBros CGI & VFX Showreels HD: "2015 Summer Reel"- by Octavio.tv +69 ronkh LIFE IS STRANGE [S02E07] - Der Tag, an dem die Unschuld starb ★ Let's Play Life is Strange +70 emoband Intensiv investigativ - Ein Reporterstück +71 ilvUnion The Lego Movie - Everything is awesome! - Official Clip - Sing along +72 ukas Maldri The Lego Movie "Hier ist alles super" mit Filmausschnitten +73 ysticCerl Hier ist alles Super [FULL GERMAN VERSION] +74 he Synthetic Orchestra Game of Thrones (Re)Orchestra +75 he Synthetic Orchestra Elder Scrolls V - Skyrim Theme Remake +76 lue Monkey When Steve isn't online 2: Party Animals (60fps Minecraft Animation) +77 lue Monkey Do You Want to Build a Snowman? (Minecraft Animation) +78 lue Monkey World Hole (Minecraft Animation) +79 lue Monkey Amoozon Prime Air (Minecraft Animation) feat. Drones +80 ySpassde Stefan Raab vs. Max Giermann! - TV total +81 uperhomiefan Gronkh ließt Fanfiction vor unterlegt mit Musik +82 axence Cyrin Maxence Cyrin - Where Is My Mind (The Pixies Piano Cover) +83 lement Animation Your Door Was Locked! (Minecraft Animation) +84 tarwatch Entertainment Heino - Schwarz blüht der Enzian +85 heHoonigans [HOONIGAN] KEN BLOCK'S GYMKHANA SEVEN: WILD IN THE STREETS OF LOS ANGELES +86 anuzi1 Pitch Perfect Guetta - Titanium vs. Proclaimers - 500 miles vs. Midnight Oil - Beds r burning +87 lashdeckanimations Counter-Strike - DE dust2 HD +88 evingraham Behind The Scenes - Watch Dogs +89 evinsupertramp Watch Dogs Parkour in Real Life in 4K +90 EDx Talks Beatbox brilliance | Tom Thum | TEDxSydney +91 TXofficial Evolution of Music - Pentatonix +92 uskZeroSamOHare The Sandpit +93 hotohod photohod One Day in Berlin. Motion Timelapse. +94 urner Benelux A DRAMATIC SURPRISE ON A QUIET SQUARE +95 he Axis of Awesome 4 Chords | Music Videos | The Axis Of Awesome +96 achariah Scott The Turret Anthem +97 DEKA EDEKA Supergeil (feat. Friedrich Liechtenstein) +98 egobuildingblocks The CubeStormer 2 - World Record Rubik's Cube Solver made from LEGO NXT Mindstorms +99 Assemble LEGO® MindCuber +100 uelDJ Jasper Forks - River Flows In You +101 lement Animation Villager News 2 (Minecraft Animation) +102 lement Animation Villager News (Minecraft Animation) +103 lexanderlehmann X3: Buugle - was Google kann können wir schon lange! +104 lexanderlehmann X3: Willkommen bei Facebook. Wir wollen dich doch nur kennenlernen (HD) +105 ewstyle Area Extra3 Toll Der neue Personalausweis +106 lan Becker Animator vs. Animation II (original) +107 lan Becker Animator vs. Animation III (original) +108 unnarolla Canadian, Please #Canada150 | gunnarolla & Julia Bentley +109 VNorge Ylvis - The Fox (What Does The Fox Say?) [Official music video HD] +110 ySpassde Nehmen sie Awesome! - Jan Philipp Zymny - Finale NightWash Talent Award 2013 diff --git a/class/FLBjgyaf4Li1NpzaTLXEaY7A-05.03.2017_13-43-55.txt b/class/FLBjgyaf4Li1NpzaTLXEaY7A-05.03.2017_13-43-55.txt new file mode 100644 index 0000000000000000000000000000000000000000..d65722ff6386a2b973d854458ee15e99d0a51c68 --- /dev/null +++ b/class/FLBjgyaf4Li1NpzaTLXEaY7A-05.03.2017_13-43-55.txt @@ -0,0 +1,114 @@ +Playlist-ID = FLBjgyaf4Li1NpzaTLXEaY7A + +Nummer Kanal Video + +1 abian Sigrist Gronkh feat. Lara Loft – Drachenmurat - Das Album +2 sauce The Brachistochrone +3 arti Fischer 1 HARD Track vong STYLE her | Wie geht eigentlich Musik? +4 attle Bros Affiliate Lyrics #2 - ein Weihnachtsgedicht +5 ashup Mashup-Germany - Top of the Pops 2016 (65 Songs Mashup) +6 urt Hugo Schneider 2016 MASHUP - ULTIMATE MANNEQUIN CHALLENGE!! - Every hit song in 4 minutes +7 om Thum The Human Sample Kit Experiment--Tom Thum at YouTube Brandcast 2016 +8 ds Daily Popakademie Baden Württemberg - Boygroup Boys - We Are The Boys +9 ntel Intel's 500 Drone Light Show | Intel +10 oomieOfficial One Guy, 16 Voices +11 ctestflight 1000W LED on a DRONE - RCTESTFLIGHT +12 Private video +13 chroeter94 Definition eines Wertsackes +14 sauce What Is The Resolution Of The Eye? +15 elfmade Records 257ers - Holz (Official HD Video) +16 edi93 Willkommen bei Mario Barth - Fifty Shades Of Grey mit Dialekt +17 Private video +18 eter Hollens Game of Thrones - Peter Hollens feat. MatPat +19 ikolaj.Birek Game of Thrones - VHS Intro (UPDATED music) +20 aylorSwiftVEVO Taylor Swift - Out Of The Woods +21 udson Laipply Evolution of Dance +22 rbungle73 What if wild animals ate fast food +23 arry101UK Portal - Meet The Cores 2 +24 arti Fischer Shitschnacker | mit Gniechel +25 elodifestivalen Love Love, Peace peace - How to make a perfect Eurovision Song +26 YU Vocal Point Ultimate A Cappella Mashup: 25 Hits, 25 Years | BYU Vocal Point ft. Sophia Osmond - 4K One-Shot +27 YU Vocal Point Behind the Scenes of BYU Vocal Point's one-shot 'Ultimate A Cappella Mashup: 25 Hits, 25 Years' +28 wo Steps From Hell Two Steps From Hell - The Colonel +29 lement Animation BLOCK BY BLOCK - Music Video (Montage Song) +30 ameStar Beeindruckende Unreal Engine 4-Demo - »Blow by Emby« +31 ASS Potsdam Let's Talk About Soil - German +32 ASS Potsdam Let's Talk About Soil - English (w/ Dutch Subtitles) +33 oomieOfficial Best of One Guy, 14/15/23 Voices - Musical Impressions +34 a4cc Eggstatic – stroboscopic patterns for Easter eggs (EggBot) +35 hristus2121 In the air tonight - Cover (Vocoder Intro) +36 urt Hugo Schneider 2015 MASHUP - Every Hit Song In 4 Minutes +37 lexnesgabe RTL Stimme Patrick Linke +38 wo Steps From Hell Two Steps From Hell - Release Me +39 eter Hollens SKYRIM - Peter Hollens feat. Lindsey Stirling +40 eter Hollens Game of Thrones Theme - Lindsey Stirling & Peter Hollens +41 att Johnson 2015 Johnson Family Dubstep Christmas Light Show - Featured on ABC's The Great Christmas Light Fight +42 ronkh BEYOND: TWO SOULS [REMASTERED] [009] - Weihnachtsmärchen sind nicht immer schön +43 ctestflight 1000W LED Flashlight - Worlds Brightest (90,000 Lumens) +44 ySpassde Marcel Mann und der Sommer seines Lebens - Nightwash live +45 ronkh LIFE IS STRANGE [S05E07] - Flieg, kleiner Schmetterling! (ENDE) ★ Let's Play Life is Strange +46 elodysheep THE DRAGONS DAUGHTER - Game of Thrones Tribute Remix +47 JS WAT Talk reup +48 avaZone Norway JavaZone 2013: Javapocalypse +49 oomieOfficial [360 Music Video] This Summer - Roomie (Maroon 5 Cover) +50 dsfan1000 Cut The Rope Theme +51 gtPepper271294 Battlefield 2 Main Theme - High Definition +52 ronkh LIFE IS STRANGE [S04E02] - Ihr Allergrößter Wunsch ★ Let's Play Life is Strange +53 ome Sweet Home Home Sweet Home - The Animated Short Movie +54 love and Boots Vertical Video Syndrome - A PSA +55 enjamin Jaworskyj 📷 Schottland 🌍 Fotografie Dokumentation - Benjamin Jaworskyj around the World +56 he CGBros CGI VFX Spot HD: "Data to Design: Zante" - by Aggressive.tv +57 he CGBros CGI VFX Breakdowns HD: "DAWN OF THE STUFF MAKING OF" - by Alf Lovvold +58 he CGBros CGI VFX Trailers HD: "DAWN OF THE STUFF" - by Alf Lovvold +59 he CGBros CGI VFX Spot HD: "Data to Design - Boracay" - by Aggressive +60 inibinimakarini FL Studio Tutorial - 004 Abmischung & Mastering +61 lender Guru Why You Should be Striving for Photorealism - Pausefest 2015 +62 lender Guru The Basics of Good Texturing in Blender +63 lender Guru The Secrets of Realistic Texturing in Blender +64 MITcH DEE BassBreaKer-ReadyForTakeOFF=FL-Studio Template-Tutorial=Trance +65 parkofPhoenix Alle Tastenkombinationen in Minecraft! F3+ +66 parkofPhoenix Die Melonenmaschine / Kürbismaschine! Vollautomatisch! - Minecraft Redstone Tutorial +67 parkofPhoenix Vollautomatischer Highspeed Ofen in Minecraft! - Minecraft Redstone Tutorial +68 he CGBros CGI & VFX Showreels HD: "2015 Summer Reel"- by Octavio.tv +69 ronkh LIFE IS STRANGE [S02E07] - Der Tag, an dem die Unschuld starb ★ Let's Play Life is Strange +70 emoband Intensiv investigativ - Ein Reporterstück +71 ilvUnion The Lego Movie - Everything is awesome! - Official Clip - Sing along +72 ukas Maldri The Lego Movie "Hier ist alles super" mit Filmausschnitten +73 ysticCerl Hier ist alles Super [FULL GERMAN VERSION] +74 he Synthetic Orchestra Game of Thrones (Re)Orchestra +75 he Synthetic Orchestra Elder Scrolls V - Skyrim Theme Remake +76 lue Monkey When Steve isn't online 2: Party Animals (60fps Minecraft Animation) +77 lue Monkey Do You Want to Build a Snowman? (Minecraft Animation) +78 lue Monkey World Hole (Minecraft Animation) +79 lue Monkey Amoozon Prime Air (Minecraft Animation) feat. Drones +80 ySpassde Stefan Raab vs. Max Giermann! - TV total +81 uperhomiefan Gronkh ließt Fanfiction vor unterlegt mit Musik +82 axence Cyrin Maxence Cyrin - Where Is My Mind (The Pixies Piano Cover) +83 lement Animation Your Door Was Locked! (Minecraft Animation) +84 tarwatch Entertainment Heino - Schwarz blüht der Enzian +85 heHoonigans [HOONIGAN] KEN BLOCK'S GYMKHANA SEVEN: WILD IN THE STREETS OF LOS ANGELES +86 anuzi1 Pitch Perfect Guetta - Titanium vs. Proclaimers - 500 miles vs. Midnight Oil - Beds r burning +87 lashdeckanimations Counter-Strike - DE dust2 HD +88 evingraham Behind The Scenes - Watch Dogs +89 evinsupertramp Watch Dogs Parkour in Real Life in 4K +90 EDx Talks Beatbox brilliance | Tom Thum | TEDxSydney +91 TXofficial Evolution of Music - Pentatonix +92 uskZeroSamOHare The Sandpit +93 hotohod photohod One Day in Berlin. Motion Timelapse. +94 urner Benelux A DRAMATIC SURPRISE ON A QUIET SQUARE +95 he Axis of Awesome 4 Chords | Music Videos | The Axis Of Awesome +96 achariah Scott The Turret Anthem +97 DEKA EDEKA Supergeil (feat. Friedrich Liechtenstein) +98 egobuildingblocks The CubeStormer 2 - World Record Rubik's Cube Solver made from LEGO NXT Mindstorms +99 Assemble LEGO® MindCuber +100 uelDJ Jasper Forks - River Flows In You +101 lement Animation Villager News 2 (Minecraft Animation) +102 lement Animation Villager News (Minecraft Animation) +103 lexanderlehmann X3: Buugle - was Google kann können wir schon lange! +104 lexanderlehmann X3: Willkommen bei Facebook. Wir wollen dich doch nur kennenlernen (HD) +105 ewstyle Area Extra3 Toll Der neue Personalausweis +106 lan Becker Animator vs. Animation II (original) +107 lan Becker Animator vs. Animation III (original) +108 unnarolla Canadian, Please #Canada150 | gunnarolla & Julia Bentley +109 VNorge Ylvis - The Fox (What Does The Fox Say?) [Official music video HD] +110 ySpassde Nehmen sie Awesome! - Jan Philipp Zymny - Finale NightWash Talent Award 2013 diff --git a/class/FLBjgyaf4Li1NpzaTLXEaY7A-05.03.2017_13-45-58.txt b/class/FLBjgyaf4Li1NpzaTLXEaY7A-05.03.2017_13-45-58.txt new file mode 100644 index 0000000000000000000000000000000000000000..d65722ff6386a2b973d854458ee15e99d0a51c68 --- /dev/null +++ b/class/FLBjgyaf4Li1NpzaTLXEaY7A-05.03.2017_13-45-58.txt @@ -0,0 +1,114 @@ +Playlist-ID = FLBjgyaf4Li1NpzaTLXEaY7A + +Nummer Kanal Video + +1 abian Sigrist Gronkh feat. Lara Loft – Drachenmurat - Das Album +2 sauce The Brachistochrone +3 arti Fischer 1 HARD Track vong STYLE her | Wie geht eigentlich Musik? +4 attle Bros Affiliate Lyrics #2 - ein Weihnachtsgedicht +5 ashup Mashup-Germany - Top of the Pops 2016 (65 Songs Mashup) +6 urt Hugo Schneider 2016 MASHUP - ULTIMATE MANNEQUIN CHALLENGE!! - Every hit song in 4 minutes +7 om Thum The Human Sample Kit Experiment--Tom Thum at YouTube Brandcast 2016 +8 ds Daily Popakademie Baden Württemberg - Boygroup Boys - We Are The Boys +9 ntel Intel's 500 Drone Light Show | Intel +10 oomieOfficial One Guy, 16 Voices +11 ctestflight 1000W LED on a DRONE - RCTESTFLIGHT +12 Private video +13 chroeter94 Definition eines Wertsackes +14 sauce What Is The Resolution Of The Eye? +15 elfmade Records 257ers - Holz (Official HD Video) +16 edi93 Willkommen bei Mario Barth - Fifty Shades Of Grey mit Dialekt +17 Private video +18 eter Hollens Game of Thrones - Peter Hollens feat. MatPat +19 ikolaj.Birek Game of Thrones - VHS Intro (UPDATED music) +20 aylorSwiftVEVO Taylor Swift - Out Of The Woods +21 udson Laipply Evolution of Dance +22 rbungle73 What if wild animals ate fast food +23 arry101UK Portal - Meet The Cores 2 +24 arti Fischer Shitschnacker | mit Gniechel +25 elodifestivalen Love Love, Peace peace - How to make a perfect Eurovision Song +26 YU Vocal Point Ultimate A Cappella Mashup: 25 Hits, 25 Years | BYU Vocal Point ft. Sophia Osmond - 4K One-Shot +27 YU Vocal Point Behind the Scenes of BYU Vocal Point's one-shot 'Ultimate A Cappella Mashup: 25 Hits, 25 Years' +28 wo Steps From Hell Two Steps From Hell - The Colonel +29 lement Animation BLOCK BY BLOCK - Music Video (Montage Song) +30 ameStar Beeindruckende Unreal Engine 4-Demo - »Blow by Emby« +31 ASS Potsdam Let's Talk About Soil - German +32 ASS Potsdam Let's Talk About Soil - English (w/ Dutch Subtitles) +33 oomieOfficial Best of One Guy, 14/15/23 Voices - Musical Impressions +34 a4cc Eggstatic – stroboscopic patterns for Easter eggs (EggBot) +35 hristus2121 In the air tonight - Cover (Vocoder Intro) +36 urt Hugo Schneider 2015 MASHUP - Every Hit Song In 4 Minutes +37 lexnesgabe RTL Stimme Patrick Linke +38 wo Steps From Hell Two Steps From Hell - Release Me +39 eter Hollens SKYRIM - Peter Hollens feat. Lindsey Stirling +40 eter Hollens Game of Thrones Theme - Lindsey Stirling & Peter Hollens +41 att Johnson 2015 Johnson Family Dubstep Christmas Light Show - Featured on ABC's The Great Christmas Light Fight +42 ronkh BEYOND: TWO SOULS [REMASTERED] [009] - Weihnachtsmärchen sind nicht immer schön +43 ctestflight 1000W LED Flashlight - Worlds Brightest (90,000 Lumens) +44 ySpassde Marcel Mann und der Sommer seines Lebens - Nightwash live +45 ronkh LIFE IS STRANGE [S05E07] - Flieg, kleiner Schmetterling! (ENDE) ★ Let's Play Life is Strange +46 elodysheep THE DRAGONS DAUGHTER - Game of Thrones Tribute Remix +47 JS WAT Talk reup +48 avaZone Norway JavaZone 2013: Javapocalypse +49 oomieOfficial [360 Music Video] This Summer - Roomie (Maroon 5 Cover) +50 dsfan1000 Cut The Rope Theme +51 gtPepper271294 Battlefield 2 Main Theme - High Definition +52 ronkh LIFE IS STRANGE [S04E02] - Ihr Allergrößter Wunsch ★ Let's Play Life is Strange +53 ome Sweet Home Home Sweet Home - The Animated Short Movie +54 love and Boots Vertical Video Syndrome - A PSA +55 enjamin Jaworskyj 📷 Schottland 🌍 Fotografie Dokumentation - Benjamin Jaworskyj around the World +56 he CGBros CGI VFX Spot HD: "Data to Design: Zante" - by Aggressive.tv +57 he CGBros CGI VFX Breakdowns HD: "DAWN OF THE STUFF MAKING OF" - by Alf Lovvold +58 he CGBros CGI VFX Trailers HD: "DAWN OF THE STUFF" - by Alf Lovvold +59 he CGBros CGI VFX Spot HD: "Data to Design - Boracay" - by Aggressive +60 inibinimakarini FL Studio Tutorial - 004 Abmischung & Mastering +61 lender Guru Why You Should be Striving for Photorealism - Pausefest 2015 +62 lender Guru The Basics of Good Texturing in Blender +63 lender Guru The Secrets of Realistic Texturing in Blender +64 MITcH DEE BassBreaKer-ReadyForTakeOFF=FL-Studio Template-Tutorial=Trance +65 parkofPhoenix Alle Tastenkombinationen in Minecraft! F3+ +66 parkofPhoenix Die Melonenmaschine / Kürbismaschine! Vollautomatisch! - Minecraft Redstone Tutorial +67 parkofPhoenix Vollautomatischer Highspeed Ofen in Minecraft! - Minecraft Redstone Tutorial +68 he CGBros CGI & VFX Showreels HD: "2015 Summer Reel"- by Octavio.tv +69 ronkh LIFE IS STRANGE [S02E07] - Der Tag, an dem die Unschuld starb ★ Let's Play Life is Strange +70 emoband Intensiv investigativ - Ein Reporterstück +71 ilvUnion The Lego Movie - Everything is awesome! - Official Clip - Sing along +72 ukas Maldri The Lego Movie "Hier ist alles super" mit Filmausschnitten +73 ysticCerl Hier ist alles Super [FULL GERMAN VERSION] +74 he Synthetic Orchestra Game of Thrones (Re)Orchestra +75 he Synthetic Orchestra Elder Scrolls V - Skyrim Theme Remake +76 lue Monkey When Steve isn't online 2: Party Animals (60fps Minecraft Animation) +77 lue Monkey Do You Want to Build a Snowman? (Minecraft Animation) +78 lue Monkey World Hole (Minecraft Animation) +79 lue Monkey Amoozon Prime Air (Minecraft Animation) feat. Drones +80 ySpassde Stefan Raab vs. Max Giermann! - TV total +81 uperhomiefan Gronkh ließt Fanfiction vor unterlegt mit Musik +82 axence Cyrin Maxence Cyrin - Where Is My Mind (The Pixies Piano Cover) +83 lement Animation Your Door Was Locked! (Minecraft Animation) +84 tarwatch Entertainment Heino - Schwarz blüht der Enzian +85 heHoonigans [HOONIGAN] KEN BLOCK'S GYMKHANA SEVEN: WILD IN THE STREETS OF LOS ANGELES +86 anuzi1 Pitch Perfect Guetta - Titanium vs. Proclaimers - 500 miles vs. Midnight Oil - Beds r burning +87 lashdeckanimations Counter-Strike - DE dust2 HD +88 evingraham Behind The Scenes - Watch Dogs +89 evinsupertramp Watch Dogs Parkour in Real Life in 4K +90 EDx Talks Beatbox brilliance | Tom Thum | TEDxSydney +91 TXofficial Evolution of Music - Pentatonix +92 uskZeroSamOHare The Sandpit +93 hotohod photohod One Day in Berlin. Motion Timelapse. +94 urner Benelux A DRAMATIC SURPRISE ON A QUIET SQUARE +95 he Axis of Awesome 4 Chords | Music Videos | The Axis Of Awesome +96 achariah Scott The Turret Anthem +97 DEKA EDEKA Supergeil (feat. Friedrich Liechtenstein) +98 egobuildingblocks The CubeStormer 2 - World Record Rubik's Cube Solver made from LEGO NXT Mindstorms +99 Assemble LEGO® MindCuber +100 uelDJ Jasper Forks - River Flows In You +101 lement Animation Villager News 2 (Minecraft Animation) +102 lement Animation Villager News (Minecraft Animation) +103 lexanderlehmann X3: Buugle - was Google kann können wir schon lange! +104 lexanderlehmann X3: Willkommen bei Facebook. Wir wollen dich doch nur kennenlernen (HD) +105 ewstyle Area Extra3 Toll Der neue Personalausweis +106 lan Becker Animator vs. Animation II (original) +107 lan Becker Animator vs. Animation III (original) +108 unnarolla Canadian, Please #Canada150 | gunnarolla & Julia Bentley +109 VNorge Ylvis - The Fox (What Does The Fox Say?) [Official music video HD] +110 ySpassde Nehmen sie Awesome! - Jan Philipp Zymny - Finale NightWash Talent Award 2013 diff --git a/class/FLBjgyaf4Li1NpzaTLXEaY7A-05.03.2017_13-46-24.txt b/class/FLBjgyaf4Li1NpzaTLXEaY7A-05.03.2017_13-46-24.txt new file mode 100644 index 0000000000000000000000000000000000000000..d65722ff6386a2b973d854458ee15e99d0a51c68 --- /dev/null +++ b/class/FLBjgyaf4Li1NpzaTLXEaY7A-05.03.2017_13-46-24.txt @@ -0,0 +1,114 @@ +Playlist-ID = FLBjgyaf4Li1NpzaTLXEaY7A + +Nummer Kanal Video + +1 abian Sigrist Gronkh feat. Lara Loft – Drachenmurat - Das Album +2 sauce The Brachistochrone +3 arti Fischer 1 HARD Track vong STYLE her | Wie geht eigentlich Musik? +4 attle Bros Affiliate Lyrics #2 - ein Weihnachtsgedicht +5 ashup Mashup-Germany - Top of the Pops 2016 (65 Songs Mashup) +6 urt Hugo Schneider 2016 MASHUP - ULTIMATE MANNEQUIN CHALLENGE!! - Every hit song in 4 minutes +7 om Thum The Human Sample Kit Experiment--Tom Thum at YouTube Brandcast 2016 +8 ds Daily Popakademie Baden Württemberg - Boygroup Boys - We Are The Boys +9 ntel Intel's 500 Drone Light Show | Intel +10 oomieOfficial One Guy, 16 Voices +11 ctestflight 1000W LED on a DRONE - RCTESTFLIGHT +12 Private video +13 chroeter94 Definition eines Wertsackes +14 sauce What Is The Resolution Of The Eye? +15 elfmade Records 257ers - Holz (Official HD Video) +16 edi93 Willkommen bei Mario Barth - Fifty Shades Of Grey mit Dialekt +17 Private video +18 eter Hollens Game of Thrones - Peter Hollens feat. MatPat +19 ikolaj.Birek Game of Thrones - VHS Intro (UPDATED music) +20 aylorSwiftVEVO Taylor Swift - Out Of The Woods +21 udson Laipply Evolution of Dance +22 rbungle73 What if wild animals ate fast food +23 arry101UK Portal - Meet The Cores 2 +24 arti Fischer Shitschnacker | mit Gniechel +25 elodifestivalen Love Love, Peace peace - How to make a perfect Eurovision Song +26 YU Vocal Point Ultimate A Cappella Mashup: 25 Hits, 25 Years | BYU Vocal Point ft. Sophia Osmond - 4K One-Shot +27 YU Vocal Point Behind the Scenes of BYU Vocal Point's one-shot 'Ultimate A Cappella Mashup: 25 Hits, 25 Years' +28 wo Steps From Hell Two Steps From Hell - The Colonel +29 lement Animation BLOCK BY BLOCK - Music Video (Montage Song) +30 ameStar Beeindruckende Unreal Engine 4-Demo - »Blow by Emby« +31 ASS Potsdam Let's Talk About Soil - German +32 ASS Potsdam Let's Talk About Soil - English (w/ Dutch Subtitles) +33 oomieOfficial Best of One Guy, 14/15/23 Voices - Musical Impressions +34 a4cc Eggstatic – stroboscopic patterns for Easter eggs (EggBot) +35 hristus2121 In the air tonight - Cover (Vocoder Intro) +36 urt Hugo Schneider 2015 MASHUP - Every Hit Song In 4 Minutes +37 lexnesgabe RTL Stimme Patrick Linke +38 wo Steps From Hell Two Steps From Hell - Release Me +39 eter Hollens SKYRIM - Peter Hollens feat. Lindsey Stirling +40 eter Hollens Game of Thrones Theme - Lindsey Stirling & Peter Hollens +41 att Johnson 2015 Johnson Family Dubstep Christmas Light Show - Featured on ABC's The Great Christmas Light Fight +42 ronkh BEYOND: TWO SOULS [REMASTERED] [009] - Weihnachtsmärchen sind nicht immer schön +43 ctestflight 1000W LED Flashlight - Worlds Brightest (90,000 Lumens) +44 ySpassde Marcel Mann und der Sommer seines Lebens - Nightwash live +45 ronkh LIFE IS STRANGE [S05E07] - Flieg, kleiner Schmetterling! (ENDE) ★ Let's Play Life is Strange +46 elodysheep THE DRAGONS DAUGHTER - Game of Thrones Tribute Remix +47 JS WAT Talk reup +48 avaZone Norway JavaZone 2013: Javapocalypse +49 oomieOfficial [360 Music Video] This Summer - Roomie (Maroon 5 Cover) +50 dsfan1000 Cut The Rope Theme +51 gtPepper271294 Battlefield 2 Main Theme - High Definition +52 ronkh LIFE IS STRANGE [S04E02] - Ihr Allergrößter Wunsch ★ Let's Play Life is Strange +53 ome Sweet Home Home Sweet Home - The Animated Short Movie +54 love and Boots Vertical Video Syndrome - A PSA +55 enjamin Jaworskyj 📷 Schottland 🌍 Fotografie Dokumentation - Benjamin Jaworskyj around the World +56 he CGBros CGI VFX Spot HD: "Data to Design: Zante" - by Aggressive.tv +57 he CGBros CGI VFX Breakdowns HD: "DAWN OF THE STUFF MAKING OF" - by Alf Lovvold +58 he CGBros CGI VFX Trailers HD: "DAWN OF THE STUFF" - by Alf Lovvold +59 he CGBros CGI VFX Spot HD: "Data to Design - Boracay" - by Aggressive +60 inibinimakarini FL Studio Tutorial - 004 Abmischung & Mastering +61 lender Guru Why You Should be Striving for Photorealism - Pausefest 2015 +62 lender Guru The Basics of Good Texturing in Blender +63 lender Guru The Secrets of Realistic Texturing in Blender +64 MITcH DEE BassBreaKer-ReadyForTakeOFF=FL-Studio Template-Tutorial=Trance +65 parkofPhoenix Alle Tastenkombinationen in Minecraft! F3+ +66 parkofPhoenix Die Melonenmaschine / Kürbismaschine! Vollautomatisch! - Minecraft Redstone Tutorial +67 parkofPhoenix Vollautomatischer Highspeed Ofen in Minecraft! - Minecraft Redstone Tutorial +68 he CGBros CGI & VFX Showreels HD: "2015 Summer Reel"- by Octavio.tv +69 ronkh LIFE IS STRANGE [S02E07] - Der Tag, an dem die Unschuld starb ★ Let's Play Life is Strange +70 emoband Intensiv investigativ - Ein Reporterstück +71 ilvUnion The Lego Movie - Everything is awesome! - Official Clip - Sing along +72 ukas Maldri The Lego Movie "Hier ist alles super" mit Filmausschnitten +73 ysticCerl Hier ist alles Super [FULL GERMAN VERSION] +74 he Synthetic Orchestra Game of Thrones (Re)Orchestra +75 he Synthetic Orchestra Elder Scrolls V - Skyrim Theme Remake +76 lue Monkey When Steve isn't online 2: Party Animals (60fps Minecraft Animation) +77 lue Monkey Do You Want to Build a Snowman? (Minecraft Animation) +78 lue Monkey World Hole (Minecraft Animation) +79 lue Monkey Amoozon Prime Air (Minecraft Animation) feat. Drones +80 ySpassde Stefan Raab vs. Max Giermann! - TV total +81 uperhomiefan Gronkh ließt Fanfiction vor unterlegt mit Musik +82 axence Cyrin Maxence Cyrin - Where Is My Mind (The Pixies Piano Cover) +83 lement Animation Your Door Was Locked! (Minecraft Animation) +84 tarwatch Entertainment Heino - Schwarz blüht der Enzian +85 heHoonigans [HOONIGAN] KEN BLOCK'S GYMKHANA SEVEN: WILD IN THE STREETS OF LOS ANGELES +86 anuzi1 Pitch Perfect Guetta - Titanium vs. Proclaimers - 500 miles vs. Midnight Oil - Beds r burning +87 lashdeckanimations Counter-Strike - DE dust2 HD +88 evingraham Behind The Scenes - Watch Dogs +89 evinsupertramp Watch Dogs Parkour in Real Life in 4K +90 EDx Talks Beatbox brilliance | Tom Thum | TEDxSydney +91 TXofficial Evolution of Music - Pentatonix +92 uskZeroSamOHare The Sandpit +93 hotohod photohod One Day in Berlin. Motion Timelapse. +94 urner Benelux A DRAMATIC SURPRISE ON A QUIET SQUARE +95 he Axis of Awesome 4 Chords | Music Videos | The Axis Of Awesome +96 achariah Scott The Turret Anthem +97 DEKA EDEKA Supergeil (feat. Friedrich Liechtenstein) +98 egobuildingblocks The CubeStormer 2 - World Record Rubik's Cube Solver made from LEGO NXT Mindstorms +99 Assemble LEGO® MindCuber +100 uelDJ Jasper Forks - River Flows In You +101 lement Animation Villager News 2 (Minecraft Animation) +102 lement Animation Villager News (Minecraft Animation) +103 lexanderlehmann X3: Buugle - was Google kann können wir schon lange! +104 lexanderlehmann X3: Willkommen bei Facebook. Wir wollen dich doch nur kennenlernen (HD) +105 ewstyle Area Extra3 Toll Der neue Personalausweis +106 lan Becker Animator vs. Animation II (original) +107 lan Becker Animator vs. Animation III (original) +108 unnarolla Canadian, Please #Canada150 | gunnarolla & Julia Bentley +109 VNorge Ylvis - The Fox (What Does The Fox Say?) [Official music video HD] +110 ySpassde Nehmen sie Awesome! - Jan Philipp Zymny - Finale NightWash Talent Award 2013 diff --git a/class/application/Channel.class b/class/application/Channel.class new file mode 100644 index 0000000000000000000000000000000000000000..d3b753ae6643782f6a4dddab5ec0f54e2e0abeec Binary files /dev/null and b/class/application/Channel.class differ diff --git a/class/application/Controller.class b/class/application/Controller.class index 304405faccf05188f5cc419c71e7d96c042a842d..8d26e57c8f2f506499c8c0607590764325bd9dab 100644 Binary files a/class/application/Controller.class and b/class/application/Controller.class differ diff --git a/class/application/Main$1.class b/class/application/Main$1.class new file mode 100644 index 0000000000000000000000000000000000000000..9ce632387dce389c592955f24e24f9f577ccab60 Binary files /dev/null and b/class/application/Main$1.class differ diff --git a/class/application/Main$2.class b/class/application/Main$2.class deleted file mode 100644 index 46f690eddd8989d5cbf421f20ec20ce88f05d462..0000000000000000000000000000000000000000 Binary files a/class/application/Main$2.class and /dev/null differ diff --git a/class/application/Main.class b/class/application/Main.class index 8d3917d2364d175305174a29638c887f65c44596..99f89896275d0158af1b360ecfe3786cb8bf88c9 100644 Binary files a/class/application/Main.class and b/class/application/Main.class differ diff --git a/class/application/Playlist.class b/class/application/Playlist.class index fe7418799e7f78b6e38d8a07ff8b4b4cadf9fa5d..5a28f0b83f03af808bfc55af679d7e50efcfd34f 100644 Binary files a/class/application/Playlist.class and b/class/application/Playlist.class differ diff --git a/class/application/PlaylistHandler.class b/class/application/PlaylistHandler.class new file mode 100644 index 0000000000000000000000000000000000000000..6ff44215ef3ed5b78ee954b92ad5c38d1b4f7670 Binary files /dev/null and b/class/application/PlaylistHandler.class differ diff --git a/class/application/PlaylistItem.class b/class/application/PlaylistItem.class new file mode 100644 index 0000000000000000000000000000000000000000..e6723085a1f40c356517682e8a664dd19df46b34 Binary files /dev/null and b/class/application/PlaylistItem.class differ diff --git a/class/application/PlaylistThread.class b/class/application/PlaylistThread.class deleted file mode 100644 index bc1af41130fb9b07f42cffcfb5a13939a2d1d59e..0000000000000000000000000000000000000000 Binary files a/class/application/PlaylistThread.class and /dev/null differ diff --git a/src/application/Channel.java b/src/application/Channel.java new file mode 100644 index 0000000000000000000000000000000000000000..801f4e00164793ce556a0c42d0dab2b28bf38ef4 --- /dev/null +++ b/src/application/Channel.java @@ -0,0 +1,41 @@ +package application; + +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStreamReader; +import java.net.URL; + +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParser; + +public class Channel +{ + public static String getChannelNameForID(String ID) + { + String infos = ""; + try + { + URL url = new URL("http://www.youtube.com/oembed?url=http://www.youtube.com/watch?v="+ ID + "&format=json"); + BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream())); + + String inputLine; + while ((inputLine = in.readLine()) != null) + { + infos = infos + inputLine; + } + in.close(); + + JsonElement jsonElement = new JsonParser().parse(infos); + JsonObject jsonObject = jsonElement.getAsJsonObject(); + String author = jsonObject.get("author_name").getAsString(); + + return author; + } + catch(IOException e) + { + //video is not available + return ""; + } + } +} \ No newline at end of file diff --git a/src/application/Controller.java b/src/application/Controller.java index 5d367c0f6180b24f8698ac08dc4d5988563a5cb9..ad920ac134398c4740245635c199a1d0fcaa3f02 100644 --- a/src/application/Controller.java +++ b/src/application/Controller.java @@ -18,92 +18,83 @@ import javafx.scene.image.Image; import javafx.scene.image.ImageView; import javafx.stage.DirectoryChooser; import javafx.stage.Stage; +import tools.Worker; public class Controller implements Initializable { - @FXML - private TextField textFieldPath; - @FXML - private TextField textFieldID; - @FXML - public Button buttonPath; - @FXML - public Button buttonSave; - @FXML - private ImageView imageView; - @FXML - public ProgressIndicator progressIndicator; - - + @FXML private TextField textFieldPath; + @FXML private TextField textFieldID; + @FXML public Button buttonPath; + @FXML public Button buttonSave; + @FXML private ImageView imageView; + @FXML public ProgressIndicator progressIndicator; + public Stage stage; private boolean pathSelected; private String path; public boolean running; - public PlaylistThread thread; public static File[] files; - - + public void setStage(Stage s) { stage = s; - } - + } + @FXML public void buttonPath(ActionEvent e) - { - DirectoryChooser chooser = new DirectoryChooser(); - chooser.setTitle("Speicherort ausw�hlen"); - File file = chooser.showDialog(stage); - if(file!=null) - { - path = file.getPath() + "\\"; - textFieldPath.setText(path); - pathSelected = true; - - files = file.listFiles(); - } + { + DirectoryChooser chooser = new DirectoryChooser(); + chooser.setTitle("Speicherort ausw�hlen"); + File file = chooser.showDialog(stage); + if(file != null) + { + path = file.getPath() + "\\"; + textFieldPath.setText(path); + pathSelected = true; + + files = file.listFiles(); + } } - + @FXML public void buttonSave(ActionEvent e) - { + { if(pathSelected) { String ID = textFieldID.getText(); if(ID.equals("")) { - Alert alert = new Alert(AlertType.WARNING); + Alert alert = new Alert(AlertType.WARNING); alert.setTitle("Achtung"); alert.setHeaderText(""); alert.getDialogPane().setPrefSize(350, 120); alert.setContentText("Bitte eine Playlist-ID eingeben!"); - alert.initOwner(stage); - alert.showAndWait(); + alert.initOwner(stage); + alert.showAndWait(); } else - { + { progressIndicator.setVisible(true); buttonPath.setDisable(true); buttonSave.setDisable(true); imageView.requestFocus(); running = true; - - thread = new PlaylistThread(); - thread.path = path; - thread.ID = ID; - thread.controller = this; - thread.stage = this.stage; - thread.start(); + + Playlist playlist = new Playlist(ID); + PlaylistHandler handler = new PlaylistHandler(path, playlist, this); + Worker.runLater(()->{ + handler.run(); + }); } } else { - Alert alert = new Alert(AlertType.WARNING); + Alert alert = new Alert(AlertType.WARNING); alert.setTitle("Achtung"); alert.setHeaderText(""); alert.getDialogPane().setPrefSize(350, 120); - alert.setContentText("Bitte einen Speicherort ausw�hlen!"); - alert.initOwner(stage); + alert.setContentText("Bitte einen Speicherort ausw�hlen!"); + alert.initOwner(stage); alert.showAndWait(); } } @@ -112,33 +103,38 @@ public class Controller implements Initializable public void initialize(URL arg0, ResourceBundle arg1) { pathSelected = false; - + Image icon = new Image("/application/list.png"); imageView.setImage(icon); progressIndicator.setVisible(false); running = false; - + try { String jarPath = Controller.class.getProtectionDomain().getCodeSource().getLocation().getPath(); String decodedPath = URLDecoder.decode(jarPath, "UTF-8"); decodedPath = decodedPath.substring(1, decodedPath.length()); int start = decodedPath.lastIndexOf("/"); - decodedPath = decodedPath.substring(0, start+1); - textFieldPath.setText(decodedPath); + decodedPath = decodedPath.substring(0, start + 1); + textFieldPath.setText(decodedPath); path = decodedPath; - pathSelected = true; - refreshFiles(); - } + pathSelected = true; + refreshFiles(); + } catch(UnsupportedEncodingException e) - { + { e.printStackTrace(); - } + } } - + public void refreshFiles() { File newFile = new File(path); - files = newFile.listFiles(); + files = newFile.listFiles(); + } + + public Stage getStage() + { + return stage; } } \ No newline at end of file diff --git a/src/application/Main.java b/src/application/Main.java index 4bb77d3c269aef0e5000c059d832d052dee0f2c1..fefe20fdce241706b562d1c06f7485d2a125562e 100644 --- a/src/application/Main.java +++ b/src/application/Main.java @@ -9,6 +9,7 @@ import javafx.scene.Scene; import javafx.scene.image.Image; import javafx.stage.Stage; import javafx.stage.WindowEvent; +import tools.Worker; public class Main extends Application { @@ -18,33 +19,26 @@ public class Main extends Application try { FXMLLoader loader = new FXMLLoader(getClass().getClassLoader().getResource("application/SaveMyPlayListGUI.fxml")); - Parent root = (Parent)loader.load(); - - Scene scene = new Scene(root,600,290); - + Parent root = (Parent)loader.load(); + + Scene scene = new Scene(root, 600, 290); stage.setResizable(false); - - ((Controller)loader.getController()).setStage(stage); - stage.getIcons().add(new Image("/application/list.png")); - Controller controller = ((Controller)loader.getController()); - - Platform.runLater(()->{ - - stage.setOnCloseRequest(new EventHandler<WindowEvent>() + controller.setStage(stage); + + Platform.runLater(() -> { + + stage.setOnCloseRequest(new EventHandler<WindowEvent>() + { + public void handle(WindowEvent we) { - public void handle(WindowEvent we) - { - if(controller.running) - { - controller.thread.stop(); - } - } - }); - }); - - stage.setTitle("SaveMyPlaylist"); + Worker.shutdown(); + } + }); + }); + + stage.setTitle("SaveMyPlaylist - v1.1.0 (2)"); stage.setScene(scene); stage.show(); } diff --git a/src/application/Playlist.java b/src/application/Playlist.java index 57101d32f96fba8eff7007590cfd91013ccc1077..225c0bd472745eaf3087f80ccbb37ce169b27ecd 100644 --- a/src/application/Playlist.java +++ b/src/application/Playlist.java @@ -15,23 +15,34 @@ import java.util.ArrayList; import java.util.Calendar; import java.util.Date; +import com.google.gson.JsonArray; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParser; + public class Playlist { - private static String key = "AIzaSyAeFXC-EZ3e3DKsPXx0fxiU9fZhum8F7P4"; - private static int longest; - private static boolean compared; - private static int missing; + private String playlistID; + private final String API_KEY = "AIzaSyAeFXC-EZ3e3DKsPXx0fxiU9fZhum8F7P4"; + private boolean compared; + private int missing; + private final String PLAYLIST_ITEM_IDENTIFIER = "youtube#playlistItem"; - public static String getJSON(String pageToken, String playlistID) throws IOException + public Playlist(String playlistID) + { + this.playlistID = playlistID; + } + + private String getJSON(String pageToken, String playlistID) throws IOException { URL url; if(!pageToken.equals("")) { - url = new URL("https://www.googleapis.com/youtube/v3/playlistItems?part=snippet&maxResults=50&playlistId=" + playlistID + "&pageToken=" + pageToken + "&key=" + key); + url = new URL("https://www.googleapis.com/youtube/v3/playlistItems?part=snippet&maxResults=50&playlistId=" + playlistID + "&pageToken=" + pageToken + "&key=" + API_KEY); } else { - url = new URL("https://www.googleapis.com/youtube/v3/playlistItems?part=snippet&maxResults=50&playlistId=" + playlistID + "&key=" + key); + url = new URL("https://www.googleapis.com/youtube/v3/playlistItems?part=snippet&maxResults=50&playlistId=" + playlistID + "&key=" + API_KEY); } BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream())); @@ -48,7 +59,7 @@ public class Playlist return infos; } - public static String getCompleteJSON(String playlistID) throws IOException + private JsonObject getCompleteJSON(String playlistID) throws IOException { ArrayList<String> allJSON = new ArrayList<String>(); @@ -58,117 +69,79 @@ public class Playlist while(allJSON.get(lastIndex).contains("nextPageToken")) { - String current = allJSON.get(lastIndex); - int start = current.indexOf("nextPageToken"); - current = current.substring(start + 17, current.length()); - int end = current.indexOf("\""); - current = current.substring(0, end); + JsonElement jsonElement = new JsonParser().parse(allJSON.get(lastIndex)); + JsonObject jsonObject = jsonElement.getAsJsonObject(); + String nextPageToken = jsonObject.get("nextPageToken").getAsString(); - allJSON.add(getJSON(current, playlistID)); + allJSON.add(getJSON(nextPageToken, playlistID)); lastIndex++; } - String result = ""; - for(int i = 0; i < allJSON.size(); i++) + JsonArray resultArray = new JsonArray(); + + for(String currentString : allJSON) { - result = result + allJSON.get(i); + JsonElement currentElement = new JsonParser().parse(currentString); + resultArray.add(currentElement); } - return result; - } - - public static ArrayList<String> getTitles(String jsonData) - { - ArrayList<String> titles = new ArrayList<String>(); - int position = jsonData.indexOf("\"title\":"); - while(position != -1) - { - jsonData = jsonData.substring(position + 10 , jsonData.length()); - int end = jsonData.indexOf("\","); - String current = jsonData.substring(0, end); - current = current.replace("\\", ""); - - titles.add(current); - position = jsonData.indexOf("\"title\":"); - } - return titles; + JsonObject resultObject = new JsonObject(); + resultObject.add("pages", resultArray); + + return resultObject; } - public static ArrayList<String> getVideoIDs(String jsonData) - { - ArrayList<String> IDs = new ArrayList<String>(); - int position = jsonData.indexOf("videoId"); - while(position != -1) - { - jsonData = jsonData.substring(position + 11 , jsonData.length()); - int end = jsonData.indexOf("\""); - String current = jsonData.substring(0, end); - IDs.add(current); - position = jsonData.indexOf("videoId"); - } - return IDs; - } + private ArrayList<PlaylistItem> getPlaylistItems(JsonObject json) + { + ArrayList<PlaylistItem> playlistItems = new ArrayList<>(); - public static ArrayList<String> getChannels(ArrayList<String> IDs) - { - ArrayList<String> channels = new ArrayList<String>(); - for(int i = 0; i < IDs.size(); i++) - { - String infos = ""; - try - { - URL url = new URL("http://www.youtube.com/oembed?url=http://www.youtube.com/watch?v="+ IDs.get(i) + "&format=json"); - BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream())); - - String inputLine; - while ((inputLine = in.readLine()) != null) - { - infos = infos + inputLine; - } - in.close(); - - int start = infos.indexOf("author_name") + 15; - infos = infos.substring(start, infos.length()); - int end = infos.indexOf("\""); - infos = infos.substring(0, end); - - if(infos.length() > longest) - { - longest = infos.length(); - } - channels.add(infos); - } - catch(IOException e) - { - channels.add(""); - } - } - return channels; + JsonArray jsonArray = json.getAsJsonArray("pages"); + + for(int i = 0; i < jsonArray.size(); i++) + { + JsonObject currentPage = jsonArray.get(i).getAsJsonObject(); + JsonArray itemsArray = currentPage.getAsJsonArray("items"); + + for(int k = 0; k < itemsArray.size(); k++) + { + JsonObject currentItem = itemsArray.get(k).getAsJsonObject(); + + if(currentItem.get("kind").getAsString().equalsIgnoreCase(PLAYLIST_ITEM_IDENTIFIER)) + { + String channelName = Channel.getChannelNameForID(currentItem.getAsJsonObject("snippet").getAsJsonObject("resourceId").get("videoId").getAsString()); + String title = currentItem.get("snippet").getAsJsonObject().get("title").getAsString(); + playlistItems.add(new PlaylistItem(channelName, title)); + } + } + } + + return playlistItems; } - public static ArrayList<String[]> combineData(ArrayList<String> titles, ArrayList<String> channels) + private int getLongestChannelCharacterCount(ArrayList<PlaylistItem> playlistItems) { - ArrayList<String[]> combinedData = new ArrayList<String[]>(); - for(int i = 0; i < titles.size(); i++) + int longest = 0; + for(PlaylistItem currentItem : playlistItems) { - String[] current = new String[2]; - current[0] = titles.get(i); - current[1] = channels.get(i); - combinedData.add(current); + if(currentItem.getChannel().length() > longest) + { + longest = currentItem.getChannel().length(); + } } - return combinedData; + return longest; } - public static void writeToFile(String path, ArrayList<String[]> combinedData, String playlistID) throws IOException + @SuppressWarnings("static-access") + private void writeToFile(String path, ArrayList<PlaylistItem> playlistItems, String playlistID) throws IOException { String date = getDate(); File datei = null; datei = new File (path + playlistID + "-" + date + ".txt"); - datei.createNewFile(); + datei.createNewFile(); - longest = longest + 15; + int longest = getLongestChannelCharacterCount(playlistItems) + 15; BufferedWriter out = null; @@ -183,17 +156,17 @@ public class Playlist out.newLine(); - for(int i = 0; i < combinedData.size(); i++) + for(int i = 0; i < playlistItems.size(); i++) { String formatted = ""; - formatted = formatted.format("%-10s %-" + longest +"s %s", i+1, combinedData.get(i)[1], combinedData.get(i)[0]); + formatted = formatted.format("%-10s %-" + longest +"s %s", i+1, playlistItems.get(i).getChannel(), playlistItems.get(i).getVideoName()); out.write(formatted); out.newLine(); } - ArrayList<String> removedLines = comparePlaylists(readLogFile(checkForPreviousLogs(Controller.files, playlistID)), combinedData); + ArrayList<String> removedLines = comparePlaylists(readLogFile(checkForPreviousLogs(Controller.files, playlistID)), playlistItems); if(removedLines.size() > 0) { @@ -211,19 +184,20 @@ public class Playlist out.close(); } - public static String getDate() + private String getDate() { Calendar cal = Calendar.getInstance(); SimpleDateFormat ausgabe = new SimpleDateFormat("dd.MM.yyyy_HH-mm-ss"); return ausgabe.format(cal.getTime()); } - public static boolean playlistExists(String playlistID) + private boolean playlistExists(String playlistID) { try { - URL url = new URL("https://www.googleapis.com/youtube/v3/playlistItems?part=snippet&maxResults=50&playlistId=" + playlistID + "&key=" + key); + URL url = new URL("https://www.googleapis.com/youtube/v3/playlistItems?part=snippet&maxResults=50&playlistId=" + playlistID + "&key=" + API_KEY); BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream())); + in.close(); return true; } @@ -233,15 +207,13 @@ public class Playlist } } - public static void savePlaylist(String path, String playlistID) throws IllegalArgumentException, IOException + public void savePlaylist(String path) throws IllegalArgumentException, IOException { if(playlistExists(playlistID)) { - String jsonData = getCompleteJSON(playlistID); - ArrayList<String> titles = getTitles(jsonData); - ArrayList<String> channels = getChannels(getVideoIDs(jsonData)); - ArrayList<String[]> combinedData = combineData(titles, channels); - writeToFile(path, combinedData, playlistID); + JsonObject json = getCompleteJSON(playlistID); + ArrayList<PlaylistItem> playlistItems = getPlaylistItems(json); + writeToFile(path, playlistItems, playlistID); } else { @@ -249,7 +221,7 @@ public class Playlist } } - public static File checkForPreviousLogs(File[] files, String playlistID) + private File checkForPreviousLogs(File[] files, String playlistID) { ArrayList<File> logsPaths = new ArrayList<File>(); ArrayList<String> logs = new ArrayList<String>(); @@ -312,7 +284,7 @@ public class Playlist } } - public static ArrayList<String> readLogFile(File file) + private ArrayList<String> readLogFile(File file) { if(file != null) { @@ -357,7 +329,7 @@ public class Playlist return null; } - public static ArrayList<String> comparePlaylists( ArrayList<String> lines, ArrayList<String[]> combinedData) + private ArrayList<String> comparePlaylists( ArrayList<String> lines, ArrayList<PlaylistItem> playlistItems) { ArrayList<String> removedLines = new ArrayList<String>(); if(lines != null) @@ -371,9 +343,9 @@ public class Playlist for(int i = 4; i < lines.size(); i++) { removed[i] = true; - for(int j = 0; j < combinedData.size(); j++) + for(int j = 0; j < playlistItems.size(); j++) { - if(lines.get(i).contains(combinedData.get(j)[0]) && lines.get(i).contains(combinedData.get(j)[1])) + if(lines.get(i).contains(playlistItems.get(j).getChannel()) && lines.get(i).contains(playlistItems.get(j).getVideoName())) { removed[i] = false; } @@ -398,12 +370,12 @@ public class Playlist return removedLines; } - public static boolean getCompared() + public boolean getCompared() { return compared; } - public static int getMissing() + public int getMissing() { return missing; } diff --git a/src/application/PlaylistThread.java b/src/application/PlaylistHandler.java similarity index 75% rename from src/application/PlaylistThread.java rename to src/application/PlaylistHandler.java index bb5beafbe3e9ae6a84d67a626e1dd3bee93d8ff2..9ff767afbeca94157f21ff766d7bd2d843c4ea08 100644 --- a/src/application/PlaylistThread.java +++ b/src/application/PlaylistHandler.java @@ -5,26 +5,28 @@ import java.io.IOException; import javafx.application.Platform; import javafx.scene.control.Alert; import javafx.scene.control.Alert.AlertType; -import javafx.stage.Stage; +public class PlaylistHandler +{ + private String path; + private Playlist playlist; + private Controller controller; + public PlaylistHandler(String path, Playlist playlist, Controller controller) + { + this.path = path; + this.playlist = playlist; + this.controller = controller; + } -public class PlaylistThread extends Thread -{ - public static boolean running; - public static String path; - public static String ID; - public static Controller controller; - public static Stage stage; - - @Override public void run() - { + { try - { + { + try { - Playlist.savePlaylist(path, ID); + playlist.savePlaylist(path); controller.refreshFiles(); } catch(IOException e) @@ -35,7 +37,7 @@ public class PlaylistThread extends Thread alert.setHeaderText(""); alert.getDialogPane().setPrefSize(350, 120); alert.setContentText("Ein Fehler ist aufgetreten!"); - alert.initOwner(stage); + alert.initOwner(controller.getStage()); alert.showAndWait(); }); } @@ -47,7 +49,7 @@ public class PlaylistThread extends Thread controller.running = false; }); - if(Playlist.getCompared()) + if(playlist.getCompared()) { Platform.runLater(()->{ Alert alert = new Alert(AlertType.INFORMATION); @@ -56,9 +58,9 @@ public class PlaylistThread extends Thread alert.getDialogPane().setPrefSize(350, 145); alert.setContentText("Playlist erfolgreich gespeichert. \n" + "\n" - + "Fehlende Videos: " + Playlist.getMissing() + "\n" - + "F�r weitere Informationen siehe Textdatei."); - alert.initOwner(stage); + + "Fehlende Videos: " + playlist.getMissing() + "\n" + + "Für weitere Informationen siehe Textdatei."); + alert.initOwner(controller.getStage()); alert.showAndWait(); }); } @@ -72,7 +74,7 @@ public class PlaylistThread extends Thread alert.setContentText("Playlist erfolgreich gespeichert. \n" + "\n" + "Keine Datei zum Vergleich gefunden."); - alert.initOwner(stage); + alert.initOwner(controller.getStage()); alert.showAndWait(); }); } @@ -92,7 +94,7 @@ public class PlaylistThread extends Thread alert.setHeaderText(""); alert.getDialogPane().setPrefSize(350, 120); alert.setContentText("Keine Playlist zur eingegebenen ID gefunden!"); - alert.initOwner(stage); + alert.initOwner(controller.getStage()); alert.showAndWait(); }); } diff --git a/src/application/PlaylistItem.java b/src/application/PlaylistItem.java new file mode 100644 index 0000000000000000000000000000000000000000..67972a420b3f30f76a83c988e934aa1647d4793e --- /dev/null +++ b/src/application/PlaylistItem.java @@ -0,0 +1,29 @@ +package application; + +public class PlaylistItem +{ + private String channel; + private String videoName; + + public PlaylistItem(String channel, String videoName) + { + this.channel = channel; + this.videoName = videoName; + } + + public String getChannel() + { + return channel; + } + + public String getVideoName() + { + return videoName; + } + + @Override + public String toString() + { + return "PlaylistItem [channel=" + channel + ", videoName=" + videoName + "]"; + } +}