Skip to main content

youtube-dl download using python in a specific folder and of a particular quality





import subprocess
import tempfile
import os
import youtube_dl
import time

class MyLogger(object):
    def debug(selfmsg):
        pass

    def warning(selfmsg):
        pass

    def error(selfmsg):
        print(msg)


def my_hook(d):
    if d['status'] == 'finished':
        print('Done downloading, now converting ...')


ydl_opts = {
    
    'outtmpl''./temp/ZCL5.mp4',
    'logger': MyLogger(),
    'progress_hooks': [my_hook],
    'format''worst'
}



with youtube_dl.YoutubeDL(ydl_opts) as ydl:
    starttime = time.time()
    ydl.download(['https://www.youtube.com/watch?v=sHAkDTlv8fA'])
    completeTime = time.time()
    print(completeTime - starttime)
       
    

print("printing file in temp dir")
basepath = tempfile.gettempdir()
for entry in os.listdir(basepath):
    if os.path.isfile(os.path.join(basepath, entry)):
        print("printing file in temp dir")
        print(entry)
        print("out of loop")




For more options check https://github.com/ytdl-org/youtube-dl/blob/3e4cedf9e8cd3157df2457df7274d0c842421945/youtube_dl/options.py

field to check is "dest"

for example, the output field was
   '-o', '--output',
        dest='outtmpl', metavar='TEMPLATE',







Comments

Popular posts from this blog

Gui logging in node js and python

For node.js Use  frontail for logging https://www.npmjs.com/package/frontail For Python -- use Cutelog https://pypi.org/project/cutelog/ In NodeJs for using frontail we need to use log the logs in a file for logging logs to file , we will use winston Using winston https://www.npmjs.com/package/winston Eg. of using winstonconst { createLogger, format, transports } = require('winston'); const { combine, timestamp, label, prettyPrint } = format; const logger = createLogger({   level: 'info',   format: format.json(),   transports: [     //     // - Write to all logs with level `info` and below to `combined.log`      // - Write all logs error (and below) to `error.log`.     //     new transports.File({ filename: 'error.log', level: 'error' }),     new transports.File({ filename: 'combined.log' })   ] }); logger.log({   level: 'info',   message: 'What time is...

opening multiple ports tunnels ngrok in ubuntu

Location for the config yml file /home/example/.ngrok2/ngrok.yml content of config file authtoken: 4nq9771bPxe8ctg7LKr_2ClH7Y15Zqe4bWLWF9p tunnels: app-foo: addr: 80 proto: http host_header: app-foo.dev app-bar: addr: 80 proto: http host_header: app-bar.dev how to start ngrok with considering the config file: ngrok start --all

rename field in elastic Search

https://qiita.com/tkprof/items/e50368eb1473497a16d0 How to Rename an Elasticsearch field from columns: - {name: xxx, type: double} to columns: - {name: yyy, type: double} Pipeline API and reindex create a new Pipeline API : Rename Processor PUT _ingest/pipeline/pipeline_rename_xxx { "description" : "rename xxx", "processors" : [ { "rename": { "field": "xxx", "target_field": "yyy" } } ] } { "acknowledged": true } then reindex POST _reindex { "source": { "index": "source" }, "dest": { "index": "dest", "pipeline": "pipeline_rename_xxx" } }