youtube-dl 정규표현식 활용

익명 사용자의 이미지

((재업)「마인크래프트」밤에만 열리는 비밀의 침실 뚜두의 솔로생활 Part43-LtwDQP7Zdh4.mp4)
에서 -LtwDQP7Zdh4 같은 부분을 정규표현식을 사용해 mv로 파일명 중에 그 부분을 떼어버리는 방법이
있을까요?

또, youtube-dl에서 재생목록중 처음부터 시작하지 않고 중간부터 다운로드 할수 있는 방법이 있을까요?

도와주시면 감사하겠습니다.

익명 사용자의 이미지

처리한 순서대로 파일명을 매길수 있는 방법도 있을까요?

익명 사용자의 이미지

그거 그냥 파이선, 루비같은 걸로 스크립트 짜는게 낫지 않나요. 100줄도 안나올 거 같은데

익명 사용자의 이미지

유뷰브 다운로더 중에 말씀하신 그러한 기능을 하는 제품이 있으니까 알아보세요. 전에 본적이 있습니다.
웹 브라우저 플러그인으로 되어 있은거, 컴퓨터에 직접 설치해야 되는거.. 이런 종류가 있고,
컴퓨터에 직접 설치하는 걸로 쓰면 브라우저 관계없이 사용가능하겠네요.
돈이 들어갈 수도 있는데, 1~2만원밖에 안 하네요.

황병희의 이미지

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
 
# 실험환경: 우분투 18.04, 파이썬3
# 그리고 현재 디렉토리에서 실행하셔야지만 작동합니다
 
import re
import subprocess
 
MV_MODE = False # 파일명을 진짜로 변경하고싶으면 True 로 바꾸셔요
 
search_mp4 = "find . -name '*.mp4' -print" # mp4 파일만 탐색합니다
CMD_LS = subprocess.Popen(search_mp4, stdout=subprocess.PIPE, shell=True)
output = CMD_LS.communicate()[0]
 
lst = output.decode("utf-8").splitlines(False)
lst = sorted([x[2:] for x in lst])
 
def replace_string(xyz):
    p = re.search("(?<=\-)[a-zA-Z0-9-]{11}\.", xyz)
    rm_string = "-" + p.group(0)[:-1]
    result = xyz.replace(rm_string, "")
 
    return result
 
for file in lst:
    if MV_MODE == True:
        CMD_MV = "mv -vf '{0}' '{1}'".format(file, replace_string(file))
        subprocess.call(CMD_MV, shell=True)
    else:
        print(replace_string(file))
 
# EOF

 # 코드에서 False 를 True 로 변경한 후 실행했습니다
(bionic)soyeomul@localhost:~/111/333$ ls
'((재업)「마인크래프트」밤에만 열리는 비밀의 침실 뚜두의 솔로생활 Part41-LtwDQP7Zdh4.mp4'
'((재업)「마인크래프트」밤에만 열리는 비밀의 침실 뚜두의 솔로생활 Part42-9T-wDQP7ZdJ.mp4'
'((재업)「마인크래프트」밤에만 열리는 비밀의 침실 뚜두의 솔로생활 Part43-3V-LtwDQP7Z.mp4'
 1.py
(bionic)soyeomul@localhost:~/111/333$ ./1.py
renamed '((재업)「마인크래프트」밤에만 열리는 비밀의 침실 뚜두의 솔로생활 Part41-LtwDQP7Zdh4.mp4' -> '((재업)「마인크래프트」밤에만 열리는 비밀의 침실 뚜두의 솔로생활 Part41.mp4'
renamed '((재업)「마인크래프트」밤에만 열리는 비밀의 침실 뚜두의 솔로생활 Part42-9T-wDQP7ZdJ.mp4' -> '((재업)「마인크래프트」밤에만 열리는 비밀의 침실 뚜두의 솔로생활 Part42.mp4'
renamed '((재업)「마인크래프트」밤에만 열리는 비밀의 침실 뚜두의 솔로생활 Part43-3V-LtwDQP7Z.mp4' -> '((재업)「마인크래프트」밤에만 열리는 비밀의 침실 뚜두의 솔로생활 Part43.mp4'
(bionic)soyeomul@localhost:~/111/333$ ls
'((재업)「마인크래프트」밤에만 열리는 비밀의 침실 뚜두의 솔로생활 Part41.mp4'
'((재업)「마인크래프트」밤에만 열리는 비밀의 침실 뚜두의 솔로생활 Part42.mp4'
'((재업)「마인크래프트」밤에만 열리는 비밀의 침실 뚜두의 솔로생활 Part43.mp4'
 1.py
(bionic)soyeomul@localhost:~/111/333$ 

[우분투 18.04 파여폭스 나비에서 작성했습니다]

--
^고맙습니다 감사합니다_^))//

익명 사용자의 이미지

Quote:
((재업)「마인크래프트」밤에만 열리는 비밀의 침실 뚜두의 솔로생활 Part43-LtwDQP7Zdh4.mp4)
에서 -LtwDQP7Zdh4 같은 부분을 정규표현식을 사용해 mv로 파일명 중에 그 부분을 떼어버리는 방법이
있을까요?

https://github.com/ytdl-org/youtube-dl/blob/master/README.md#output-template

youtube-dl의 -o 옵션을 사용해서 파일 이름을 직접 지정해 줄 수 있습니다. 무슨 정규 표현식이니 셸 스크립트니 파이썬 스크립트니 유료 유튜브 다운로더니 쓸 필요 없어요.

Quote:
또, youtube-dl에서 재생목록중 처음부터 시작하지 않고 중간부터 다운로드 할수 있는 방법이 있을까요?

https://github.com/ytdl-org/youtube-dl/blob/master/README.md#video-selection

--playlist-start NUMBER          Playlist video to start at (default is 1)
--playlist-end NUMBER            Playlist video to end at (default is last)
--playlist-items ITEM_SPEC       Playlist video items to download. Specify
                                 indices of the videos in the playlist
                                 separated by commas like: "--playlist-items
                                 1,2,5,8" if you want to download videos
                                 indexed 1, 2, 5, 8 in the playlist. You can
                                 specify range: "--playlist-items
                                 1-3,7,10-13", it will download the videos
                                 at index 1, 2, 3, 7, 10, 11, 12 and 13.

해당 옵션을 사용해서 지정해 줄 수 있습니다.

Quote:
처리한 순서대로 파일명을 매길수 있는 방법도 있을까요?

처리한 순서가 무엇을 뜻하는지는 모르겠습니다만, Output template 부분에 이런 옵션이 있습니다.

playlist (string): Name or id of the playlist that contains the video
playlist_index (numeric): Index of the video in the playlist padded with leading zeros according to the total length of the playlist
playlist_id (string): Playlist identifier
playlist_title (string): Playlist title
익명 사용자의 이미지

무료 어플/퍼블릭도메인/오픈소스가 까방권이 있다지만, UI 입히는게 어려운 작업도 아닌데... 저거 불편해서 어떻게 써요. 아마 저기에 프론트엔드 입힌 물건들도 있을 거 같네요. youtube-dl 은 사용하기가 불편할 거 같고,

4kdownloader 이라는 어플이 있는데, 이걸 쓰는게 나을겁니다.
무료로 사용가능하고, 돈내고도 사용 가능합니다. 예전에 자주 써봤는데 진짜 좋더군요.

https://www.4kdownload.com/ko/products/product-videodownloader

익명 사용자의 이미지

CLI에는 CLI 나름의 장점이 있는 편이죠. 스크립트로 싸서 batch 작업을 만들기 편하다던가.

물론 CLI 중에서도 잘 설계된 것과 그렇지 않은 것 차이는 있지만, GUI와는 목적 자체가 다르다고 생각됩니다.

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.