diff options
| author | Donald Shan <xxpinapelzxx@gmail.com> | 2022-10-23 14:16:58 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-10-23 14:16:58 -0700 |
| commit | 7033ebe8d48b3c372f4fd30b30e4611b23e02566 (patch) | |
| tree | 55882c2a57d073193a8eb4fe1d9fccaffb6762c5 | |
| parent | 76d77da29c5386cb9ea3b64c07fe43571cfcd246 (diff) | |
Delete Main.java
| -rw-r--r-- | Main.java | 258 |
1 files changed, 0 insertions, 258 deletions
diff --git a/Main.java b/Main.java deleted file mode 100644 index 8868afe..0000000 --- a/Main.java +++ /dev/null @@ -1,258 +0,0 @@ -import java.awt.*;
-import java.awt.event.ActionEvent;
-import java.awt.event.ActionListener;
-import java.io.*;
-import java.lang.reflect.Array;
-import java.util.ArrayList;
-import java.util.Arrays;
-
-import org.jaudiotagger.audio.AudioFile;
-import org.jaudiotagger.audio.AudioFileIO;
-import org.jaudiotagger.tag.FieldKey;
-import org.jaudiotagger.tag.Tag;
-import org.jaudiotagger.tag.datatype.Artwork;
-import javax.swing.*;
-import javax.swing.text.DefaultCaret;
-
-
-public class Main extends JFrame {
- String textPath = "";
- JPanel panel = new JPanel();
- Boolean readyState = false;
- JScrollPane scrollPane;
- JButton editButton = new JButton("Edit Tags");
- int progress = 0;
- String formats[] = {"maxresdefault.jpg","mqdefault.jpg","hqdefault.jpg"};
- FileUtility fileUtil = new FileUtility();
- JProgressBar progressBar = new JProgressBar();
- JLabel title = new JLabel("YouTube to MP3 Auto Tagging");
- JButton startButton = new JButton("Set .txt File");
- static JTextArea outputArea = new JTextArea("");
-
- public Main(){
- initializeComponents();
- initializeActionsListeners();
- }
-
- public static void main(String[] args) {
- new Main().setVisible(true);
- }
-
- private void downloadAndTag(){ //Main loop ran for checking list of songs, downloading mp3 files, and applying tags
- ArrayList<String> songs = fileUtil.txtToArrayList(textPath);
- progress = 0;
- String timeAppend = "";
- boolean partFlag = false;
- for(int i = 0;i<songs.size();i++) {
- try {
- fileUtil.deleteAllFilesDir("downloaded");
- ArrayList<String> splitStamp = null;
- try{
- splitStamp = new ArrayList<>(Arrays.asList(songs.get(i).split(",")));
- }
- catch(Exception e) {
-
- }
- if(splitStamp.size()>=2){
- timeAppend = youtubeToMP3Part(splitStamp.get(0),splitStamp.get(1));
- partFlag = true;
- }
- else{
- youtubeToMP3Full(songs.get(i));
- }
-
- String info[] = fileUtil.parseJson(fileUtil.jsonToString(fileUtil.findJsonFile("downloaded"))); //title,uploader
- String uploader = info[1];
- String title = info[0];
- AudioFile f = AudioFileIO.read(fileUtil.findMP3File("downloaded"));
- Tag tag = f.getTag();
- tag.setField(FieldKey.ARTIST, uploader);
- tag.setField(FieldKey.TITLE, title);
- fileUtil.downloadImage("https://img.youtube.com/vi/"+info[2]+"/","img.jpg",formats);
- Artwork cover = Artwork.createArtworkFromFile(new File("img.jpg"));
- tag.addField(cover);
- f.commit();
- fileUtil.deleteFile("img.jpg");
- if(partFlag){
- fileUtil.moveFile(fileUtil.findMP3File("downloaded").getAbsolutePath(), "completed/"
- + fileUtil.removeNonAlphaNumeric(info[0]) +
- " ["+info[2]+ "]"+timeAppend+".mp3");
- }
- else{
- fileUtil.moveFile(fileUtil.findMP3File("downloaded").getAbsolutePath(), "completed/" +
- fileUtil.removeNonAlphaNumeric(info[0]) + " ["+info[2]+ "].mp3");
- }
- outputArea.setText(outputArea.getText()+"\n"+"Moved file to Completed Folder");
- progress = i;
- System.out.println("Current Progress " + calculatePercentage(i+1,songs.size()));
- progressBar.setValue(calculatePercentage(i+1,songs.size()));
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- }
-
- private int calculatePercentage(int current, int total){//Calculate the percentage when give numerator and denominator
- double currentD = current;
- double totalD = total;
- return (int)((currentD/totalD)*100);
- }
-
- public static void showWarning(String message) {
- JOptionPane.showMessageDialog(null, message, "JUST YOUR FRIENDLY NEIGHBORLY REMINDER", JOptionPane.WARNING_MESSAGE);
- }
-
- public static void youtubeToMP3Full(String url) {//Download mp3 of youtube video using yt-dlp.exe. Ran from cmd
- try {
- ProcessBuilder builder = new ProcessBuilder(
- "yt-dlp.exe",
- "--extract-audio",
- "--audio-format", "mp3",
- "--audio-quality", "0",
- "--output", "downloaded/%(title)s_%(id)s.mp3",
- "--ffmpeg-location","ffmpeg.exe",
- "--write-info-json",
- url
- );
- builder.redirectErrorStream(true);
- Process p = builder.start();
- BufferedReader r = new BufferedReader(new InputStreamReader(p.getInputStream()));
- String line;
- while (true) {
- line = r.readLine();
- if (line == null) {
- break;
- }
- outputArea.setText(outputArea.getText()+"\n"+line);
- System.out.println(line);
- }
- } catch (Exception e) {
- e.printStackTrace();
- }
-
- }
- public static String youtubeToMP3Part(String url,String stamp) {//Download mp3 of youtube video using yt-dlp.exe. Ran from cmd
- System.out.println(url + " " + stamp);
- ArrayList<String> times = new ArrayList<>(Arrays.asList(stamp.split("-")));
- ArrayList<String> startTimeComponents = new ArrayList<>(Arrays.asList(times.get(0).split(":")));
- ArrayList<String> endTimeComponents = new ArrayList<>(Arrays.asList(times.get(1).split(":")));
- int startSec = 0;
- int endSec = 0;
- if(startTimeComponents.size()==3){
- startSec = Integer.parseInt(startTimeComponents.get(0))*60*60+Integer.parseInt(startTimeComponents.get(1))*60+Integer.parseInt(startTimeComponents.get(2));
- }
- else if(startTimeComponents.size()==2){
- startSec = Integer.parseInt(startTimeComponents.get(0))*60+Integer.parseInt(startTimeComponents.get(1));
- }
- if(endTimeComponents.size()==3){
- endSec = Integer.parseInt(endTimeComponents.get(0))*60*60+Integer.parseInt(endTimeComponents.get(1))*60+Integer.parseInt(endTimeComponents.get(2));
- }
- else if(endTimeComponents.size()==2){
- endSec = Integer.parseInt(endTimeComponents.get(0))*60+Integer.parseInt(endTimeComponents.get(1));
- }
- try {
- ProcessBuilder builder = new ProcessBuilder(
- "yt-dlp.exe",
- "--extract-audio",
- "--audio-format", "mp3",
- "--audio-quality", "0",
- "--output", "downloaded/%(title)s_%(id)s.mp3",
- "--ffmpeg-location","ffmpeg.exe",
- "--write-info-json","--download-sections","\"*"+startSec+"-"+endSec+"\"",
- "--force-keyframes-at-cuts",
- url
- );
- builder.redirectErrorStream(true);
- Process p = builder.start();
- BufferedReader r = new BufferedReader(new InputStreamReader(p.getInputStream()));
- String line;
- while (true) {
- line = r.readLine();
- if (line == null) {
- break;
- }
- outputArea.setText(outputArea.getText()+"\n"+line);
- System.out.println(line);
- }
- } catch (Exception e) {
- e.printStackTrace();
- }
- return startSec+"to"+endSec;
- }
-
-
- private void initializeComponents(){//Initiate GUI components
- this.setDefaultCloseOperation(EXIT_ON_CLOSE);
- this.setLocationRelativeTo(null);
- this.add(panel);
- panel.setLayout(new BoxLayout(panel,BoxLayout.PAGE_AXIS));
- scrollPane = new JScrollPane(outputArea);
- scrollPane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
- outputArea.setEditable(true);
- outputArea.setLineWrap(true);
- DefaultCaret caret = (DefaultCaret)outputArea.getCaret();
- caret.setUpdatePolicy(DefaultCaret.ALWAYS_UPDATE);
- panel.add(Box.createRigidArea(new Dimension(0,5)));
- panel.setBorder(BorderFactory.createEmptyBorder(25,10,20,10));
- startButton.setAlignmentX(CENTER_ALIGNMENT);
- title.setAlignmentX(Component.CENTER_ALIGNMENT);
- editButton.setAlignmentX(Component.CENTER_ALIGNMENT);
- progressBar.setStringPainted(true);
- title.setFont(new Font("Verdana", Font.PLAIN, 14));
- panel.add(title);
- panel.add(Box.createVerticalStrut(10));
- panel.add(progressBar);
- panel.add(Box.createVerticalStrut(10));
- panel.add(startButton);
- panel.add(Box.createVerticalStrut(8));
- panel.add(scrollPane);
- panel.add(Box.createVerticalStrut(5));
- panel.add(editButton);
- this.setSize(550,450);
- this.setTitle("YTMP3Tagger");
- }
-
- private void initializeActionsListeners(){//Add all actionlisteners for buttons
- startButton.addActionListener(new ActionListener() {
- @Override
- public void actionPerformed(ActionEvent e) {
- if(readyState==false){
- outputArea.setText(outputArea.getText()+"\n"+"txt path has not been set. Launching chooserPane");
- System.out.println(".txt path has not been set. Launching chooserPane");
- textPath = fileUtil.showTextFileChooser();
- try {
- if (!textPath.equals("")) {
- showWarning("File has been set.\nMake sure you add a new line for each URL");
- readyState = true;
- startButton.setText("Start Download");
- outputArea.setText(outputArea.getText() + "\n" + "Ready to begin downloading. Press the button");
- System.out.println("Ready to begin downloading. Press the button");
- }
- }
- catch(Exception ex){
-
- }
- }
- else{
- Runnable runnable = () -> {
- outputArea.setText("");
- startButton.setEnabled(false);
- downloadAndTag();
- startButton.setEnabled(true);
-
- };
- Thread thread = new Thread(runnable);
- thread.start();
- }
- }
- });
- editButton.addActionListener(new ActionListener() {
- @Override
- public void actionPerformed(ActionEvent e){
- new TagEditorScreen().setVisible(true);
- }
- });
- }
-
-
-}
\ No newline at end of file |
