স্বয়ংক্রিয়ভাবে উত্পন্ন ইউটিউব ট্রান্সক্রিপশন ডাউনলোড করা হচ্ছে


25

ভিডিওটি ডাউনলোড না করে স্বয়ংক্রিয়ভাবে উত্পন্ন ইউটিউব ট্রান্সক্রিপশন ডাউনলোড করার কোনও উপায় আছে?

আমি টেডির আলোচনাটি দেখতে চাই, তবে আমার সীমাবদ্ধ ব্যান্ডউইথ রয়েছে এবং স্বয়ংক্রিয় ট্রান্সক্রিপ্টগুলি (সম্ভবত উপশিরোনাম বা বদ্ধ ক্যাপশন হিসাবেও পরিচিত) রফতানি করতে চাই।


স্বয়ংক্রিয়ভাবে প্রতিলিপিযুক্ত সাবটাইটেলগুলি সহ ভিডিওর জন্য কেউ কি কোনও উপায় জানেন?
কেনওয়ারার

সম্পর্কিত (অ-স্ব-উত্পন্ন উত্পাদক
যান্ত্রিক শামুক

এছাড়াও এখানে জবাব দেওয়া হয়েছে: stackoverflow.com/questions/9611397/…
টিন ম্যান

এই সম্পর্কে কোন খবর আছে?
লিও

উত্তর:


8

আপনার ব্রাউজারের স্ক্রিপ্ট ডিবাগারের "নেটওয়ার্ক ইন্সপেক্টর" ফাংশনটি ব্যবহার করুন এবং প্রতিলিপি সাবটাইটেলগুলি সক্ষম করার পরে টাইমডেক্সট পৃষ্ঠায় দ্বিতীয় অনুরোধ সন্ধান করুন তবে ঠিক সেই অনুরোধটি স্থানীয় ইউটিউব এক্সএমএল ফর্ম্যাটে ডাউনলোড করার জন্য ঠিকানাবারে অনুলিপি করুন।

এসআরটি সংস্করণটি পেতে এই এক্সএমএলের পৃষ্ঠার জন্য ডিবাগার কনসোলে এই কোডটি চালান:

function makeTimeline (time) {
    var string, time_array = [], milliseconds = Math.round(time % 1 * 1000).toString();

    while (3 > milliseconds.length) {
        milliseconds = '0' + milliseconds;
    }

    time_array.push(Math.floor(time / (60 * 60)));
    time_array.push(Math.floor((time - (time_array[0] * 60 * 60)) / 60));
    time_array.push(Math.floor(time - ((time_array[1] * 60) + (time_array[0] * 60 * 60))));

    for (var i = 0, il = time_array.length; i < il; i++) {
        string = '' + time_array[i];
        if (1 === string.length) {
            time_array[i] = '0' + string;
        }
    }
    return time_array.join(':') + ',' + milliseconds;
};

function returnSRT (data) {
    var caption, previous_start, start, end, temp, captions = data.getElementsByTagName('text'), srt_output = '';

    for (var i = 0, il = captions.length; i < il; i++) {
        caption = captions[i];
        start = +caption.getAttribute('start');

        if (0 <= previous_start) {
            temp = captions[i - 1].textContent.replace(/</g, '&lt;').replace(/>/g, '&gt;');
            srt_output += i + '\n' + makeTimeline(previous_start) + ' --> ' + makeTimeline(start) + '\n' + temp + '\n\n';
            previous_start = -1;
        }

        if ( end = +caption.getAttribute('dur'))
            end = start + end;
        else {
            if (captions[i + 1]) {
                previous_start = start;
                continue;
            }
        }

        temp = caption.textContent.replace(/</g, '&lt;').replace(/>/g, '&gt;');
        srt_output += i + '\n' + makeTimeline(start) + ' --> ' + makeTimeline(end) + '\n' + temp + '\n\n';
    };
    return srt_output;
}

returnSRT(document.documentElement)

এছাড়াও এখানে স্ক্রিপ্টের বুকমার্কলেট সংস্করণ রয়েছে:

javascript:(function(){function%20makeTimeline(time)%7Bvar%20string%2Ctime_array%3D%5B%5D%2Cmilliseconds%3DMath.round(time%251*1000).toString()%3Bwhile(3%3Emilliseconds.length)%7Bmilliseconds%3D'0'%2Bmilliseconds%3B%7Dtime_array.push(Math.floor(time%2F(60*60)))%3Btime_array.push(Math.floor((time-(time_array%5B0%5D*60*60))%2F60))%3Btime_array.push(Math.floor(time-((time_array%5B1%5D*60)%2B(time_array%5B0%5D*60*60))))%3Bfor(var%20i%3D0%2Cil%3Dtime_array.length%3Bi%3Cil%3Bi%2B%2B)%7Bstring%3D''%2Btime_array%5Bi%5D%3Bif(1%3D%3D%3Dstring.length)%7Btime_array%5Bi%5D%3D'0'%2Bstring%3B%7D%7Dreturn%20time_array.join('%3A')%2B'%2C'%2Bmilliseconds%3B%7D%3Bfunction%20returnSRT(data)%7Bvar%20caption%2Cprevious_start%2Cstart%2Cend%2Ctemp%2Ccaptions%3Ddata.getElementsByTagName('text')%2Csrt_output%3D''%3Bfor(var%20i%3D0%2Cil%3Dcaptions.length%3Bi%3Cil%3Bi%2B%2B)%7Bcaption%3Dcaptions%5Bi%5D%3Bstart%3D%2Bcaption.getAttribute('start')%3Bif(0%3C%3Dprevious_start)%7Btemp%3Dcaptions%5Bi-1%5D.textContent.replace(%2F%3C%2Fg%2C'%26lt%3B').replace(%2F%3E%2Fg%2C'%26gt%3B')%3Bsrt_output%2B%3Di%2B'%5Cn'%2BmakeTimeline(previous_start)%2B'%20--%3E%20'%2BmakeTimeline(start)%2B'%5Cn'%2Btemp%2B'%5Cn%5Cn'%3Bprevious_start%3D-1%3B%7Dif(end%3D%2Bcaption.getAttribute('dur'))end%3Dstart%2Bend%3Belse%7Bif(captions%5Bi%2B1%5D)%7Bprevious_start%3Dstart%3Bcontinue%3B%7D%7Dtemp%3Dcaption.textContent.replace(%2F%3C%2Fg%2C'%26lt%3B').replace(%2F%3E%2Fg%2C'%26gt%3B')%3Bsrt_output%2B%3Di%2B'%5Cn'%2BmakeTimeline(start)%2B'%20--%3E%20'%2BmakeTimeline(end)%2B'%5Cn'%2Btemp%2B'%5Cn%5Cn'%3B%7D%3Breturn%20srt_output%3B%7Dwindow.location.href%3D'data%3Atext%2Fplain%3Bbase64%2C'%2Bbtoa(returnSRT(document.documentElement))})();

6

ইউটিউব ভিডিও থেকে সাবটাইটেলগুলি বের করার কয়েকটি উপায় রয়েছে -

এই জেনেরিক ইউআরএলটিতে ভাষা এবং ভিডিওআইডি নির্দিষ্ট করে - http://www.youtube.com/api/timedtext?lang={LANG}&v={VIDEOID}আপনি .xmlএকটি বেছে নেওয়া ভিডিওর জন্য পছন্দসই ভাষায় সাবটাইটেলযুক্ত একটি ফাইল পেতে পারেন ।

সেই ফাইলের মধ্যে থাকা ট্যাগগুলি থেকে মুক্তি পেতে এবং কেবল প্লেইন-পাঠ্য ট্রান্সক্রিপ্ট করার জন্য , আপনাকে এখানে যা করতে হবে তা এখানে:

  • মাইক্রোসফ্ট এক্সেল খুলুন
  • একটি কক্ষের ভিতরে সাবটাইটেলগুলি অনুলিপি করুন
  • চাপুন Ctrl+H
  • প্রতিস্থাপন ট্যাবে <*> "কী সন্ধান করুন" পাঠ্য বাক্সে টাইপ করুন এবং "এর সাথে প্রতিস্থাপন করুন" পাঠ্যবক্সটি ফাঁকা ছেড়ে যান এবং ক্লিক করুন Replace All। অনুসন্ধানের অভিব্যক্তি মূল পাঠ্যের মধ্যে থাকা সমস্ত ট্যাগ সরিয়ে ফেলবে।

বিকল্পভাবে, গুগল 2 এসআরটি নামে একটি ওপেন-সোর্স সরঞ্জাম রয়েছে যা ইউটিউব ভিডিও থেকে সমস্ত ক্লায়েন্টকে একটি ক্লিক দিয়ে ডাউনলোড করে তাদের .srtফর্ম্যাটে রূপান্তরিত করে যাতে এটি ভিএলসি মিডিয়া প্লেয়ারের মতো মিডিয়া প্লেয়ারের মধ্যে ব্যবহার করা যায়।

আপডেট: টেড.কম এখন তার সাইটে আলোচনার লিপি সরবরাহ করে।


জেনেরিক URL টি কাজ করছে বলে মনে হয় না। আমি প্রবেশ করি http://video.google.com/timedtext?lang=english&v=b11AXknrsEIকিন্তু এটি কাজ করে না। এছাড়াও, বিকাশকারী সরঞ্জামগুলিতে যেতে সহায়তা করে না। সেখানে প্রচুর সংস্থান রয়েছে এবং এর মধ্যে কেউই টাইমডেক্সট বলে না।
61897

কোনও বিষয় নয়, আমি এটি দেব সরঞ্জামগুলির মাধ্যমে খুঁজে পেয়েছি। এখনও কাজ করার জন্য জেনেরিক url পেতে পারে না। এটি সবচেয়ে সহজ জিনিস হবে।
61897


আমি অবশ্যই কিছু ভুল করছি। এই ভিডিওটির জন্য আমি লিখতে এই কিন্তু এটি একটি ফাঁকা পৃষ্ঠা লোড করে। আমি পরিবর্তিত englishকরার চেষ্টা করেছি enএবং engএটি একই জিনিস করে।
61897

দেখে মনে হচ্ছে সাবটাইটেলগুলি কেবল ক্যাপশনগুলি ম্যানুয়ালি ট্রান্সক্রিপশন করা থাকলে স্বয়ংক্রিয়ভাবে উত্পন্ন হয় না। আপনার ভাগ করা ভিডিও লিঙ্কটিতে কেবলমাত্র স্বয়ংক্রিয় ক্যাপশন রয়েছে।
mvark

1

আমি মনে করি এই ব্যবহারকারীর স্ক্রিপ্টটি আপনার পক্ষে কাজ করা উচিত:

http://userscripts.org/scripts/show/50003/


2
ধন্যবাদ, তবে এটি স্বয়ংক্রিয়ভাবে প্রতিলিপি ক্যাপশনগুলি ডাউনলোড করার অনুমতি দেয় বলে মনে হচ্ছে না
কেসব্যাশ


0

এটি যদি আপনার নিজস্ব ভিডিও হয় তবে আপনি ভিডিও পরিচালক থেকে সাবটাইটেলগুলি ডাউনলোড করতে পারেন। যাও:

ভিডিও পরিচালক >> সম্পাদনা করুন (আপনি যে ভিডিওতে চান তাতে) >> ক্যাপশন >> >> (আপনি যে ট্র্যাকটি ডাউনলোড করতে চান তার উপর ক্লিক করুন) >> ক্রিয়া (ড্রপ ডাউন বাক্স)

লেখার সময়, এখানে তিনটি ফাইল প্রকার উপলব্ধ:

  • .vtt
  • .srt
  • .sbv

এগুলির বিভিন্ন অ্যাপ্লিকেশনগুলির বিভিন্ন ব্যবহার রয়েছে তবে এটি খুব মিল। এসআরটি সম্ভবত সবচেয়ে সাধারণ।

অন্যথায়, এটি যদি আপনার ভিডিও না হয় তবে সেরা পদ্ধতি (একমাত্র পদ্ধতি) বিকাশকারী সরঞ্জামগুলি থেকে এক্সএমএল ফাইল পাওয়া।

এই উদাহরণে গুগল ক্রোম ব্যবহার করে ভিডিওতে নেভিগেট করুন তারপরে এই পদক্ষেপগুলি অনুসরণ করুন:

  1. ভিডিওটি বিরতি দিন। কোনও বিজ্ঞাপন থাকলে এটি খেলার অপেক্ষা করুন।
  2. আপনার কীবোর্ডে F12 চাপুন। এটি বিকাশকারী সরঞ্জামগুলি খুলবে। ভিডিওটি সক্রিয় না হওয়ার জন্য আপনাকে পৃষ্ঠার কিছু খালি জায়গায় ক্লিক করতে হবে।
  3. বিকাশকারী সরঞ্জামগুলির নেটওয়ার্ক ট্যাবে ক্লিক করুন।
  4. ভিডিওর ঠিক নীচে ট্রান্সক্রিপ্ট আইকনে ক্লিক করুন। বিকাশকারী সরঞ্জামগুলির নেটওয়ার্ক ট্যাবে দুটি আইটেম উপস্থিত হবে।
  5. উভয় আইটেমের শিরোনামযুক্ত timedtext?আরও বেশ কয়েকটি ভেরিয়েবল। দ্বিতীয়টি হ'ল সাধারণত আপনি যা চান। এটি এর শুরু হয়:
    <transcript> <text start="4.14" dur="3.049">my name is doctor john rush</text> <text start="7.189" dur="3.731">I'm the CEO and president</text>

আপনি যদি কোনও ওয়েব পৃষ্ঠায় প্রতিলিপিটি ব্যবহার করতে চান তবে এই এক্সএমএল ফাইলটি কার্যকর is এগুলি বাদে, আমি মনে করি না যে আপনি কোনও এসআরটি ফাইল ব্যবহার করবেন ঠিক তেমনভাবে আপনি এটি ব্যবহার করতে পারবেন। আপনি যদি প্রোগ্রামিংয়ে কোনও ভাল হন তবে আপনি সহজেই এমন একটি প্রোগ্রাম লিখতে পারেন যা এটি এসআরটিতে রূপান্তর করবে। আমি আমার নিজস্ব সি # প্রোগ্রাম লিখেছি যা ভিন্ন উদ্দেশ্যে ডেটা বের করে এবং এতে দুই ঘন্টা কম সময় লেগেছিল।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.