ClipConverter.cc, 유튜브 동영상 무료 컨버터 및 다운로드


유튜브(YouTube) 영상을 인코딩 해야할 필요성이 있어서 여기저기 찾아보던 중...

구글 검색을 통해(역시 구글신..) 발견하게된 ClipConverter.cc란 해외 사이트 입니다.


신기하게도 유튜브 사이트 영상을 레코더해서 MP3, MP4, AVI, MOV 등 원하는 인코딩으로 음성 또는 영상으로 변환시켜 줄 뿐만 아니라 변환된 영상을 직접 다운로드까지 가능하더군요.


많이들 원하시는 유튜브 음원추출 (유튜브 mp3 추출) 역시 할 수 있다는 거지요.

유튜브 동영상 컨버터 및 다운로드 Clip Converter 사이트


유튜브 동영상의 주소를 넣고 원하는 인코딩 방식을 정한다음 변환 시키면 끝입니다.

변환후에는 PC로 파일 다운로드가 가능합니다.


구글 드롭박스 등을 통해 직접 파일을 올려 변환하는 것도 가능한것 같습니다.


반신반의로 직접 테스트 해 보았습니다만...깔끔하게 진행되어 내심 놀랐네요.

더구나 무료로 말이지요. 하핫;;


이젠 동영상을 웹 사이트에서 변형 가공하여 다운로드 할 수 있는 시대가 되었다니 새롭군요.

간만에 정말 유용한 유튜브 다운로더 사이트를 발견하게되어 기분 좋은 마음으로 공유해 드립니다.


* 무료 유튜브 비디오 레코더, 컨버터 및 다운로드

ClipConverter.cc 사이트 주소 : http://www.clipconverter.cc


해외 영문 사이트다보니...

영어 울릉증에 두려우시거나 꺼려지시는분들 많으실거 같다는 생각이 들었습니다.

그래서 이번에 강좌 영상을 찍어 보았습니다.

영상으로 쉽게 배우세요. 



재밌는 게임 영상들이 많이 올라오는 유튜브 입니다. 

보신후 구독하기 한번씩 눌러주세요.^^


블로그 이미지

은빛늑대(天狼)

MIXI (Martial arts, Investment in stocks X Information tech) World...since 2008

JSP와 MySQL 그리고 JDBC를 처음 사용하면서 DB에 데이터를 저장하거나 불러올때 한글깨짐 현상때문에 해결하느라 고생한 경험이 있습니다. (Oracle도 연결부분의 설정을 제외하고는 동일합니다.)

같은문제로 고민하는 분들께 도움이되도록
그때 해 놓았던 한글깨짐 현상과 관련된 설정들을 상황별로 공개합니다.

Tomcat 6.0


<conf/server.xml>

<!-- Tomcat TMJ Context -->

  <Context path="" docBase="c:\mysite" debug="1" reloadable="true" crossContext="true"> 

  <Resource name="jdbc/mysiteDB" auth="Container" type="javax.sql.DataSource" maxActive="100" maxIdle="30" maxWait="5000" username="root" password="" driverClassName="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:3306/mysite?characterEncoding=euckr"/>


<conf/web.xml>

<servlet>
        <servlet-name>jsp</servlet-name>
        <servlet-class>org.apache.jasper.servlet.JspServlet</servlet-class>
        <init-param>
            <param-name>fork</param-name>
            <param-value>false</param-value>
        </init-param>
        <init-param>
            <param-name>xpoweredBy</param-name>
            <param-value>false</param-value>
        </init-param>
        <load-on-startup>3</load-on-startup>
    </servlet>


이것만으로 안될경우 conf 폴더에 context.xml 을 만들어 봅니다.

<context.xml>

<?xml version='1.0' encoding='utf-8'?>
<Context>
    <WatchedResource>WEB-INF/web.xml</WatchedResource>
</Context>

jsp 페이지 최상단의 charset 설정은 기본

<%@ page language="java" import="java.sql.*, java.lang.*, java.util.* " contentType= "text/html;charset=euc-kr"%>

post로 전송시 제대로 안나올시 코드 추가

//한글이 정상출력이 안된다면 아래 코드를 추가
<% request.setCharacterEncoding("euc-kr"); %>

//폼에서 전송받을시 문제가 생긴다면 .trim()을 사용
String title = request.getParameter("title").trim();


get 파라메타로 넘어온 값 변환 코드와 사용 예

<변환코드>

<%!
//한글처리
public static String kor2Db(String sToDb) throws UnsupportedEncodingException{
 if (sToDb == null) return null;
 else return new String(sToDb.getBytes("8859_1"),"EUC-KR");
 }
%>

<%!
public static String Db2kor(String DbTos) throws UnsupportedEncodingException{
 if (DbTos == null) return null;
 else return new String(DbTos.getBytes("EUC-KR"),"8859_1");
 }
%>

<출력 예>

<p align="left"><input type="text" name="subject" size="46" maxlength="100" value="<%=kor2Db(subject)%>">

<textarea name="contexts" class="textarea" style="width:580;height:230;" rows="1" cols="20"><%=kor2Db(contexts)%></textarea>

파일 및 이미지 업로드시 한글파일명 저장 예제

<한글 파일명 업로드>

<%@ page import="java.net.*,java.io.*,java.sql.*,java.util.*,javax.naming.*,javax.sql.DataSource" %>
<%@ page import="com.oreilly.servlet.MultipartRequest"%>
<%@ page import="com.oreilly.servlet.multipart.DefaultFileRenamePolicy"%>


<%!
 //null체크를 위한 function으로 nullpoint에러를 잡는다.
 public static String nullcheck(String str) throws Exception {

        if (str == null){
            return "";
        }else{
          return str;     // 넘어온 Stirng 을 그대로 다시 return
      }
     }
%>

String savePath="C:/mysite/upload/image";
int sizeLimit=1024*1024*5;


MultipartRequest multi = new MultipartRequest(request,savePath,sizeLimit, "EUC-KR", new DefaultFileRenamePolicy());

String subject=nullcheck(multi.getParameter("subject"));
String contexts=nullcheck(multi.getParameter("contexts"));

String fileName1 = nullcheck(multi.getFilesystemName("add_file1"));
String fileName2 = nullcheck(multi.getFilesystemName("add_file2"));
String fileName3 = nullcheck(multi.getFilesystemName("add_file3"));
String fileName4 = nullcheck(multi.getFilesystemName("add_file4"));
String fileName5 = nullcheck(multi.getFilesystemName("add_file5"));
String fileName6 = nullcheck(multi.getFilesystemName("add_file6"));

int message=0;
String sql="";
 
sql="insert into imageupload (subject,context,image1,image2,image3,image4,image5,image6 ) "; 
sql+="value('"+subject+"','"+contexts+"','"+fileName1+"','"+fileName2+"','"+fileName3+"','"+fileName4+"',
'"+fileName5+"','"+fileName6+"')";

%>
<%@ include file="../include/try.jsp" %>
<%
      
      message=stmt.executeUpdate(sql);
   stmt.close();
%>

<%@ include file="../include/catch.jsp" %>
<%
if( message > 0 )
{
%>
<script language="javascript">
   alert('정상적으로 처리 되었습니다.');
   //location.href="./imageUpload.jsp";
   location.href="./imageUploadList.jsp";
</script>
<%
}
else
{
%>
   <script language="javascript">
 alert('입력오류 에러입니다.');
    history.go(-1);
</script>

<%
}
%>
 
한글 파일명 다운로드 코드 예제

<한글 파일명 다운로드>

<%@ page contentType="text/html; charset=euc-kr" pageEncoding="EUC-KR" import="java.io.*"%>
<% 

 //주소와 파일이름 가져오기 (fileName는 "EUC-KR" 방식으로 인코딩된 파라메타)
 String fileName = request.getParameter("fileName");

 String uploadfilePath = "C:/mysite/upload/";
 //또는 아래 사용
 //String filePath = request.getRealPath("/")+"uploadFile/";
 //System.out.println(filePath);
 
 //응답 헤더의 Content-Type을 세팅한다.
 response.setContentType("application/x-msdownload");
 
//한글파일 Download 시에 에러가 나는게 이 코드가 빠져 있어서 그런거 같은디..^^
String convName1 = new String(fileName.getBytes("euc-kr"),"8859_1"); 

 //Content-Disposition 헤더에 파일 이름 세팅.
 response.setHeader("Content-Disposition", "attachment;filename=" + convName1 + ";");

// 파일 객체생성
// fileName은 "8859_1" 방식 인코딩
File file = new File(uploadfilePath+fileName);
 
 // 사용자에게 보내주기 위해 스트림객체 생성
 byte b[] = new byte[(int)file.length()];   
 if (file.length() > 0 && file.isFile()) // 0byte이상이고, 해당 파일이 존재할 경우
 {
   BufferedInputStream fin = new BufferedInputStream(new FileInputStream(file)); 

   // 인풋객체생성
   BufferedOutputStream outs = new BufferedOutputStream(response.getOutputStream()); 

  // 응답객체생성   
  int read = 0;
  try {
   while ((read = fin.read(b)) != -1){
       outs.write(b,0,read);
   }
   outs.close();
   fin.close();
  } catch (Exception e) {
   System.out.println("download error : " + e.getMessage());
  } finally {
   if(outs!=null) outs.close();
   if(fin!=null) fin.close();
  }
 }  
   
%>

도움이 되었길 바랍니다. ^^

블로그 이미지

은빛늑대(天狼)

MIXI (Martial arts, Investment in stocks X Information tech) World...since 2008