warstha
warstha

Reputation: 23

How to rename JSON File in bulk?

First of all, i am new in JSON and Python Code. so sorry if the question is noob.

i've some code on Python Code like this :

import os
import json

def extract_video_data_from_url(url):
    
    
    command = f'yt-dlp "{url}" -j --no-playlist'
    output = os.popen(command).read()
    print(output)
    video_data = json.loads(output)
    title = video_data["title"]
    formats = video_data["formats"]
    thumbnail = video_data["thumbnail"]
    formats = [extract_format_data(format_data) for format_data in formats]
    return {
        "title": title,
        "formats": formats,
        "thumbnail": thumbnail
    }

and have json output file like this :

"formats": [
    {
      "extension": "webm",
      "format_name": "249-0 - audio only (tiny)",
      "url": "https://rr3---sn-npoe7nlz.googlevideo.com/videoplayback?expire=1664538191&ei=74E2Y5-mH5Sl4-EP35CdyAM&ip=180.243.7.35&id=o-AAmP2xRT8Ve3XqKtlFWcogCjzcmOHYaCLBTvtRA-f6yV&itag=249&source=youtube&requiressl=yes&mh=gc&mm=31%2C29&mn=sn-npoe7nlz%2Csn-npoeenly&ms=au%2Crdu&mv=m&mvi=3&pl=24&initcwndbps=447500&vprv=1&xtags=drc%3D1&mime=audio%2Fwebm&ns=wIsmeet1EyLH2WlcZc1VlvEI&gir=yes&clen=5717592&dur=823.441&lmt=1658621716740625&mt=1664516251&fvip=3&keepalive=yes&fexp=24001373%2C24007246&c=WEB&txp=1311224&n=rewrNpMiP3pdRF8H&sparams=expire%2Cei%2Cip%2Cid%2Citag%2Csource%2Crequiressl%2Cvprv%2Cxtags%2Cmime%2Cns%2Cgir%2Cclen%2Cdur%2Clmt&sig=AOq0QJ8wRQIgJJPzkh0yEr857SAAf-uj8yaXUWMPgWY4D26wq-c8_aMCIQDCojLFA8Si9VTutJBJMI8KV34cFarhmkYueIYsXULV3A%3D%3D&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&lsig=AG3C_xAwRQIhAO7zrkQ_e2V_tBVx8qTw6o0zPhnR86gEgH1aMwu3UTTTAiAO4wwWZ6BFnr6k_xUqKtUd10SbChPqE8aqGJHbHb-azw%3D%3D"
    },
    {
      "extension": "webm",
      "format_name": "249-1 - audio only (tiny)",
      "url": "https://rr3---sn-npoe7nlz.googlevideo.com/videoplayback?expire=1664538191&ei=74E2Y5-mH5Sl4-EP35CdyAM&ip=180.243.7.35&id=o-AAmP2xRT8Ve3XqKtlFWcogCjzcmOHYaCLBTvtRA-f6yV&itag=249&source=youtube&requiressl=yes&mh=gc&mm=31%2C29&mn=sn-npoe7nlz%2Csn-npoeenly&ms=au%2Crdu&mv=m&mvi=3&pl=24&initcwndbps=447500&vprv=1&mime=audio%2Fwebm&ns=wIsmeet1EyLH2WlcZc1VlvEI&gir=yes&clen=5748345&dur=823.421&lmt=1507047911229800&mt=1664516251&fvip=3&keepalive=yes&fexp=24001373%2C24007246&c=WEB&n=rewrNpMiP3pdRF8H&sparams=expire%2Cei%2Cip%2Cid%2Citag%2Csource%2Crequiressl%2Cvprv%2Cmime%2Cns%2Cgir%2Cclen%2Cdur%2Clmt&sig=AOq0QJ8wRAIgYVyc5YXxtlZsreXTXt9-jJkVXk0Hk4CChtG9wWPENzsCIHqzMvso2PqOQe-n5duG6gq_bEnRiFMH2q4BFAgfY7ZN&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&lsig=AG3C_xAwRQIhAO7zrkQ_e2V_tBVx8qTw6o0zPhnR86gEgH1aMwu3UTTTAiAO4wwWZ6BFnr6k_xUqKtUd10SbChPqE8aqGJHbHb-azw%3D%3D"
    },
    {
      "extension": "webm",
      "format_name": "250-0 - audio only (tiny)",
      "url": "https://rr3---sn-npoe7nlz.googlevideo.com/videoplayback?expire=1664538191&ei=74E2Y5-mH5Sl4-EP35CdyAM&ip=180.243.7.35&id=o-AAmP2xRT8Ve3XqKtlFWcogCjzcmOHYaCLBTvtRA-f6yV&itag=250&source=youtube&requiressl=yes&mh=gc&mm=31%2C29&mn=sn-npoe7nlz%2Csn-npoeenly&ms=au%2Crdu&mv=m&mvi=3&pl=24&initcwndbps=447500&vprv=1&xtags=drc%3D1&mime=audio%2Fwebm&ns=wIsmeet1EyLH2WlcZc1VlvEI&gir=yes&clen=7625449&dur=823.441&lmt=1658621488559767&mt=1664516251&fvip=3&keepalive=yes&fexp=24001373%2C24007246&c=WEB&txp=1311224&n=rewrNpMiP3pdRF8H&sparams=expire%2Cei%2Cip%2Cid%2Citag%2Csource%2Crequiressl%2Cvprv%2Cxtags%2Cmime%2Cns%2Cgir%2Cclen%2Cdur%2Clmt&sig=AOq0QJ8wRQIhALSnuGkzu4QS9HOVaMHM73q8qmNHfjpOwznkf7jbuzM4AiAOZkgQQCo3PZdHEgc2IugYNpxtIpKElEd8jlWH8waLEg%3D%3D&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&lsig=AG3C_xAwRQIhAO7zrkQ_e2V_tBVx8qTw6o0zPhnR86gEgH1aMwu3UTTTAiAO4wwWZ6BFnr6k_xUqKtUd10SbChPqE8aqGJHbHb-azw%3D%3D"
    },
    {
      "extension": "webm",
      "format_name": "250-1 - audio only (tiny)",
      "url": "https://rr3---sn-npoe7nlz.googlevideo.com/videoplayback?expire=1664538191&ei=74E2Y5-mH5Sl4-EP35CdyAM&ip=180.243.7.35&id=o-AAmP2xRT8Ve3XqKtlFWcogCjzcmOHYaCLBTvtRA-f6yV&itag=250&source=youtube&requiressl=yes&mh=gc&mm=31%2C29&mn=sn-npoe7nlz%2Csn-npoeenly&ms=au%2Crdu&mv=m&mvi=3&pl=24&initcwndbps=447500&vprv=1&mime=audio%2Fwebm&ns=wIsmeet1EyLH2WlcZc1VlvEI&gir=yes&clen=7663003&dur=823.421&lmt=1507047925961430&mt=1664516251&fvip=3&keepalive=yes&fexp=24001373%2C24007246&c=WEB&n=rewrNpMiP3pdRF8H&sparams=expire%2Cei%2Cip%2Cid%2Citag%2Csource%2Crequiressl%2Cvprv%2Cmime%2Cns%2Cgir%2Cclen%2Cdur%2Clmt&sig=AOq0QJ8wRQIhAKIfh01EuN0tRq0YpTjdsm6HpI3pNzK_CVAsCm_Qub-6AiABSRoHwImFd6cXJ91gznDA6RoBtL4uxQ6JP-sE9_vkMA%3D%3D&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&lsig=AG3C_xAwRQIhAO7zrkQ_e2V_tBVx8qTw6o0zPhnR86gEgH1aMwu3UTTTAiAO4wwWZ6BFnr6k_xUqKtUd10SbChPqE8aqGJHbHb-azw%3D%3D"
    },
    {
      "extension": "m4a",
      "format_name": "140-0 - audio only (tiny)",
      "url": "https://rr3---sn-npoe7nlz.googlevideo.com/videoplayback?expire=1664538191&ei=74E2Y5-mH5Sl4-EP35CdyAM&ip=180.243.7.35&id=o-AAmP2xRT8Ve3XqKtlFWcogCjzcmOHYaCLBTvtRA-f6yV&itag=140&source=youtube&requiressl=yes&mh=gc&mm=31%2C29&mn=sn-npoe7nlz%2Csn-npoeenly&ms=au%2Crdu&mv=m&mvi=3&pl=24&initcwndbps=447500&vprv=1&mime=audio%2Fmp4&ns=wIsmeet1EyLH2WlcZc1VlvEI&gir=yes&clen=13079535&dur=823.472&lmt=1382391261349662&mt=1664516251&fvip=3&keepalive=yes&fexp=24001373%2C24007246&c=WEB&n=rewrNpMiP3pdRF8H&sparams=expire%2Cei%2Cip%2Cid%2Citag%2Csource%2Crequiressl%2Cvprv%2Cmime%2Cns%2Cgir%2Cclen%2Cdur%2Clmt&sig=AOq0QJ8wRQIgBxYlJFbwPupCcNu-3wcjmLawPUA2Am_klM5PzPvwD38CIQCKcoEW9WT4LuiUTy1rqp_KN7t_xwsrHA7fuX7WjItvdA%3D%3D&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&lsig=AG3C_xAwRQIhAO7zrkQ_e2V_tBVx8qTw6o0zPhnR86gEgH1aMwu3UTTTAiAO4wwWZ6BFnr6k_xUqKtUd10SbChPqE8aqGJHbHb-azw%3D%3D"
    },

how do i change name field in format_name at json's file to be rename let say like "MP3" or "MP4" in bulk?

Thank in advance.

Upvotes: 0

Views: 104

Answers (1)

Aymen
Aymen

Reputation: 839

import json 

data = '{"formats": [{"extension": "webm", "format_name": "249-0 - audio only (tiny)","url": "https://rr3---sn-npoe7nlz.googlevideo.com/videoplayback?expire=1664538191&ei=74E2Y5-mH5Sl4-EP35CdyAM&ip=180.243.7.35&id=-AAmP2xRT8Ve3XqKtlFWcogCjzcmOHYaCLBTvtRA-f6yV&itag=249&sourceyoutube&requiressl=yes&mh=gc&mm=31%2C29&mn=sn-npoe7nlz%2Csn-npoeenly&ms=au%2Crdu&mv=m&mvi=3&pl=24&initcwndbps=447500&vprv=1&xtags=drc%3D1&mime=audio%2Fwebm&ns=wIsmeet1EyLH2WlcZc1VlvEI&gir=yes&clen=5717592&dur=823.441&lmt=1658621716740625&mt=1664516251&fvip=3&keepalive=yes&fexp=24001373%2C24007246&c=WEB&txp=1311224&n=rewrNpMiP3pdRF8H&sparams=expire%2Cei%2Cip%2Cid%2Citag%2Csource%2Crequiressl%2Cvprv%2Cxtags%2Cmime%2Cns%2Cgir%2Cclen%2Cdur%2Clmt&sig=AOq0QJ8wRQIgJJPzkh0yEr857SAAf-uj8yaXUWMPgWY4D26wq-c8_aMCIQDCojLFA8Si9VTutJBJMI8KV34cFarhmkYueIYsXULV3A%3D%3D&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&lsig=AG3C_xAwRQIhAO7zrkQ_e2V_tBVx8qTw6o0zPhnR86gEgH1aMwu3UTTTAiAO4wwWZ6BFnr6k_xUqKtUd10SbChPqE8aqGJHbHb-azw%3D%3D"} ]} '

data = json.loads(data)["formats"]
for element in data:
    if "audio only" in element["format_name"]:
        element["format_name"] = "MP3"
print(data)

EDIT: You can add other test for "video only" for example.

Upvotes: 1

Related Questions